Hace unos días me tocó actualizar mi computadora de escritorio que tenía 4 años sin actualizarse debido a que había migrado a una MacMini. Entonces procedí a realizar una actualización de todo el sistema usando:

pacman -Suyy // la doble Y actualiza toda la información de los repositorios

A pesar de tanto tiempo sin actualizarse, la actualización fue de 1.7 GB y prácticamente fue reinstalar todo. Revisé en las noticias de Archlinux y vi que las intervenciones manuales no eran necesarias para este equipo. Pero se quejó de dos cosas:

  • Habían muchos archivos del xproto y kde-l10n-es que estaban en el sistema. Mi proceso fue moverlos a una carpeta de respaldo y funcionó (pues la opción para forzar escritura fue removida).
  • No podía actualizar el kernel CK (Utilizo la variante de CK porque está diseñada para computadoras de escritorio) porque no podía descomprimir paquetes en formato XZ.

Como dañé PacMan

Para resolver el último problema, intenté actualizar el Package Manager a la última versión. Pero solo actualicé ese paquete y no las dependencias. Algo que en Archlinux es pecado porque debes hacer actualizaciones completas para evitar el problema que ocurrió.

Al hacer ese proceso, el nuevo pacman dependía de una nueva versión de libc y no podía actualizar la librería porque no funcionaba pacman.

Pacman-Static

Descubrí el paquete PacMan-Static. Es una versión de pacman en formato binario, cuyas liberías requeridas están enlazadas. Entonces puedes ejecutar el gestor de paquetes sin ninguna dependencia adicional.

Una vez descargado el binario, le di permisos de ejecución y actualicé el sistema:

chmod +x pacman-static  ## Permisos de ejecución
pacman-static -Su ## Para actualizar el sistema

Luego de eso pude actualizar todo y reiniciar sin problemas.

Archlinux y las instalaciones largas

Pensé que iba a tener mas problemas al actualizar Archlinux. Pero no tuve mas problemas aparte de archivos existentes que podía mover antes de actualizar. El otro problema lo hubiese podido evitar si no hubiese hecho actualización parcial.

Por eso es que me gusta esta distribución de Linux.

La entrada Borré o dañé PacMan ¿Qué puedo hacer? se publicó primero en El blog de Skatox.

Leer más

El pasado 19 y 20 de Octubre se realizó en la ciudad de Panamá, el primer WordCamp Panama. WordCamp es un evento oficial de WordPress organizado por la comunidad local donde se reúnen entusiastas de esta tecnología para compartir sus conocimientos.

En la edición de este año tuve la oportunidad de participar en el evento como ponente representando a Mozilla Tech Speakers. Era mi primer viaje real a Panamá, ya que sólo estuve unas horas anteriormente.

1er día del WordCamp Panamá

Al llegar a la entrada del evento, comenzaba el proceso de registro. Allí me diero el swag del evento y procedí al teatro principal. El formato del WordCamp Panamá consistía en tres charlas simultáneas en distintos lugares: teatro principal y aulas de la universidad. Generalmente las charlas de dividían en desarrollo, mercadeo y diseño. Atendí principalmente a las de desarrollo y algunas de mercadeo.

El evento comenzó con unas palabras de Ernesto Morales hablando sobre el esfuerzo para realizar evento y como fue la organización del mismo. De ahí fui a la charla de Miguel Díaz sobre como debes vender tu producto en la Web y los complementos de WordPress que facilitan este proceso. Ricardo Rubio nos mostró como hacer sitios estáticos en WordPress y unos hacks para hospedar nuestros sitios en servicios de forma gratuita.

Las charlas de Andrea Navarro, Pedro Rosillo y Felix Bellido estaban dirigidas a como mejorar nuestro negocio en Internet, utilizando mercado, estrategias digitales, Google Adsense, Google Business entre otros. Obviamente no faltó mencionar los plugins que nos permiten implementar estas funcionalidades fácilmente. De ahí fui a una charla de Jose Jimenez Vega sobre como crear tu marca personal.

