Cómo Configurar GitHub Actions para correr RSpec

No hay ninguna duda que la integración continua tiene enormes ventajas a la hora de simplificar la forma de enviar nuestros proyectos a los entornos en la nube. Por eso, ya antes he configurado este tipo de servidores en Bitbucket, Jenkins e incluso Circle CI.

Ahora, me tocó hacerlo en GitHub Actions y quiero compartir cómo lo logré y algunos aprendizajes.

Leer más “Cómo Configurar GitHub Actions para correr RSpec”

La Idealización del Código

O creer que el código de otros es una maravilla.

Todo desarrollador de software a medida que progresa sus habilidades va entendiendo que su código actual es mejor que el de hace algunos años atrás.

Pasa que volvemos a ver código pasado y nos da pena lo que escribíamos. Cómo resolvíamos ciertas cosas muy diferente a como lo hacemos actualmente.

Con el pasar del tiempo, comprendemos que “no somos tan buenos” como creemos. Siempre habrá alguien que hará las cosas mejor que nosotros. Alguien que escribiría el código de manera prodigiosa, elegante y formidable.

Y es la realidad. Nada de malo en ello.

Leer más “La Idealización del Código”

Notas de una Migración a Rails 6

Ruby on Rails es un maravilloso framework para el desarrollo de aplicaciones web. Tiene un montón de herramientas para facilitar la vida del desarrollador, además de una serie de valores los cuales dan peso a su existencia.

Cuando empecé a escribir código en Rails era el año 2012 y lo poquito que escribía era en Rails 3. Hice cosas en Rails 4 para saber las diferencias y tuve la oportunidad de seguir escribiendo en la cuarta versión en un software en el que trabajé por casi 2 años. Más adelante, pude empezar un proyecto con Rails 5 y esa fue la constante por un largo rato.

Leer más “Notas de una Migración a Rails 6”

Documentar Software no es tan Difícil

Muchísimos chistes se han contado sobre lo poco o nulo que suele ser la documentación en proyectos de software. Si bien la documentación de librerías populares muestra la gran dedicación que le ponen el equipo de mantenedores, cuando miramos al software dentro de las empresas en las que trabajamos es cuando padecemos de la carencia de una documentación decente.

Que falte documentación puede ocurrir por diversas causas, desde falta de tiempo, negligencia, desinterés o desmotivación (porque caduca muy rápido) hasta desconocimiento de cómo hacerlo o incluso qué documentar.

Leer más “Documentar Software no es tan Difícil”

Sobre ese error de la cláusula Group By en SQL

Una de las cosas buenas de escribir es que cuando uno se motiva a hacerlo sobre un tema que no conoce, le toca aprender y entenderlo para poder explicarlo con propiedad o desde una nueva óptica.

Este tema que vengo a compartir no lo entiendo ni un poquito. Llevo mis buenos años trabajando haciendo software pero el error:

ERROR: column “MY_TABLE.MY_COLUMN” must appear in the GROUP BY clause
or be used in an aggregate function

Nunca lo he entendido de tal forma que sepa qué está pasando (y eventualmente prevenga que ocurra) cuando escribo consultas SQL.

Puede que me equivoque en lo que explique pero haré el intento de entenderlo y explicarlo lo mejor que pueda. ¡Empecemos!

Leer más “Sobre ese error de la cláusula Group By en SQL”

Los 10 Mandamientos del Programador Sin Ego

Las fuentes donde los leí indican que se origina en el libro “The Pyschology of Computer Programming” escrito por Jerry Weingber. Son unos principios bien interesantes y que se enfocan en lo humano más que en lo que producimos como desarrolladores de software: código.

Veamos.

Leer más “Los 10 Mandamientos del Programador Sin Ego”

BKT en Producción: Code Deploy

Este artículo continua con la serie BKT en Producción.

La variedad de servicios de AWS es enorme. Desde el primer día que vi el tablero inicial de AWS hasta hoy, su oferta de servicios no me deja de asombrar. Hay gran variedad en oferta y funcionalidad. De una u otra forma cubren muchos aspectos del ciclo de vida del desarrollo de software.

Code Deploy es un servicio de AWS que conocí por azares del destino. Estaba investigando cómo hacer un despliegue con Jenkins y encontré una integración entre ambos. Si bien AWS también tiene su servicio tipo Jenkins, solo opté por Code Deploy por que ya entendía un poco sobre la herramienta open source.

Leer más “BKT en Producción: Code Deploy”

BKT en Producción: Auto Scaling en AWS

Uno de los puntos clave de todo servicio que funcione en Internet es contar con la capacidad para atender las peticiones de miles de usuarios al tiempo.

En este aspecto se dan dos temas: soporte a concurrencia y escalabilidad. En muchos casos la concurrencia está limitada por el lenguaje de programación que se use. La escalabilidad termina siendo un tema de arquitectura general del software.

Siendo bastante breve, para escalar se necesita poder incrementar el poder de los servidores donde se hospeda el programa. Sea incrementando la RAM, capacidad de disco duro, ancho de banda, cantidad de máquinas o distribución de los servidores en el mundo entero.

SEGUIR LEYENDO

Cómo Hospedar Aplicaciones Estáticas en Heroku

Creo que Heroku debería patrocinarme ya que he escrito en varias ocasiones sobre este servicio y ¿cómo no hacerlo? Es un buen servicio con una buena oferta.

En esta ocasión voy a compartir cómo montar una aplicación estática en un dyno de Heroku. Si bien en ocasiones podemos valernos de servicios como GitHub Pages, Netlify o Vercel, Heroku no deja de ser una buena alternativa.

Vale destacar que mandar aplicaciones estáticas a Heroku puede ser más complicado que en los otros servicios mencionados aunque no está de más tener opciones.

Leer más “Cómo Hospedar Aplicaciones Estáticas en Heroku”

Pasen a Intrati

Recuerdo, por allá en el 2013, mi jefe de ese entonces me pidió averiguará cómo hacer una aplicación para compartir vídeo usando un navegador. Me dio la palabra clave WebRTC. Busqué, leí y probé pero la tecnología aún estaba inmadura. Muchos años después WebRTC es la base de muchas empresas y servicios a nivel mundial.

continuar leyendo