Archivo: Ruby | Picando Código - Part 2

Enlaces Ruby - Mayo 2021

Martes, 1 de junio de 2021
Ruby

Colección de los enlaces interesantes sobre Ruby que encontré durante el mes de mayo: Noticias sobre el lenguaje y programación Ruby general: 💎 Ya he compartido varios enlaces sobre Ractors en Ruby 3, pero otra característica nueva es la clase Fiber::SchedulerInterface. Nos permite escribir schedulers más avanzados basados en bucles de eventos para entrada y salida sin bloquear en Ruby (a lo frameworks como EventMachine). Recientemente resurgió un artículo muy bueno sobre el tema Ruby 3.0 and the new FiberScheduler interface. Mientras leía esto me colgué a probar cosas y tengo algunas ideas para implementar más cosas, tengo investigación por […]

rvm-prompt: muestra la versión actual de Ruby en el prompt de tu terminal

Lunes, 31 de mayo de 2021
rvm-prompt

rvm-prompt es una herramienta que muestra la versión actual de Ruby. Podemos usarla para mostrar esta información en nuestro prompt en la terminal: Para agregarlo, en nuestro archivo de configuración ~/.bashrc, ~/.profile o lo que sea, tenemos que agregar el comando a la variable PS1. El ejemplo de la documentación: PS1="\$(~/.rvm/bin/rvm-prompt) $PS1" Para el resultado de la imagen con los colores, la rama de GitHub y demás, yo uso en mi ~/.bashrc: PS1='\[\033[01;32m\]\u\[\033[01;34;10m\] \[\033[01;34m\]\w\[\033[01;33m\] \e[31m`rvm-prompt`\e[0m\[\033[01;36m\]$(__git_ps1)\n\[\033[01;34m\]\$\[\033[00m\] ' Como podemos leer en la documentación, hay varios parámetros que le podemos pasar al comando para mostrar el intérprete (i), versión (v), nivel de […]

Enlaces Ruby - Abril 2021

Sábado, 1 de mayo de 2021
Ruby

Colección de los enlaces interesantes sobre Ruby que encontré durante el mes de abril: Noticias sobre el lenguaje y programación Ruby general: 💎 How to start learning Ruby? (timeless resources and techniques) no sólo provee recursos para empezar con Ruby. Lo hace por medio de ejemplos prácticos y dibujos en un estilo que me hizo acordar al libro de _why. A medida que el lenguaje sigue madurando, hay dos cosas que no podemos olvidar de Ruby: “Matz es bueno así que somos buenos”, y “¡Ruby necesita mantenerse raro!”. Por más contenido gráfico como éste 🙂 🔑 Nuevas actualizaciones de seguridad […]

eBooks: Head First Programming por O'Reilly

Martes, 20 de abril de 2021
eBooks: Head First Programming por O’Reilly

La serie de libros Head First de O'Reilly es excelente para aprender algo por primera vez. En su momento leí Head First Java, Head First Software Development y partes de Head First Design Patterns si recuerdo bien. Humble Bundle está ofreciendo un paquete de eBooks de la serie Head First para aprender Java, Python, Go, C, Ruby y más. El precio mínimo es USD 1/1 €, por un paquete con un costo total mayor a USD 700. Podemos elegir el precio y cómo se distribuye el dinero que aportamos entre la editora, la caridad Code For America o Humble Bundle. […]

Enlaces Ruby - Marzo 2021

Jueves, 1 de abril de 2021
Ruby

Colección de los enlaces interesantes sobre Ruby que encontré durante el mes de marzo: Noticias sobre el lenguaje y programación Ruby general: 💎 Se publicó una nueva versión de JRuby 9.2.17.0. Esta agrega características de compatibilidad, rendimiento, mejoras a la biblioteca estándar y más. 💎 El 31 de marzo terminó el soporte para Ruby 2.5, así que hay que actualizarse. Podemos seguir usando 2.6 hasta el 31 de marzo de 2022, así como 2.7 y 3.0. 💎 En RSpec fundamentals: a basic glossary, podemos encontrar una guía práctica de referencia para métodos de RSpec. También puede servir como introducción rápida […]