En el siguiente turno asistí a las charlas de desarrollo, un taller de Ricardo Rubio sobre optimización de sitios en WordPress. Y finalmente la ponencia de Joaquin Vargas sobre como usar Programación Orientada a Objectos en WordPress.

El evento contaba con recesos entre los turnos para el networking, comida gratuita (incluyendo almuerzo) para los asistentes. Ademas de casillas de los patrocinadores para obtener información de los servicios.

2do día del WordCamp Panamá

En el segundo día, solo pude asistir a las charlas de la tarde (tuve un fuerte vuelo y debía descansar). Entre esas la de Rafael Lara sobre seguridad en WordPress. Estuvo genial porque explicó los conceptos de seguridad pero enfocados en este CMS.

Luego de él era mi turno. En esta ocasión hablé sobre las Herramientas de Desarrollo de Firefox orientadas al desarrollo de WordPress. Mostré como se pueden usar las herramientas para usar las últimas tecnologías de CSS en temas de WordPress: CSS Grids, Flexbox, Variable fonts. También comenté sobre las herramientas de JS, Chrome Logger para mostrar los logs de PHP en el navegador, herramientas para el rendimiento, entre otros. (Agradezco a Alcibiades Guevara por tomar las fotos de mi charla)

Luego procedimos al cierre donde se tomó la foto grupal, los organizadores nos dieron la despedida y finalización formal del evento.

Resumen

El WordCamp Panamá fue un gran evento, con ponencias de todas las áreas que abarca WordPress: mercadeo, desarrollo, servidores, negocios, diseño, periodismo, entre otros.

La comunidad me pareció muy agradable, son personas cuya colaboración se nota que es por amor y no buscando reconocimiento, está compuesta por personas de distintos países, entre otros. Por eso te recomiendo asistir a un WordCamp Panamá, además el país ofrece lugares para turismo y vivir una experiencia caribeña.

Si tienen algún comentario del evento o de mi ponencia, no duden en escribir.

Happy blogging!

La entrada Mi experiencia en el WordCamp Panama 2019 se publicó primero en El blog de Skatox.

Leer más

Este año tuve la oportunidad de participar en el BrazilJS Conf del 2019. Para quienes no la conocen es la conferencia de JavaScript mas grande del mundo. Había enviado ponencia en las últimas 3 ediciones pero finalmente este año fui aceptado. Mis expectativas era que el evento iba a estar genial pero no sabía como era.

Cuando fui al escenario a realizar la prueba de sonido. Me sorprendí porque no sabía la magnitud del evento. El lugar contaba con puestos para 2000 asistentes y con 4 pantallas gigantes para mostrar la conferencia. Ademas que contaba con excelente organización para entretener a la audiencia y contar con 2 tarimas para no perder tiempo entre ponentes.

El formato de BrazilJS Conf 2019

El evento constaba de 3 días: el primero era de puros talleres y para los ponentes era el día de realizar pruebas. aquí tuve la oportunidad de ver un taller de Matías Johanson sobre el uso de redes neuronales en JavaScript, unas charlas de NIC Brazil y W3C sobre la des-centralización de la web. Pude entrar a una charla de marketing usando datos éticos, es decir, no obtenidos sin permisos de los usuarios o comprados a redes sociales. Me llamó la atención esta última porque no había pensado en que ahora el marketing se hace con datos robados de los usuarios.

El segundo día era el inicio real del evento. Me encantó que habían 2 tarimas, así cuando un ponente estaba por terminar el otro se preparaba y el cambio se hacía sin perder tiempo. También entre cada ponencia un grupo acústico tocaba la canción favorita del ponente entreteniendo la gente. El evento comenzó con un video introductorio de los organizadores, muy emotivo. Luego unas palabras de Jaydson Gomes sobre el trabajo realizado y lo que se esperaba allí. Pude entrar a varias charlas, todas muy buenas y algunas en inglés. Luego de finalizar el evento, varias asistentes organizaron una salida para compartir y conocernos mejor.

