Cómo configurar llave primaria como UUID en Rails

No hay nada de malo en la forma estándar de tener un entero como valor para las llaves primarias en las tablas de nuestras aplicaciones. Sin embargo, por seguridad cuando los registros suelen ser públicos, lo mejor es poner dichas llave como un campo UUID. A continuación muestro como.

Continuar leyendo «Cómo configurar llave primaria como UUID en Rails»

Cómo escribir rake tasks con argumentos

En proyectos Ruby o Rails, cuando queremos ejecutar tareas en el entorno (no en el software como tal) nos valemos de las rake task. Comandos que permiten recrear archivos, insertar o limpiar archivos y datos.

Ahora, cuando creamos nuestras rake tasks personalizadas es muy usual que sean bastante sencillas y triviales pero qué pasa cuándo necesitan un poco más de personalización, cuándo necesitamos pasar argumentos a estas, ¿es posible hacerlo? Claro que sí.

Continuar leyendo «Cómo escribir rake tasks con argumentos»

¿Cómo saber si un string tiene números con SQL?

En el mundo ideal, los campos tipo cadena (string) en una base de datos contiene una mezcla de caracteres alfanuméricos. También puede pasar que a veces dichos campos pasen a solo tener números. Según el diseño que se haya planeado eso puede estar bien pero en mi caso particular, era un error que unos campos tuvieran valores como «1» en vez de «My pain is bad».

Para arreglar dicho detalle tuve que crear y ejecutar una serie de rake tasks (proyecto Ruby on Rails) y encontrar aquellos valores solo número en strings fue complicado pero lo logré con SQL puro. Veamos.

Continuar leyendo «¿Cómo saber si un string tiene números con SQL?»

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.

Continuar leyendo «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.

Continuar leyendo «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.

Continuar leyendo «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.

Continuar leyendo «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!

Continuar leyendo «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.

Continuar leyendo «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.

Continuar leyendo «BKT en Producción: Code Deploy»