Ya estoy en AWS

Ya he terminado la migración de www.albertsampietro.com desde Bluehost a Amazon Web Services.

He estado en el hosting de Bluehost, con base en Utah, un total de 13 años y aunque no he estado del todo descontento con ellos, el hecho de que hayan incrementado el precio de sus servicios, su «discreta» usabilidad en algunas de sus funcionalidades (dificultad para actualizar a la última versión de PHP, gestión de dominios,…), algunos problemas de seguridad y la falta de claridad en el rendimiento de sus aplicaciones me han decidido a cambiarme a AWS.

En Amazon Web Services, utilizo principalmente Lightsail para crear instancias de cada una de mis webs y Route53 para la gestión de dominios y zonas DNS.

Lo más interesante de Lightsail, además del precio, es que es muy rápido instalar aplicaciones como WordPress o Magento gracias a su catálogo de scripts así como la forma en que monitoriza los costes y el rendimiento de cada una de las instancias. La cónsola de administración, en mi caso en Linux, a través de línea de comandos es muy útil para realizar tareas básicas de administración tales como recuperar usuarios perdidos, habilitar certificados para https, etc.

La migración de Bluehost a Lightsail no es trivial y requiere de varios pasos que explicaré en un post aparte.

Recuperar Usuarios y Contraseñas en WordPress

La mejor opción cuando has perdido el nombre de usuario, la contraseña y el correo electrónico de tu usuario en WordPress es acceder a través de línea de comando. Para ello necesitas tener acceso al servidor donde está instalada la aplicación.

WP-CLI es la interfaz por línea de comando de WordPress y a través de ella es posible realizar multitud de tareas. Para recuperar usuarios y contraseñas tenemos que comenzar con:

$ wp user list

Con ella accederemos al listado de usuarios de nuestra instalación en WordPress junto con sus permisos. Una vez hemos identificado el ID del usuario que queremos recuperar tenemos que utilizar la siguiente instrucción:

$ wp user update 1 --user_pass=newpassword

donde «1» es el ID del usuario y «newpassword» es la contraseña que queremos asignarle.

La forma en la que tenemos que acceder a la línea de comandos es diferente dependiendo del sistema operativo que utilicemos. Por ejemplo, en Windows 10, tenemos que pulsar la tecla de Windows+R y ejecutar la aplicación «cmd».

Adiós a Gadgets para Correr

Después de 11 años, Gadgets para Correr ha llegado a su fin: el trabajo, los viajes, la familia y mi hija, que nacerá el próximo febrero, me han dejado prácticamente sin tiempo para continuar actualizando diariamente el blog por lo que he decidido darlo por concluido.

En total han sido 1.984 entradas, algo más de 7 millones de sesiones, 15 millones de páginas vistas y 11.000 comentarios con picos de hasta 20.000 visitas por día en 2014.

Pese a la inactividad del último año, aun hoy, se mantiene un ritmo de entre 200 y 500 sesiones por día, lo cual no deja de sorprenderme. Sin embargo, no tengo más tiempo así que hoy he escrito el post de despedida.

Modificaciones en Twenty Sixteen

Finalmente, me he puesto en serio y estoy comenzando a hacer algunas modificaciones en la plantilla Twenty Sixteen de WordPress.

En vez de modificar el PHP como explicaba en este post, en esta ocasión simplemente he añadido nuevo código al archivo de CSS personalizado (Aparencia>Editar CSS).

/*
Quitar blancos en la cabecera - Albert Sampietro 18-09-2019
*/
masthead {
padding-top: 10px;
padding-bottom: 50px;
}

/*
Quitar columna izquierda de metadata y ponerla al final del post - Albert Sampietro 18-09-2019
*/
@media screen and (min-width: 61.5625em) {
body:not(.search-results) article:not(.type-page) .entry-footer
{
float: none;
margin-top: 1.5em;
width: 100%;
}
.single .byline, .full-size-link,
body.group-blog:not(.search-results) .byline,
body:not(.search-results) .entry-format,
body:not(.search-results) .cat-links,
body:not(.search-results) .tags-links,
body:not(.search-results) article:not(.sticky) .posted-on,
body:not(.search-results) article:not(.type-page) .comments-link,
body:not(.search-results) article:not(.type-page) .entry-footer .edit-link
{
display: inline;
}
body:not(.search-results) article:not(.type-page) .entry-footer > span:not(:last-child):after
{
display: inline;
}
body:not(.search-results) article:not(.type-page) .entry-content
{
float: none;
width: 100%;
}
body:not(.search-results) article:not(.type-page) .entry-footer .avatar
{
display: inline;
margin: auto 0.3em 1em auto;
width: 27px;
}}

