WordPress ofrece una funcionalidad llama cron que te permite agendar tareas cada cierto tiempo. Éstas tareas son ejecutadas cada cierto tiempo según lo definido. De esta forma puedes ejecutar funciones de forma automática. Por ejemplo: respaldo de base de datos, sincronización con servicios externos, borrar caché entre otros.

¿Cómo funciona el cron de WordPress

WordPress posee un archivo llamado cron.php que al ejecutarlo. Revisa todas las tareas definidas en el cron para ejecutar las funciones de aquellas programadas a la hora actual o anterior. Por ejemplo, si decides ejecutar una tarea cada 12 horas. La primera vez que lo ejecutes lo agendará para ser ejecutado luego de 12 horas. Cada vez que se llama a al archivo cron.php bien sea de forma manual (accediendo directamente a él) o como lo hace por defecto, donde chequea cada vez que la página recibe una visita (no lo hace todo el tiempo). El archivo chequea si existen eventos registrado para la hora actual o ya pasada (es decir se le culminó el tiempo de agendado) y llama a la función definida en cada evento.

Agendar nuestros eventos al cron

Como comenté anteriormente, necesitamos definir el nombre de nuestro evento y la función a ejecutar. Primero debemos chequear que el evento no está agendado previamente para agregarlo. Una vez agregado no es necesario hacerlo de nuevo, con una sola vez se ejecutará varias veces automáticamente. De lo contrario será agregado infinidad de veces al cron. A continuación podemos ver un ejemplo de como hacer este proceso en tu plugin o tema.

if ( ! wp_next_scheduled( 'mi_evento' ) ) {
    wp_schedule_event( time(), 12 * HOUR_IN_SECONDS, 'mi_evento' );
}

En el segundo parámetro podemos ver 12 * HOUR_IN_SECONDS, ésta es una constante definida en WordPress, aunque podemos utilizar las cadenas de texto como ‘daily‘ (diariamente una vez al día), ‘twicedaily‘ (dos veces al día), ‘hourly‘ (cada hora). De esta forma tenemos control de la periodicidad del evento.

Cómo definir mis propios intervalos

Puedes definir tu propio período de tiempo para ejecutar tareas en el cron. Por ejemplo cada 3 horas o crear un período definido por un usuario a través de una caja de texto. Para ello, debes hacerlo de la siguiente forma:

function miprefijo_agregar_intervalo_de_cron( $schedules ) {
    $schedules['medio_minuto'] = array(
        'interval' => 30,
        'display'  => esc_html__( 'Every Five Seconds','mi-dominio-idioma'),
    );
 
    return $schedules;
}

add_filter( 'cron_schedules', 'miprefijo_agregar_intervalo_de_cron' );

Ahí vemos como WordPress posee en la variable $schedules la lista de intervalos y su cantidad en segundos. Nosotros a través de un filtro, vamos a agregar nuestro intervalo de medio minuto a la lista definida en la variable $schedules. Finalmente cada vez que se llame al listado de intervalos, nuestro período personalizado aparecerá allí. Y podemos utilizarlo en el segundo parámetro de wp_schedule_event().

Espero que esta guía os haya gustado, para mas información puedes chequear la documentación oficial de WordPress Cron. Cualquier duda que tengas no dudes en preguntarla.

La entrada WordPress Cron: ejecutar tu tareas cada X horas con intervalos personalizados se publicó primero en El blog de Skatox.

WordPress es uno de los CMS mas usados en el mundo. Al parecer 33% de Internet esta soportado por WordPress. Tal vez por su facilidad de uso para crear contenido de forma rápida y fácil para un usuario promedio de Internet. Pero la plataforma no está diseñada para resolver todo tipo de problemas. Por esta razón si tenemos una aplicación web (en este caso hecha con Yii2) o un sistema mas complejo es necesario realizarla con otro tecnología y no a través de plugins.

¿Por que integrar autenticación de WordPress a Yii2

En el párrafo anterior comenté como WordPress no puede ser usado para todo tipo de problemas. A veces necesitamos crear una aplicación con un framework para resolver cierto tipos de problemas o tener mayor control. Yo suelo usar el framework Yii2 permite realizar buenas aplicaciones en poco tiempo. Llevo un par de años usándolo y me gusta mucho.

A veces, tienes un sitio web con WordPress donde tienes una base de datos de usuario. Por ejemplo, una tienda registra todos sus usuarios allí o un sitio de noticias tiene cuentas para todos los redactores. Es posible reutilizar esta información en otro sistema que este alojado en el mismo servidor y usarlo como medio de autenticación.

