Infrastructure as Code con Terraform
· ☕ 4 minutos lectura · ✍️ Saturnino Pimentel
Como lo mencioné en el post anterior durante los últimos meses me ha tocado aprender y trabajar con algunas herramientas de Infrastructure as Code, entre estas herramientas se encuentra Terraform la cual es una herramienta open-source (con servicios de paga también) desarrollada por HashiCorp y escrita en Go que nos permite construir, cambiar y versionar nuestra infraestructura de una forma segura y eficiente en diferentes proveedores. Terraform nos permite definir nuestra infraestructura por medio de uno o más archivos de configuración escritos en HashiCorp Configuration Language o JSON y por medio de su CLI crear o actualizar nuestra infraestructura por medio de comandos.

Infrastructure as Code con Pulumi
· ☕ 5 minutos lectura · ✍️ Saturnino Pimentel
Introducción Según la CNCF la Infrastructure as Code (IaC) es la práctica de almacenar la definición de la infraestructura como uno o más archivos. Esta práctica reemplaza el modelo tradicional en el que la infraestructura como servicio se aprovisiona manualmente, generalmente a través de scripts de shell u otras herramientas de configuración. En las últimas semanas me ha tocado trabajar con algunas herramientas de Infrastructures as Code y entre estas herramientas se encuentra Pulumi que es una herramienta open-source (con [servicios de paga]) escrita en Go que nos permite crear Infraestructura en diferentes proveedores utilizando la combinación de su CLI + código en cualquiera de los siguientes lenguajes:

How to: ordenar elementos utilizando el paquete Sort [Go]
· ☕ 3 minutos lectura · ✍️ Saturnino Pimentel
En algunas ocasiones durante el proceso de desarrollo es necesario ordenar una colección de elementos previo a realizar algún proceso, esto suele implicar el escribir código para implementar algún algoritmo de ordenamiento, afortunadamente en Go tenemos la opción de utilizar el paquete Sort para estas tares. El paquete Sort contiene las funciones sort.Ints, sort.Float64s y sort.Strings las cuales nos van a permitir ordenar slices del tipo mencionado en las funciones, a continuación se muestra un ejemplo de cómo utilizar el método sort.

How to: utilizar sort.Search en Go
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Estos últimos meses he tenido la oportunidad de trabajar con Go y he encontrado funcionalidades interesantes, entre ellas la función sort.Search la cual nos da acceso a un algoritmo de busqueda binaria, actualmente el paquete sort ofrece tres funciones mas SearchInts, SearchFloat64s y SearchStrings las cuales terminan utilizando sort.Search. Algo que se debe tomar en cuenta es que para utilizar cualquiera de estos métodos es necesario que el listado de elementos sea ordendo previamente de forma ascendente o descendente, también que si eliges ordenar la lista de forma descendente debes cambiar la forma en que se valida de >= a <=.

Implementando singleton con sync.Once
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
En wikipedia el patrón singleton se define como: ‘singleton’ o ‘instancia única’ es un patrón de diseño que permite restringir la creación de objetos pertenecientes a una clase o el valor de un tipo a un único objeto. El objetivo de este patrón es garantizar que solo exista una instancia de una clase y que dicha instancia sea accesible dentro del sistema. Para implementar este patrón en Go podemos utilizar sync.

Utilizando json.RawMessage
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Hoy en día es común trabajar con archivos en formato json, en general al trabajar con estos archivos se utilizan estructuras completas para realizar un unmarshal de la información pero en ciertas ocasiones se desea mantener la información de ciertos campos sin necesidad de realizar ese proceso, para estos escenarios en muchos casos se termina optando por utilizar interface{} pero si posteriormente se desea manipular la información esto suele ser un poco más complicado.

Azure Functions en el #GlobalAzure
· ☕ 1 minutos lectura · ✍️ Saturnino Pimentel
¡Hola de nuevo! El día de hoy he tenido la oportunidad de participar en el Global Azure en su versión para latino America organizado por la comunidad en el cual he contribuido con el tema de Azure Functions y ahora les comparto el vídeo de la presentación. https://youtu.be/xQ53tNW8zHE?t=32354 Me despido no sin antes agradecer a todo el equipo que ha organizado el evento y a todos los asistentes ¡Saludos! @SaturPimentel

Utilizando composition con tipos embebidos en Go
· ☕ 3 minutos lectura · ✍️ Saturnino Pimentel
En Go no existe un concepto como la herencia que nos permita reutilizar métodos y propiedades de otras clases, tampoco cuenta con clases abstractas comunes en lenguajes como C#, en su lugar Go ofrece la capacidad de embeber tipos dentro de otros tipos, podemos utilizar esta característica con las siguientes combinaciones: estructuras dentro de estructuras, interfaces dentro de interfaces o interfaces dentro de estructuras. En este post voy a describir los dos más comunes con pequeños ejemplos.

Comenzando a desarrollar con Go y Visual Studio Code
· ☕ 2 minutos lectura · ✍️ Saturnino Pimentel
Durante gran parte del 2020 he tenido la oportunidad de aprender y trabajar con Go, un lenguaje que esta tomando popularidad, he dicidido compartir lo que he aprendido en estos últimos meses en una serie de post así que comencemos por preparar nuestro entorno de desarrollo. El entorno en el que suelo trabajar consta de un equipo con MacOS Big Sur 11.1 y Visual Studio Code, también se puede utilizar goland aunque es necesario adquirir una licencia.