Nuevo comando ls para IRB en Ruby 3

Martes, 30 de marzo de 2021
Comando ls en Ruby IRB

Recientemente se agregó el comando ls al código fuente de Ruby. El comando ls está inspirado en la misma funcionalidad al estilo Pry, una alternativa a IRB con algunas capacidades extra. El comando nos permite inspeccionar constantes, métodos y variables de self o de un objeto escribiendo muy poco. ¡Es bastante práctico! Para probarlo tenemos que usar la versión de desarrollo de Ruby, usando RVM tenemos que instalar ruby-head. Un ejemplo usando el comando en la gema ci_uy: head :001 > ls CiUY CiUY.methods: get_random_ci get_validation_digit random transform validate validate_ci validation_digit => nilhead :001 > ls CiUY CiUY.methods: get_random_ci get_validation_digit […]

Enlaces sobre Ruby Febrero 2021

Lunes, 1 de marzo de 2021
Ruby

A raíz de la saga de posts 7 días en el Picandoverso, he ido recolectando y publicando varios enlaces sobre Ruby y cosas relacionadas al lenguaje de programación diseñado para la felicidad de quienes lo programan. Acá están compilados los enlaces Ruby de esos posts y alguna cosa más 🙌🏻 RubyGalaxy es un meetup online para entusiastas de Ruby de todo el mundo. Estuve en el meetup del jueves pasado y estuvo muy bueno, recomiendo unirse y seguirlos en Twitch. También pueden seguir @TheRubyGalaxy en Twitter. AppSignal publicó un artículo sobre tipado estático en Ruby 3. Explica las diferencias entre […]

Mini pique - Rake

Jueves, 21 de enero de 2021
Mini piques

En rake: Cuando usamos rake -T para listar las tareas rake, se muestra sólo la primera oración de la descripción de cada tarea. Pero usando rake -D podemos ver la descripción completa.

Mini pique - Ruby Enumerable#tally

Jueves, 10 de diciembre de 2020
Mini piques

¡Ruby es genial! 😁 Esta función está disponible a partir de Ruby 2.7.0: Enumerable#tally - Hace la cuenta de una colección, e.g., cuenta las ocurrencias de cada elemento. Devuelve un hash con los elementos de la colección como llaves y la cuenta correspondiente como valores: > coleccion = ['verde', 'rojo', 'azul', 'verde', 'violeta', 'amarillo', 'verde', 'rojo', 'verde'] => ["verde", "rojo", "azul", "verde", "violeta", "amarillo", "verde", "rojo", "verde"] > coleccion.tally => {"verde"=>4, "rojo"=>2, "azul"=>1, "violeta"=>1, "amarillo"=>1}> coleccion = ['verde', 'rojo', 'azul', 'verde', 'violeta', 'amarillo', 'verde', 'rojo', 'verde'] => ["verde", "rojo", "azul", "verde", "violeta", "amarillo", "verde", "rojo", "verde"] > coleccion.tally => {"verde"=>4, […]

Mini pique - Ruby 3: Hash#except

Jueves, 3 de diciembre de 2020
Mini piques

Algo nuevo que se viene en Ruby 3, Hash#except, un método que nos devuelve un hash nuevo con todas las llaves menos las que pasamos como parámetro: head :001 > data = {name: "Fernando", age: 35, height: 175} => {:name=>"Fernando", :age=>35, :height=>175} head :002 > data.except(:age) => {:name=>"Fernando", :height=>175}head :001 > data = {name: "Fernando", age: 35, height: 175} => {:name=>"Fernando", :age=>35, :height=>175} head :002 > data.except(:age) => {:name=>"Fernando", :height=>175} Fuente.

