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”

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”

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.

Leer más “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.

Leer más “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.

Leer más “¿Puede ActiveRecord::Relation recibir mensajes de métodos de clase? Sí”

¿Cuál es la diferencia entre :destroy_all y :delete en Rails?

Una de las enseñanzas o instrucciones que se da cuando se diseñan bases de datos es que no debe haber información relacionada que no tenga su “dueño” o “padre”. Si un artículo tiene muchos comentarios y dicho artículo se elimina de la base de datos, tales comentarios también deben hacerlo.

En SQL a esto se le llama borrado en cascada. Para lograr esto en Rails usando ActiveRecord podemos usar la opción dependent y pasando algunas opciones disponibles. Leer más “¿Cuál es la diferencia entre :destroy_all y :delete en Rails?”

Tocando a ActiveRecord

Cuando se programan aplicaciones, puede haber ocasiones en donde queremos que un determinado objeto indiqué la última vez que fue actualizado según determinadas acciones o sucesos.

La última vez que se actualizó el repositorio, la última vez que se modificó un artículo publicado, la última vez que cambió el estado de la cuenta, etc. Son ejemplo de lo anterior.

En Rails, se puede lograr dicho comportamiento de dos formas. Depende de uno como programador determinar cual de las dos opciones es más adecuada(o incluso si se usan ambas). Leer más “Tocando a ActiveRecord”