Se que lo ideal es hacer una autenticación a través de OAuth o un API pero en algunos casos donde es un sistema pequeño, no hay presupuesto ni tiempo para invertir en esta solución es posible hacerlo de la siguiente manera.

Incluir el código base de WordPress

Antes de incluir el código de WordPress para la autenticación, tenemos la posibilidad de descartar la carga de código que no hemos usado, para esto podemos incluir en nuestro archivo PHP las siguientes constantes. Esto lo podemos escribir en en el archivo principal de Yii2, ubicado en /web/index.php antes de iniciar la aplicación.

define( 'WP_USE_THEMES', false);
define( 'COOKIE_DOMAIN', false );
define( 'DISABLE_WP_CRON', true );

Estas 3 constantes desactivan: la carga de temas, limitar la cookie al dominio del sitio y desactivar el cron. Este último evita que se tarde mucho tiempo la autenticación al lanzar los eventos pendientes del cron.

Luego simplemente incluimos los archivos wp-load.php y pluggable.php para cargar las funciones de autenticación de WordPress.

$wp_folder = 'RUTA_AL_WORDPRESS';
require(__DIR__ . '/../' . $wp_folder . '/wp-load.php');
require(__DIR__ . '/../' . $wp_folder . '/wp-includes/pluggable.php');

(new yii\web\Application($config))->run();

Modificación de la autenticación