El último día seguía el mismo formato del anterior. Llegué un poco tarde por estar practicando mi charla y tenia que hacer una visita. Pero luego de dar mi charla pude disfrutar de todo el evento. En la sala de patrocinantes había un puesto para comprar camisetas donde aproveche y adquirí de VueJS y del evento. También habían unas barajitas con fotos de los ponentes del evento y podías pegarlos en un albúm. En los stands de patrocinios podías conversar con la gente de proyectos y ofertas laborales.

Mi ponencia sobre WebAssemby

Siempre que doy esta charla debo agregar contenido nuevo. Para este evento había agregado cosas nuevas como un demo de Doom 3, Google Keep, entre otros. Por eso no estaba preocupado por la calidad del contenido sino porque debía darla en inglés y no estoy acostumbrado a ello.

Traducí las láminas a portugués usando un traductor en línea. Posteriormente me ayudaron a acomodar algunos detalles. Me gustó ver a las personas emocionadas porque disfrutar el contenido escrito de mi conferencia en portugués. Recibí buenos comentarios en redes sociales sobre ello.

Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019
Mi auto-retrato antes de comenzar la ponencia. Noten la cantidad de gente, es la mitad porque del otro lado había más.

Creo que me fue bien. Estaba un poco nervioso por tener que hablar en inglés, ver las notas en español pero las láminas en portugués. Respecto a la cantidad de gente, era tanta que no era posible enfocarse en todos, así que no era un problema.

Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019
Miguel Useche hablando de Webassembly en el BrazilJS Conf del 2019

Palabras finales

BrazilJS Conf fue uno de los mejores evento que he estado. Una organización increíble, excelentes temas y conferencistas. El lugar estaba equipado con todo. La ciudad de Porto Alegre es muy bonita, la gente es demasiado amigable. La comida es excelente, sobre todo las carnes. Buenos dulces y chévere para conocer.

Si alguna vez les llama la atención ir a un BrazilJS Conf, no duden e ir.

La entrada Mi experiencia en el BrazilJS Conf de 2019 se publicó primero en El blog de Skatox.

Leer más

Si están utilizando Vuetify y desean un componente para mostrar notificaciones en vue.js. Verán que existe una llamado Snackbar que permite implementarlos. El problema de este componente es que requiere definirse en cada vista que hagamos en Vue (por la naturaleza de esta librería) y debemos crear un método para mostrarlo.

Esto es un problema en aplicaciones grandes, porque tendríamos código repetido y descentralizado. Gracias a Vuex podemos evitar este tipo de cosas. Por lo que te explicaré como crear notificaciones con vue.js con Vuex.

Definir opciones del Snackbar en Vuex

Primero vamos a definir en vuestro archivo store.js (o donde instancias Vuex.Store) un estado para tener la configuración por defecto del Snackbar. El estado permite almacenar los parámetros del Snackbar de forma global y poder ser accedida desde cualquier vista. Para ello en la sección de state agrega las siguientes opciones:

