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 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»

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»

Cómo Reiniciar Base de Datos PostgreSQL en Heroku

Cuando se trabaja en aplicaciones Ruby on Rails es muy frecuente ir agregando campos a las tablas o nuevas tablas cada tanto tiempo en las etapas iniciales de los proyectos.

A medida que se llega a un punto estable o con muchas características implementadas, se reduce la cantidad de migraciones a generar.

También ocurre que al estar en etapas tempranas nos sentimos con mayor libertad de destruir la base de datos para facilitar el añadir nuevos campos o porque hay mucha información inservible que complica correr migraciones nuevas.

SEGUIR LEYENDO

Popurrí de Jenkins

Cuando empecé mi carrera como desarrollador web ya en el mundo real, sabía muy poco sobre todo lo que el proceso de crear software conlleva. Todo era nuevo. Lo único que sabía era HTML, CSS, algo de JavaScript y algo de PHP.

En esos primeros años aprendí demasiado. Conocí Git, Rails, RSpec, Capistrano, Bash, Drupal, Linode, etc, etc. Si bien descubrí nuevas herramientas y tecnologías, me faltaban procesos.

Continuar leyendo «Popurrí de Jenkins»

BKT en Producción: Pre escalando Ruby

Una de las experiencias más gratificantes que puede vivir un desarrollador de software es ver su producto siendo usado por el público objetivo.

De nada sirve gastar meses y meses de trabajo en algo que nadie va a usar. Sí, queda la satisfacción de haber escrito una pieza de software, los aprendizajes del camino y la experiencia. Pero si no llega a usarse, es solo algo más.

Empecé a trabajar profesionalmente como desarrollador de software en el año 2012. El producto en el que trabajaba ocasionalmente tenía un número de usuarios decente, crecía poco a poco pero mi intervención era bastante escasa.

sigue leyendo

Heroku y Sentry, Habilitar metadata del Dyno

Heroku es una muy buena plataforma para montar aplicaciones casi que sin despeinarse. Su modo de operar es denominado PaaS, es decir, Plataforma como Servicio(en inglés Platform as a Service). Ser una PaaS quiere decir que al usuario le das lo más que se pueda desmenuzado y listo para usar.

A diferencia de AWS que es una IaaS(Infrastructure as a Service) en Heroku, generalmente, hacer despliegue de aplicaciones solo implica un comando y casi cero configuraciones.

Continuar leyendo «Heroku y Sentry, Habilitar metadata del Dyno»

¿Puede ActiveRecord::Relation recibir mensajes de métodos de clase? Sí

Ruby on Rails es una criatura enorme. Ofrece muchas funcionalidades y elementos que hacen fácil la vida de quien usa el framework bajo el nombre de magia. Magia que muchas veces no tenemos ni idea de cómo funciona.

Algunos podrán decir que esa magia es muy mala al ocultar cosas a quien desarrolla. Otros dirán que es buena justamente por lo mismo. En todo caso, siempre está la posibilidad de examinar el código fuente y ver cómo toda esa magia trabaja bajo cuerda.

Continuar leyendo «¿Puede ActiveRecord::Relation recibir mensajes de métodos de clase? Sí»