Una vez realizado el paso anterior, procedemos a modificar la autenticación para que en vez de buscar en la base de datos, utilice la información de WordPress. Para ello en el método de findIdentity lo podemos realizar de la siguiente forma

  public static function findIdentity( $id ) {

    $wp_user = get_user_by($wp_attribute, trim($value));

    if ($wp_user) {
      $user                 = new self();
      $user->id             = $wpUser->ID;
      $user->username       = $wpUser->data->user_login;
      $user->niceName       = $wpUser->data->user_nicename;
      $user->displayName    = $wpUser->data->display_name;
      $user->email          = $wpUser->data->user_email;
      $user->dateRegistered = $wpUser->data->user_registered;
      $user->roles          = $wpUser->roles;
      $user->password       = $wpUser->user_pass;

      return $user;
    } else {
      return null;
    }

¡Listo! Ya podrás iniciar sesión en tu aplicación Yii2 utilizando las credenciales de tu instalación de WordPress. Nota como una vez teniendo el objeto de tipo WP_User podemos acceder a toda la información del usuario.

Espero que te guste y te sirva esta información.


La entrada Autenticar en Yii2 usando los usuarios de WordPress se publicó primero en El blog de Skatox.

Descubre apps muy auténticas para tu móvil
Descubre aplicaciones muy auténticas para tu móvil

¿No sabes que más descargarte en el móvil, pero querrías darle un valor añadido a tu dispositivo? Con tantas aplicaciones móviles para descargar, puede ser difícil encontrar las más adecuadas para ti. Hay muchas que no te resultarán útiles después de un tiempo o que no satisfarán tus expectativas cuando las hayas descargado. Para evitar esto, primero tienes que saber qué buscas exactamente, qué necesitas. Una vez lo sepas, encuentra las apps que más se adapten a lo que buscas. Pero por si no lo tienes claro o por si necesitas algunas ideas de apps para descargarte, aquí te hablamos de algunas que, al menos, te parecerán muy auténticas.

InkHunter: ¿alguna vez te has preguntado cómo te quedaría un tatuaje determinado o si el tatuaje que tienes en mente para hacerte te quedará bien? Esta app te dará la respuesta. Por supuesto, esta app no es para todos los públicos ya que tiene un público muy limitado: pero para todos aquellos que quieran hacerse un tatuaje, esta app es perfecta. Te permite diseñar y probar cómo va a quedarte un tatuaje en concreto antes de que te lo hagas gracias a la realidad aumentada. InkHunter te ayudará a ver cómo quedará ese tatuaje: puedes utilizar los gráficos que la app tiene o subir el que tú quieras según tus preferencias de tatuaje. Es muy fácil, solo tienes que poner el tatuaje que te gustaría hacerte e indicar con la cámara dónde te gustaría llevarlo. Si lo necesitas, podrás ajustar el tamaño y el color, para que la representación sea lo más real posible.

Apps de criptomonedas: las criptomonedas han estado de moda durante estos últimos años. Estas monedas virtuales, y descentralizadas de países, organismo y gobiernos, han llegado para revolucionar el mundo y la forma en la que pagamos. Muchas empresas se han animado a incorporar las cripto como forma de pago, aunque a estas divisas aún les queda un gran camino por recorrer. Hay apps que están creadas para ayudarte con la minería de las cripto o para darte toda la información que necesitas sobre estas monedas: su precio, su valor, las último cripto que han aparecido en el mercado y mucho más. Otra sugerencia es una app para invertir en criptomonedas, al fin y al cabo, muchos inversores han apostado por ellas y han obtenido grandes ganancias. Eso sí, si vas a invertir con una aplicación, asegúrate de que es una app regulada y que te ofrece seguridad.

¿Necesitas más apps auténticas para tu móvil? Si estas no te convencen, hay muchas más, como apps para relajarse o apps para practicar idiomas con gente de todo el mundo. Para conseguir apps novedosas que se adapten a ti, la clave está es saber qué buscas y en leer las experiencias de otros usuarios sobre las apps que te interesan. Si los comentarios son buenos y se ajustan a tus necesidades, ¡seguro que les sacas el máximo partido con tu móvil desde y donde quieras!

La entrada Algunas apps muy auténticas para tu móvil se publicó primero en El blog de Skatox.

Los que me leen desde hace años, habrán notado que suelo cambiar el diseño y tema de mi bitácora (blog) cada 3 años aproximadamente. La última vez que lo hice fue en el 2014. En ese entonces modifiqué un tema existente y lo adapté al diseño que tenía en mente. Pero con el paso del tiempo tuve problemas para mantenerlo, debía estar pendiente de nuevas tendencias para agregarlo y al no hacer un tema hijo, perdía las actualizaciones originales del tema.

Skatux: el pinguino de mi blog
Skatux, el logo de mi web ha vuelto al encabezado e icono del sitio

Mejoras del tema y de rendimiento

Lo primero que hice fue descargar la última versión del tema original. Hice un diff para ver las diferencias y así solo incluir las modificaciones requeridas. Me llamó ver como cosas que hacía anteriormente con modificaciones de código ahora las podía hacer con CSS. También ahora he podido migrar partes del diseño a flexbox en vez de usar floats y clears para alinear elementos.

También he incluido mejoras en el rendimiento como eliminar la carga de archivos de CSS y JS que no necesito. Agregué en el HTML la precarga de dominios para la publicidad de Google Adsense y otros elementos de terceros.

Con la ayuda de GTMetrix pude descubrir las fallas de mi sitio web. Posteriormente empecé a aplicar cada consejo para aumentar el rendimiento del sitio. No pude llegar hasta el puntaje máximo porque el problema es con la configuración de elementos de terceros como el botón de seguir de Twitter, publicidad de Adsense, entre otros. No se tiene acceso a esos elementos y son requeridos por el sitio. Aunque sé que llegué al puntaje máximo sobre las cosas que poseo control.

Mejoras de accesibilidad

Siempre he usado el color naranja como el distintivo de mi blog. Pero al aplicar las pruebas de accesibilidad de Lighthouse descubrí que los tonos naranjas no pueden ir sobre blanco. Por lo tanto tuve que buscar el color mas próximo para así tener mi sitio accesible a todo tipo de personas. También agregué elementos requeridos a algunas imágenes o mejoras del código para facilitar la lectura del sitio en dispositivos para personas con discapacidad.

También tuve que acomodar el tamaño de algunas fuentes y separar elementos para mejorar la visualización. Eso si, sin afectar el diseño del sitio.

La experiencia de actualizar mi blog

Mejorar el trabajo que realicé hace 5 años fue interesante. Me da pena ver como hacía algunas cosas. Pero comprobé como he mejorado mis conocimientos en WordPress y desarrollo web general. También es interesante conseguirse con código o archivos obsoletos. Encontré 2 plugines para vender publicidad, cuyas empresas ya no existen y por lo tanto eliminé.

Vale la pena cada cierto tiempo realizar esta tarea para modernizar las tecnologías del blog. Comprobar si has mejorado o aprendido nuevas cosas y ganar nuevos conocimientos para aplicarlos en trabajos

Espero que noten las mejoras en la carga del sitio. Si encuentran algún problema en bug, no duden en reportarlo para solucionarlo y mejorar la calidad del sitio.

Gracias por leer este artículo 🙂

La entrada Experiencia al actualizar el tema de mi blog se publicó primero en El blog de Skatox.

Hace unos días escribí sobre el cierre de Linux Counter. Luego al revisar el sitio Planeta Linux. ¡Me entero que también cerró! Ha sido una semana nostálgica para mi respecto al mundo de Linux. Pues han cerrado dos sitios que les seguía la pista por muchos años.

¿Qué era Planeta Linux?

Planeta Linux fue un proyecto realizado por varios programadores (principalmente Damog) promotores del software libre en Latinoamérica. La idea era compartir los artículos de Linux de distintas bitacoras de tecnología de distintos países. Pues cuando se creó el sitio, el contenido se compartía principalmente en blogs. Las redes sociales eran prácticamente inexistentes. Gracias a este sitio podías leer sobre lo que ocurrió sobre Linux en tu país.

Cierre de la página

Sin embargo en los últimos años, los blogs personales han decaído y pocas personas seguían escribiendo sobre Linux. Por lo tanto el contenido empezó a estancarse. El contenido de Linux a migrado a sitios empresariales y sitios dedicados a Linux, ya es muy poco el contenido de sitios personales. Además, es mas fácil conseguir contenido actualizado desde las redes sociales.

En fin, fue el cierre de un gran sitio. Recuerdo la emoción de cuando aceptaron mi blog en ese sitio. Recibí muchas visitas desde allí y me encantaba entrar cada cierto tiempo para ver el contenido del mismo. Pero los tiempos cambian y toca adaptarse a ellos.

Gracias Planeta Linux.

Nota de cierre de Planeta Linux
Mensaje de cierre de Planeta Linux

La entrada Planeta Linux cierra para siempre se publicó primero en El blog de Skatox.

Si han sido usuarios de Linux desde hace años, probablemente estén registrados en LinuxCounter. Para los usuarios mas jóvenes, LinuxCounter es un sitio donde te registraba y te daba un número de usuario. Este número no tenía mayor importancia, simplemente era una forma de indicar que eres usuario de GNU/Linux. Como tenía un número que se incrementaba con cada registro. Tener un número bajo significaba que has sido usuario de Linux por muchos años, por lo tanto tenías mayor respeto en los sitios por tu experiencia. También permitía registrar tu máquina con Linux con fines de llevar estadística e informar a otros de tu equipo personal.

Tal vez hoy en día parece extraño. Pero hace tiempo muchos usuarios de GNU/Linux lo colocábamos en los foros, blogs (siempre lo he puesto), firmas de correo, entre otros. Era como una identificación dentro del mundo de Linux. Si era un número muy bajo, podrías considerarlo como gurú o experto de este sistema operativo y por eso se compartía.

¿Que pasó con LinuxCounter?

Pues hoy me entero al entrar al sitio su cierre. El actual mantenedor dice que no ha recibido suficiente donaciones para mantener el proyecto activo. Pocos registros de usuarios y máquinas (casi nulos) han demostrado la muerte de este proyecto y por lo tanto ejecutar su cierre. Pasará a estar disponible solo en archive.org. El sitio que recopila el historial de varios sitios web al paso de varios años.

Para mí es el cierre de una etapa del mundo Linux, recuerdo lo importante que era registrarse como usuario cuando empecé a usar Linux por allá en el 2003. Pero si noté que el proyecto estaba muerto y los nuevos usuarios de este sistema desconocían esto.

Finalmente, les comparto mi número de usuario Linux. No recuerdo de donde saqué este formato que incluía la bandera de Venezuela. Pero si son seguidores de esta página, notarán que siempre ha estado publicado en la barra lateral

El numero de LinuxCounter de Skatox
Mi número de usuario de LinuxCounter: 399895

¡Gracias por todo LinuxCounter!

La entrada El fin de LinuxCounter se publicó primero en El blog de Skatox.

Tal vez hayas escuchado sobre el servicio AWS Lambda. Su popularidad ha crecido gracias al auge de la arquitectura sin servidores (serverless en inglés). Ésta consiste en desplegar aplicaciones sin preocuparse por las tareas del servidor, pues éstas son manejadas por un servicio exerno. Permitiendo a los desarrolladores enfocarse en la aplicación como tal y no en el mantenimiento de las capas inferiores a él.

¿Qué es AWS Lambda?

Es el servicio de Amazon para ofrecer el desarrollo de aplicaciones serverless. Y como todo producto de esta compañía, tiene su propia forma de trabajar. Por lo que se requiere una pequeña cantidad de conocimientos iniciales para usar el servicio.

¿Cómo iniciarse en AWS Lambda?

Pero no te preocupes, que mi amigo Carlos Guerrero (ya he publicado su material en mi blog) ha desarrollado un excelente video de 1 hora. Conocerás en poco tiempo lo necesario para crear tu primer servicio bajo arquitectura sin servidor. El video se encuentra en español, posee ejemplo de código y muestra la interfaz del servicio para que no te pierdas.

Si te ha gustado, recuerda compartirlo para que otros aprendan. Escríbele a Carlos para que se anime a crear mas contenido. Recuerda comentar si deseas compartir algo en esta entrada.

Happy Development!

La entrada Primeros pasos con AWS Lambda (Serverless) se publicó primero en El blog de Skatox.

Hace unas semanas comenté sobre las parodias musicales geek que realiza SuSE. Esta vez vienen de nuevo con un video musical de buena producción. Esta vez se llama Paint it Green y es una versión de la canción Paint it Black de The Rolling Stones.

Paint it Green

El nombre de este video es porque quieren pintar de verde los servidores. Con esto se refieren a instalar SuSE Linux en los servidores para mejorar los servicios en la nube de una organización. También comentan sobre Kubernetes, Cloud Foundry, Open Stack y muchas mas tecnologías abiertas.

En fin, si eres fanático de GNU/Linux y del rock, no puedes perderte de Paint it Green. A continuación puedes mirarlo:

Espero que te haya gustado. Recuerda que si conoces otro video geek o desean compartir su opinión. No dudes en comentar y compartir este video.

La entrada Paint it Green: Parodia de Paint it Black se publicó primero en El blog de Skatox.

Al crear una startup, es indispensable darse a conocer y tener la mayor visibilidad posible, para ello, las herramientas de mailing son nuestras mejores aliadas.

Crear una buena estrategia de mailing no es nada fácil ni económico. En la web encontrarás una gran cantidad de excelentes herramientas pero éstas tienen un elevado costo y si queremos comenzar reducir costos operacionales. Con las siguientes herramientas, sabrás como llevar a cabo una estrategia que te ayudará a tener una mayor visibilidad para enviar y retener los mejores potenciales clientes sin gastar mucho.

Usa herramientas de mailing para mejorar tu mercado por correo
Fuente de la imagen: Mailrelay

Principalmente, los objetivos de todas las herramientas de mailing exitosas son:

  • Manejo de base de datos de nuestros clientes
  • Creación y envío de boletines de noticia
  • Generación de estadísticas

Consejos para la creación del correo

En este sentido, podemos crear una estrategia de marketing por correo poderosa usando la base de datos de nuestros clientes al personalizar nuestros correos usando el nombre personal, ya que de esta forma, tu correo es más personal y las personas se sienten familiarizadas con tu startup. Un ejemplo de esto tenemos a diferentes compañías tales como Amazon, que usan el primer nombre en vez de, querido cliente.

Usa un correo directo de respuesta, al usar “donotreply@.com” el correo ya no es tan personal y así las personas no tienen la opción de responder con alguna duda o pregunta que tengan acerca del boletín de noticias que enviamos. Entonces así tenga su nombre, no vas a poder llegar de la forma deseada al cliente o potencial cliente.

Otra forma sencilla de personalizar nuestro correo es, usando nuestra firma real. Cuando recibes un email que viene firmado por el CEO de Amazon sientes esa corazonada de que esa persona te ha escrito personalmente, lo cual hace más personal el correo.

Creación de los boletines de noticias con las herramientas de mailing

En cuanto a la creación y envío de boletines de noticias se basa en la segmentación de nuestros clientes, ya que queremos que nuestros boletines sean enviados a la persona correcta. Por ello que éste es el paso más importante de todos para tener el mejor marketing por correo. ¿Cómo hacemos una segmentación de nuestra base de datos? Esto va de acuerdo al tipo de startup que tengas, ya sea una startup dirigida a personas individuales generalmente la segmentación va entre sexo, edad, ciudad donde vive, entre otras. Y si tu startup va dirigida a sector empresarial puedes segmentar de acuerdo al sector de industria al que va dirigido, tamaño de compañía, localidad de la compañía, entre otros.

Otro consejo importante en la creación y envío de newsletters y boletines viene dado en que el correo debe ser amigable con la pantalla del teléfono móvil. Esto viene dado ya que un número importante de personas revisan su correo a través del teléfono móvi. Si éste no está adaptado a la pantalla, la persona se aburre y no lo lee.

El uso de herramientas de mailing mejorará tu negocio
Imagen cortesía de fromdoppler.com


En cuanto a la generación de estadísticas, es el elemento final pero no el menos importante. Con las estadísticas podemos analizar cuáles fueron los resultados obtenidos con cada estrategia de mercado por correo usada, si fue exitosa o no. Podemos analizar las estrategias y modelos que podemos seguir usando para ir actualizando con el tiempo y cuales definitivamente debemos dejar de usar. Hay muchas herramientas de mailing que nos pueden dar estadísticas automatizadas que nos van a ahorrar un montón de trabajo. Te recomiendo leer sobre cómo enviar emails masivos para iniciarte en este mundo.

La entrada Las mejores herramientas de mailing para tu startup se publicó primero en El blog de Skatox.