Migración para crear tabla solo si no existe en Rails

Nadie sabe nadie supo pero resulta que había un par de tablas en el ambiente staging que no existían ni en producción ni en local. Para tener todo parejo había que hacer las migraciones normales pero si se corrían en staging habría un error. Tenía que crear la migración de tal forma que usara la sentencia IF NOT EXIST de SQL.

A continuación, muestro cómo se escribe una migración de ese tipo en Ruby on Rails.

Continuar leyendo «Migración para crear tabla solo si no existe en Rails»

Error «Segmentation Fault» al correr el comando rails assets:precompile

Este error rarisimo primera vez que lo veo en una ejecución del CI.

No había hecho ninguna actualización de Ruby ni de gemas ni de nada y de la nada aparece este error en un build en un día de despliegue. ¡Hpta vida! 😄

¿Cómo se arregla? Te cuento en las siguientes líneas.

Continuar leyendo «Error «Segmentation Fault» al correr el comando rails assets:precompile»

Entero fuera de rango en campo tipo Integer en Ruby on Rails

Actualmente, Rails sugiere que los campos ID de las tablas, cuando son numéricos, sean de tipo BigInt. Resulta que para una aplicación en la que trabajo que se hizo ya hace varios años un campo fue creado como Integer y llegué a uno de esos momentos donde se alcanzan los límites de impuestos por el framework y la base de datos.

Continuar leyendo «Entero fuera de rango en campo tipo Integer en Ruby on Rails»

Cómo listar tablas y columnas mediante Rails

Estaba en la situación donde necesitaba ver si unas tablas existían en la base de datos el ambiente staging pero no podía accederlo mediante un cliente SQL (sí podía pero tenía que hacer muchas cosas).

En cambio, sí que podía entrar mediante una consola de rails así que me pregunté, ¿cómo puedo listar las tablas de esta base de datos?

A continuación, muestro cómo lograrlo, además de como listar las columnas de esas tablas.

Continuar leyendo «Cómo listar tablas y columnas mediante Rails»

La Nueva Era de la Piratería

Este artículo refleja un viaje a través de la era pirata y del streaming, enfatizando los desafíos del acceso al entretenimiento y el auge de las plataformas de streaming.

El autor recuerda una época en la que la piratería era necesaria para acceder a música, películas y series.

El texto discute el dominio posterior de las plataformas de streaming como Netflix y Spotify, seguido de la fragmentación del contenido en múltiples plataformas pagas.

La conclusión aboga por un retorno a la piratería como medio para acceder a contenidos diversos.

Hace varios años se vivió una gran era pirata donde teníamos a disposición cientos de sitios para encontrar contenidos (películas o series) a los cuales era muy difícil tener acceso. Ver series, películas, anime, u obtener música era imposible en muchísimas latitudes en todas partes del mundo y la piratería era la única forma posible de lograrlo.

Fue el esfuerzo desinteresado de muchos entusiastas lo que permitió crear comunidades para acceder, traducir y subtitular todo tipo de contenido. Sitios como Taringa, McAnime, Submanga, Megaupload, Mediafire, etc. Sin ellos no habría visto anime, ni películas ni series. Material que no hubiera llegado a mí país nunca o para el cual tendría que haber esperado (sin saberlo) por la llegada de plataformas de streaming.

Luego, con la llegada del streaming, ya no era tan necesario zarpar hacía alta mar pero todos los ejecutivos de las empresas de producción quisieron su tajada de la torta de las suscripciones y ahora estamos casi que en las mismas. Películas que no están en ninguna plataforma o no están en la plataforma que yo pago suscripción. Música que no está en el catálogo de ninguna plataforma de audio o que no está en la que yo pago. Lo mismo con el anime. Peor con el manga.

En este artículo contaré un poco de esa gran época, la era del streaming y de la nueva era de la piratería. Si llegas aquí y no quieres leer todo, te dejo un resumen:

Piratear algo siempre será moralmente correcto.

Que hayas pirateado una película no significa que la productora haya perdido tu dinero. Probablemente, en primer lugar, nunca lo iba a tener.

Comencemos.

Continuar leyendo «La Nueva Era de la Piratería»

Sobre los métodos de verificación de nulo en Ruby y en Rails

En Ruby tenemos un par de formas para verificar sin una variable o valor es nulo o no. Rails también nos ofrece otro par de mecanismos para lograr esta misión.

A veces se me olvidan las diferencias. Estas suelen ser sutiles así que voy a ponerlas aquí, explicadas lo mejor posible, para compartir y me sirva de bibliografía.

Continuar leyendo «Sobre los métodos de verificación de nulo en Ruby y en Rails»

Sobre las clases de Fecha y Tiempo en Ruby y Rails: Date, Time y DateTime

Nada como tener que hacer algún cálculo o transformación de fecha o tiempo cuando se hace algo en Ruby o en Ruby on Rails. A lo largo de mi carrera esto ha sido una fuente de confusiones y de tener que revisar la documentación cada vez.

En este artículo pretendo sentar un precedente para mí y poder aclarar las diferencias de estas clases y también volverlo un punto de referencia. Vamos a ver.

Continuar leyendo «Sobre las clases de Fecha y Tiempo en Ruby y Rails: Date, Time y DateTime»

¿Es importante un buen mensaje de commit?

Estaba escuchando un capítulo del podcast YAGNI en el cual se discutía la importancia de los mensajes de commit.

Tocaron puntos interesantes y yo puedo concluir que depende del caso y que hay mejores formas de dejar rastros de los cambios.

A continuación describo un poco la importancia que pueda tener y otras variantes.

Continuar leyendo «¿Es importante un buen mensaje de commit?»

Flujos de trabajo con Git/GitHub

Usar Git es una de las mejores cosas que como desarrolladores podemos hacer. En realidad, cualquier software de control de versiones es bueno pero Git es el único que he usado así que solo puedo hablar de este.

Cuando se trabaja solo uno puede usarlo como se le antoje pero cuando se está en un equipo ya la dinámica cambia y es importante entender y saber cómo usarlo bajo ciertos flujos. De eso quiero comentar un poco en los siguientes párrafos.

Continuar leyendo «Flujos de trabajo con Git/GitHub»

Comenta tu propio PR cuando pidas revisión

Cuando se trabaja en un equipo de desarrollo, la forma más sana de llevar cambios a producción es mediante Pull Requests (o Merge Requests si usas GitLab). Estos son espacios para discutir el código, para que los demás se enteren de los cambios, para aprender y para asegurar la calidad.

Sin embargo, pasa que algunos miembros del equipo ralenticen mezclar cambios por cosas menores o simplemente no saben qué mirar. A continuación comentaré qué se puede hacer ante estas dos situaciones.

Continuar leyendo «Comenta tu propio PR cuando pidas revisión»