Nuevas versiones de Ruby y fin de soporte para Ruby 2.4

Miércoles, 1 de abril de 2020
Ruby

Ayer 31 de marzo se publicaron nuevas versiones con parches de seguridad para Ruby 2.4, 2.5, 2.6 y 2.7. Las versiones de Ruby 2.5.8, 2.6.6 y 2.7.1 cuentan con parches de seguridad para dos vulnerabilidades: CVE-2020-16255: Unsafe Object Creation Vulnerability in JSON (Additional fix) Es un arreglo adicional a una vulnerabilidad de creación no segura de objetos en JSON. La gema json incluida con Ruby puede ser forzada a crear objetos arbitrarios en un sistema. El mismo problema se había corregido en CVE-2013-0269, pero estaba incompleto. Ese arreglo corregía JSON.parse(data_del_usuario), pero no otros tipos de procesamiento de JSON como JSON(data_del_usuario) […]

ghpreview - Gema Ruby para previsualizar archivos Markdown con el estilo de GitHub

Lunes, 28 de octubre de 2019
Ruby

La gema ghpreview es una herramienta que te permite previsualizar un archivo Markdown localmente con el estilo de GitHub: Cuando escribes el README para tu proyecto, quieres poder previsualizar el Markdown localmente antes de madnarlo a GitHub. ghpreview es una utilidad de línea de comando que abre tu archivo Markdown en un navegador web. Usa el estilo de GitHub y (opcionalmente) actualiza automáticamente cada vez que guardes el archivo fuente. Corría el año 2012 y estaba trabajando en Neo (antes conocida como "New Context"), una empresa multinacional que había adquirido Cubox, empresa uruguaya donde estaba trabajando. Neo también había adquirido […]

Gamesdb - Gema Ruby para la API de TheGamesDB

Lunes, 2 de septiembre de 2019
GamesDB

El sábado pasado pensaba irme de aventuras por algún castillo de Escocia. Pero me desperté con un dolor de garganta tremendo que se transformó en resfrío y no me dejó salir todo el fin de semana. Qué mejor que ponerme a programar y actualizar una de mis gemas Ruby... TheGamesDB es una base de datos online de videojuegos. El sitio sirve como servicio frontend que se enlaza a una base de datos de metadata de videojuegos y arte de alta calidad. La base de datos puede ser usada en varias aplicaciones a través de su API (PC's como centro multimedia, […]

Crystal: Lenguaje de programación inspirado en Ruby

Miércoles, 13 de marzo de 2019
Lenguaje de programación Crystal

Crystal es un lenguaje de programación de propósito general orientado a objetos. Su sintaxis está inspirada en Ruby pero no busca ser compatible. Surgió del amor a la eficiencia para escribir código de Ruby, y el amor a la eficiencia para ejecutar código C. Busca ser lo mejor de ambos mundos. Entre las diferencias fundamentales con Ruby se encuentran: Es un lenguaje compilado, el código es convertido a código de máquina nativo a través de LLVM. Ruby, por otro lado, es un lenguaje interpretado. Tiene un sistema de tipado estático, por lo que la comprobación de tipos se realiza durante […]

Awesome Rubies - Una colección de Rubies increíbles

Martes, 12 de marzo de 2019
Ruby

Awesome Rubies es una lista de "Rubys" (¿"Rubíes"?), o distintas implementaciones del lenguaje e información al respecto. La más conocida es MRI (Matz's Ruby Interpreter), la implementación "de referencia" y probablemente la más usada. Actualmente se llama CRuby porque es un esfuerzo colaborativo y no "de Matz", y existen además otras implementaciones como Rubinius, JRuby: Implementación de Ruby en la JVM y unas cuantas más. Si has estado siguiendo Ruby, o has ido a conferencias recientemente, probablemente ya sepas de Ruby 3x3. Mi primer encuentro con el concepto "Ruby 3x3" fue en Euruko 2017. donde Matz abrió la conferencia con […]

Toasty!