Los dos cambios que he insertado son la eliminación de blancos antes y después del título del blog y mover la información de metadata (autor, fecha, comentarios,…) de la columna izquierda del post al final.

Google Sheets en WordPress

Por fin he cambiado el sistema de publicación del listado y estadísticas de países visitados, carreras disputadas y libros leídos de mi blog personal que hasta este momento eran texto plano editado a mano.

He traspasado todos los datos en forma tabulada a Google Sheets y de ahí he generado con la opción «Publish to the web» el código embebido que he pegado en la página de wordpress.

La diferencia entre el código que ofrece Google y lo que últimamente he publicado es básicamente este conjunto de atributos: Width y Heigth para definir el tamaño del iframe y Frameborder para quitar el borde que viene por defecto. En este caso, además, he modificado el atributo Range que no pertenece al iframe sino al código que genera Google Sheets.

<figure><figure><figure><iframe src="https://docs.google.com/spreadsheets/d/e/2PACX-1vQhJB-4sS4wAbWYxRn6e1qrAxshUUWyUF8jeMwdsbKzi8sRlyhcblJNTHDggyGxLI6O65UdK4jy8gC4b7/pubhtml?gid=237186781&single=true&widget=true&headers=false&range=A1:E500" width="1000" height="8000" frameborder=0></iframe></figure></figure></figure>

Al final, este ha sido el código que he insertado como HTML en la entrada de WordPress y que nos da mucha más flexibilidad que la normal función de tablas o de texto formateado que viene estándar con la plataforma.

SSL en WordPress

Por fin me he decidido a poner un certificado SSL en mi blog personal y que deje de salir el desagradable «No es seguro» en Chrome junto a la URL.

La tarea ha sido bastante sencilla y ha sido suficiente con instalar un certificado, en mi caso el de PositiveSSL y después descargar y activar el plugin Really Simple SSL. Y ya está: automáticamente ahora la URL cambia a HTTPS desde HTTP.

¿Cuándo navega la gente por Internet?

En Gadgets para Correr tengo un par de miles de visitas al día y gracias a Google Analytics resulta bastante fácil extraer patrones de navegación. Para los usuarios en España estas son las principales características:

  1. Los usuarios navegan principalmente desde el trabajo. Los días festivos o fines de semana hay una fuerte caída de tráfico.
  2. Las horas puntas son alrededor de las 11h-12h, una vez llevas ya un buen rato trabajando y después, alrededor de las 15h cuando llegas de comer.
  3. Fuera de las bandas anteriores, también hay un pico importante entre las 21h y las 23h pero no llega a igualar el tráfico total que existe de 9h a 18h.

Es interesante observar como durante agosto, mucha gente continua utilizando Internet desde el trabajo pero con mucha más intensidad, especialmente en días señalados como el 13 y 14 de agosto (el 15, festivo, no hay casi tráfico). Imagino que no debe haber mucho trabajo durante esos días y se navega más.

Sería interesante comparar estos hábitos en España con los existentes en otros países para calcular el % de tiempo que pasamos «navegando» en horas de trabajo.

Como traducir una plantilla de WordPress

En la galería de plantillas de WordPress hay miles de opciones pero muy pocas tienen soporte para español. Sin embargo, crear nuestro propio fichero de traducciones es muy sencillo:

  1. Descárgate el archivo «NOMBRE_DE_PLANTILLA.POT» en el directorio de idiomas de la plantilla que nos hayamos descargado (normalmente en «wp-contents>themes>NOMBRE_DE_PLANTILLA>languages>»).
  2. Necesitaremos una aplicación de traducción que nos instalaremos en nuestro ordenador local: Poedit.
  3. Abrimos con el Poedit el archivo .POT y creamos un nuevo archivo para español. Automáticamente se creará un archivo «es_ES.po».
  4. Tenemos ahora que traducir con Poedit todas las frases que aparecen en la aplicación o las que creamos que vamos a utilizar.
  5. Una vez que hayamos terminado tenemos que generar el archivo «es_ES.mo» yendo a «Archivo>Compilar en MO…» en el menú superior.
  6. Esto nos generará el archivo compilado MO que ya podremos subir de nuevo al directorio «wp-contents>themes>NOMBRE_DE_PLANTILLA>languages>».
  7. Por último solo queda activar el nuevo idioma yendo al menú de WordPress en «Ajustes>Generales» y seleccionar el idioma Español.

Y listo. Nuesto blog ya estará en español.