export default new Vuex.Store({
  state: {
    snackbar: {
      visible: false,
      color: "success",
      text: null,
      timeout: 10000,
      multiline: false
    },
    ...
    ...
  },

Luego en el mismo archivo, definimos una mutación. En Vuex las mutaciones son los métodos que nos permiten modificar un estado. Esta mutación la usaremos a lo largo de la aplicación para lanzar la notificación desde cualquier lado.

El primer parámetro siempre es el estado actual y el segundo el payload. Éste último es enviado cada vez que llamamos a la notificación con el fin de definir la apariencia. Por ejemplo, si ocurre un error podemos enviar los parámetros de que el tipo de notificación sea error y aparezca de color rojo.

En este ejemplo, agregué opciones para decidir si mostrarlo en multi-línea , elegir color, tiempo de duración, etc. Así que en la sección de mutaciones del store.js agrega:

mutations: {
    alert(state, payload) {
      state.snackbar.text = payload.text;
      state.snackbar.multiline = payload.text.length > 50;

      // Si es mas de 50 caracteres definirlo como multilinea
      if (payload.multiline) {
        state.snackbar.multiline = payload.multiline;
      }
   
      // Color para mensajes de error o éxito
      if (payload.color) {
        state.snackbar.color = payload.color;
      }

     // Tiempo de duración
      if (payload.timeout) {
        state.snackbar.timeout = payload.timeout;
      }
      state.snackbar.visible = true;
   },
   closeAlert(state) {
      state.snackbar.visible = false;
      state.snackbar.multiline = false;
      state.snackbar.text = null;
    },
}

También en esta sección de mutaciones agregué una mutación llamada closeAlert(state) para poder alterar la configuración del snackbar y hacer que se oculte.

Crear el componente de la notificación

Lo mas fácil es crear un componente para la notificaciones. Pues así no mezclas código y lo puedes ubicar en un sólo lugar para que se lance.

Este componente consta simplemente de un Snackbar cuyas opciones son extraídas de un dato llamado snackbar. Este dato es extraído del estado de Vuex definido previamente a través de una variable computada.

Aquí puedes ver el ejemplo de mi componente:

<template>
  <v -snackbar top="" v-model="snackbar.visible" :timeout="snackbar.timeout" :multi-line="snackbar.multiline === true" :color="snackbar.color">
    {{ snackbar.text }}
    </v><v -btn text="" dark="" @click="closeAlert">Close</v>
 
</template>
<script>
import { mapMutations } from "vuex";
export default {
  computed: {
    snackbar() {
      return this.$store.state.snackbar;
    }
  },
  methods: {
    ...mapMutations(["closeAlert"])
  }
};
</script>

Ahora, para implementar el cierre, importo las mutaciones de Vuex para tener acceso a la función closeAlert que definimos previamente. De esta forma al llamar a closeAlert (una mutación) modificará el estado de la variable visible, haciendo que se oculte.

Este component lo puedes colocar antes del cierre de tu v-app para que se pued mostrar en todas las páginas.

Crear las notificaciones en Vue.Js

Cada vez que desees mostrar una notificaciones en vuej.js, solo debes realizar un commit. El primer parámetro es el nombre de la mutación, en este caso alert y las opciones del snackbar la pasas como segundo parámetro.

Un ejemplo para una notificación de error sería algo como:

this.$store.commit("alert", {
  color: "error",
  text:
    "Could not load purchase order info. Status Code: " +
    response.status
});

¡Listo! Ahora podrás mostrar notificaciones con vue.js de forma centralizada a lo largo de tu aplicación.

La entrada Crear notificaciones en Vue.js con Vuetify 2.0 y Vuex se publicó primero en El blog de Skatox.

Leer más

Cuando ocurre un error de WordPress u obtenemos un error HTTP 500 en nuestra instalación (generalmente debido a un error de PHP). El primer paso para resolver el problema es leer el error para conocer que está ocurriendo. Sin embargo, muchos servicios de hosting desactivan mostrar los errores en pantalla para evitar mostrar errores en los sitios de los clientes (se ve mal visualmente). Otra razón para desactivarlo es para prevenir ataques debido a que el error muestre información oculta de la aplicación que pueda ser aprovechada para aprovechar vulnerabilidades.

En algunos casos, por motivos de rendimiento algunos servicios desactivan el almacenamiento de errores en segundo plano. Complicando la posibilidad de conocerlos y arreglarlos.

Cómo mostrar los errores de WordPress

WordPress posee un modo de depuración. Éste permite mostrar los errores de WordPress en la página o almacenarlos en un archivo.

Para activarlo, debes abrir el archivo /wp-config.php. Busca una sección donde puedes colocar constantes. Allí coloca las siguientes constantes:

define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);
@ini_set('display_errors', 0);

Ahora podrás ver los errores en pantalla, almacenados en el log e incluso forzando al servidor web a guardarlos. Simplemente chequea el error de WordPress. Soluciona y desactiva de nuevo el modo de depuración para volver la página a su estado original.

Espero que te sirva de ayuda. Si conoces otro método, no dudes en compartirlo. Y si deseas leer mas artículos de este tema. Puedes chequear mi categoría del blog dedicada a WordPress.

La entrada Ver los errores de WordPress en los hostings se publicó primero en El blog de Skatox.

Leer más

El pasado 29 de Junio tuve la oportunidad de ser parte de los ponentes del JConf Dominicana. Un evento realizado por la comunidad local de Java en la PUCCM. El evento estuvo formado por ponentes de distintas partes del mundo para comentar sobre las últimas tendencias en la JVM.

La estructura del evento me gustó porque en la mañana se hicieron las principales ponencias por parte de los conferencistas mas importantes en el teatro de la universidad. En la tarde, se hacían el resto de presentaciones en aulas de clase donde los asistentes podían escoger a cuales ir. Me gustó la organización porque estos temas tenían diferente dificultad y áreas, así que podías asistir a las charlas de tu perfil profesional sin problemas de choque.

Sesión matutina

Para llegar a Dominicana tuve que tomar varios vuelos con horarios incómodos. Por esta razón, tuve que dormir el día antes del evento y me levanté un poco tarde. Me perdí la apertura y la primera charla. Pero pude entrar al final de la de Sebastían Daschner sobre los mejores frameworks empresariales de JAVA. Posteriormente fui a la de Mark Heckler sobre plataformas escalables con spring. Excelente ponencia con buenos chistes en español. Finalmente se hizo un panel de conferencistas para discutir los temas actuales de la plataforma Java y del futuro de la misma. Excelente opiniones y temas tratados allí.

Sesión de la tarde

La primera conferencia que entre fue la de Eliezer Herrera sobre plataformas como Graal, Gradle y Vertx que permiten la ejecución de otros lenguajes en la JVM. Muy interesante y no conocía que se podían hacer ese tipo de cosas. De ahí fui a la charla de Carlos Paulino sobre desarrollo continuo para plataformas Android. Me llamó la atención porque trabaja en American Express y quería conocer como es el proceso de desarrollo de una aplicación móvil en ese tipo de empresas. Me llamó al atención el cuidado hacia la calidad y cómo las pruebas se realizan en distintas plataformas.

Luego de un receso para unas golosinas, comenzó la charla de Omar Berroterán Silva sobre GraphQL. La tecnología para obtener fácilmente datos a través de una API. Esta ponencia abarcó desde la introducción hasta dar ejemplos de como consultar datos, instalar esta herramienta, entre otros. Me gustó como Omar utilizó códigos QR en sus láminas para que los asistentes pudiésemos ver los ejemplos en el móvil y participar en la charla.

Java de nuevo a la web con WebAssembly

Mi charla en este evento la estaba dando por primera vez. Aunque había hablado de WebAssembly, nunca la había mezclado con Java. En ella pude hablar sobre una pequeña introducción a esta plataforma. Las diferencias respecto a los Applets de Java (pues tiende a confundir inicialmente a los programadores de Java). Por qué no iba a tener el mismo destino que los applets.

En el caso de Java, esta charla me gustó darla porque existen actualmente varias formas de llevar el lenguaje. Cada una trabaja de forma distinta y pude mostrar las bondades de cada forma.

La presencia fue excelente, hicieron preguntas muy interesantes y de ahí salí al cierre del evento con música dominicana.

Cena del JConf Dominicana

La cena fue excelente, tuve la oportunidad de compartir con otros ponentes. Conocí mas de la cultura Dominicana. Pude probar sus excelentes platos típicos como el mangú y mofongo. Disfrutar de un buen ambiente caribeño y discutir de tecnología.

Fue una gran experiencia participar en el JConf Dominicana. A pesar de estar solo 2 días en el evento. Me llamó la atención como la mayoría de los ponentes internacionales hablaba español. Los temas fueron muy interesantes. Los organizadores hicieron un excelente trabajo.

¡Lo disfruté mucho! Espero volver algún día.

La entrada Mi experiencia en el JConf Dominicana se publicó primero en El blog de Skatox.

Leer más

El pasado 18 de junio tuve la oportunidad de participar en el Women Community Fest del Campus Party Bogotá 2019. El Campus Party es un evento donde se realizan diversos eventos relacionados a la tecnología, inversiones, emprendimiento, videojuegos, entre otros. El evento dura aproximadamente una semana y no se descansa pues permite a los asistentes quedarse en carpa durante la noche.

Women Community Fest

En esta ocasión, había un espacio de tecnología y el mismo fue asignado al Women Community Fest, una comunidad está conformada un gran número de chicas de distintas partes de Colombia con grandes conocimientos en tecnología de la información y experiencia en la realización de eventos informático, promoviendo la equidad de género y empoderamiento de las mujeres sin discriminar otros géneros.

La duración del evento duró una semana, así que me es difícil resumir todo lo ocurrido. Ademas que tuve que trabajar en mis proyectos mientras estaba en el evento, por ello solo pude tomar fotos y asistir a pocas presentaciones. Por parte de Mozilla, estuvimos con ponencias del programa Mozilla Reps y Mozilla Tech Speakers, ademas de contar con la participación de miembros de Mozilla Colombia. Se habló de diversos temas como: Common Voice, herramientas de desarrollo de Firefox, la salud de Internet, WebVR, entre otros.

Todas charlas estuvieron muy interesantes, escuché sobre React, Docker, WordPress, seguridad informática, salud de Internet, cifrado, arquitectura. Es decir, había de todo. Tanto para principiantes como para profesionales.

El navegador es tu mejor amigo para el desarrollo web

En esta ocasión tuve la oportunidad de comentar sobre las herramientas de desarrollo de Firefox para el desarrollo web. A diferencia de las ediciones anteriores hablé tanto de las herramientas enfocadas a CSS como de JS.

Skatox hablando sobre el navegador es tu mejor amigo en el Women Community Fest
Hablando sobre el navegador es tu mejor amigo

Tenía presión porque mi charla era justo antes del partido de la selección de fútbol en la Copa América (no podía competir con ello). Pero mi charla terminó justo cuando los jugadores empezaron a salir al campo.

Me gustó la receptividad, muchas personas quedaron interesadas en como utilizar algunas herramientas y con mayor información del navegador. Si desean saber mas detalles. Pueden verla a continuación gracias a la página de Women Community Fest en Facebook:

Mi charla sobre el navegador es tu mejor amigo para el desarrollo web

Evento de Platzi/Facebook

Durante el penúltima día del evento, tuve la oportunidad de ser invitado a un evento privado de Platzi, la empresa líder de educación en línea para latinoamérica. Era un evento dirigido a líderes de comunidades para la promoción de becas estudiantiles para madres solteras, minorías, migrantes, trans, etc.

El evento fue realizado en conjunto con Facebook, quienes iniciaron con unas presentaciones muy interesantes de realidad virtual y bots con inteligencia artificial. No puedo dar muchos detalles pero me hizo ver como es el futuro de la tecnología. Para luego finalizar con una breve historia de Platzi y sobre el futuro de la educación.

Fue una gran experiencia poder disfrutar de este gran evento por una semana. Logré conocer nuevos colaboradores de comunidades de software libre de todas partes de Colombia y ayudar a formar la comunidad de Mozilla Colombia.

Las chicas del Women Community Fest hicieron un gran trabajo como organizadores. La calidad de los ponentes fue muy alta y la representación muy equilibrada, mitad hombres, mitad mujeres. Con nacionalidades de Colombia, Venezuela, México, Argentina, entre otros. Ojalá mas eventos se copien de éste para seguir promoviendo la equidad de género en la tecnología.

La entrada Mi breve resumen del Women Community Fest 2019 se publicó primero en El blog de Skatox.

Leer más

Si el mundo digital nos había dejado descolocados con todas sus creaciones la llegada de las criptomonedas nos ha trastocado. En 2009 asistimos al nacimiento del Bitcoin. Bien, en verdad muchos de nosotros nos enteramos de ello años más tarde. El caso es que desde el nacimiento del Bitcoin la presencia de las criptomonedas o monedas digitales ha ido en aumento. Las más conocidas por el momento son Bitcoin i Ethereum, pero también hay otras como Litecoin, Monero o Dash, entre muchas otras. Una de las cosas clave y qué más preocupan a los que se adentran a este mundo es el intercambio, como el intercambio popular de binance.com.

Bitcoin y procesador Intel

Bitcoin y Ethereum, las diferencias

Son las dos criptomonedas más grandes del mundo, Bitcoin la que más. Aún así Ethereum ha sufrido un crecimiento mucho más rápido que Bitcoin y se usa cada vez más. A pesar que para muchos puede ser la misma cosa, ya que hablamos de criptodivisas, lo cierto es que las dos responden a proyectos muy diferentes con objetivos muy distintos. Por tanto, muchos analistas apuntan que se trata de dos cirptomonedas compatibles y no excluyentes.

Bitcoin, como hemos dicho, fue creado en 2009 por alguien o un grupo de personas, que responden al pseudónimo de Satoshi Nakamoto. No se sabe quién es o quiénes son. Ethereum nació en 2014, unos cuantos años más tarde, de la mano de Vitalik Buterin.

La plataforma Bitcoin nació con el objetivo principal de ser un sistema de pago descentralizado, rápido y seguro, similar al de la propia moneda. Por su parte el objetivo de Ethereum es el de funcionar como plataforma de ejecución de contratos inteligentes y aplicaciones descentralizadas.

Los dos usan lenguajes de programación diferentes, el primero usa el C++ y el segundo el Turning Complete. Aunque las dos se pueden considerar criptomonedas descentralizadas. El Bitcoin es una moneda 100%virtual, mientras que al segundo se le llama token o ficha digital.

¿Para qué se pueden usar?

La gran pregunta sobre estas dos criptomonedas es, ¿qué puedo hacer con ellas? Pues bien, con el Bitcoin puedes realizar pagos. Competir con las divisas fiat y el oro y también usarlas para realizar inversiones. Muchos están invirtiendo ya en Bitcoin. Ethereum en cambio es una moneda (o ficha digital, como dicen ellos) que sirve para operar dentro de la red de Ethereum, que te permite crear aplicaciones descentralizadas, ejecutar contratos inteligentes y también como inversión.

El mundo de las criptomonedas

Una criptomoneda o coirptodivisa es un medio digital de intercambio, o mejor dicho, una moneda digital que sirve para poder intercambiarla por otras cosas. La diferencia con las monedas convencionales o con los métodos de intercambio (o pago) convencionales, es que permite realizar estos intercambios de forma segura, anónima y descentralizada.

Ojo, porque cuando hablamos de Bitcoin no nos referimos a la moneda sino a la plataforma, lo mismo con Ethereum. Para ser correctos deberías decir BTC o ETH o bitcoin (en minúsucla) y ether para referirnos a las monedas.

Estas son las dos grandes criptodivisas en cuanto a su valor dentro del mercado de las monedas digitales. Y puedes realizar cambios en bestbitcoinexchange.

La entrada Bitcoin o Ethereum, ¿qué futuro es más brillante? se publicó primero en El blog de Skatox.

Leer más

MongoDB es un gestor de base de datos no relacional de código abierto. Probablemente es el mas usado y conocido por todos. Pues hace algún tiempo la compañía detrás del desarrollo de MongoDB, llamada MongoDB Inc lanzó un video parodía como las de SuSE.

En este caso se llama Database Skills, que es una parodia de la canción Cheap Thrills de Sia. Pero en esta letras habla sobre las base de datos no relaciones. En fin, les deseo ver este vídeo sin quiere reírse unos minutos y disfrutar de buena música geek.

Si te gustó, recuerda comentar tu opinión o compartir otro vídeo similar.

La entrada Database Skills – Parodia de Sia Cheap Thrills sobre MongoDB se publicó primero en El blog de Skatox.

Leer más

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.

Leer más