Enlaces Ruby – Junio 2021

Publicado el 6 de julio de 2021

RubyColección de los enlaces interesantes sobre Ruby que encontré durante el mes de junio:

Noticias sobre el lenguaje y programación Ruby general:

💎 En este post Kingsley Silas explica el camino que usa Ruby para encontrar métodos: Ruby usa una “forma” o “patrón” definidos para determinar el método correcto a llamar y el momento correcto para devolver un error “no method erro”, y podemos llamar a esto el “Ruby Method Lookup Path”. En este tutorial, nos vamos a sumergir en la búsqueda de métodos de Ruby. Al final, vas a tener un buen entendimiento de cómo Ruby recorre la jerarquía de un objeto para determinar a qué método te estás refiriendo.

💎 Takashi Kokubun escribió un artículo que titula Ruby 3 JIT can make Rails faster (o “la compilación just in time de Ruby 3 puede acelerar a Rails”). Las primeras pruebas con el JIT de Ruby 3.0 hacían a Rails más lento. Pero tras 3 años de investigación Takashi encontró cómo mejorar el rendimiento (compilando TODO), aunque todavía falta trabajo y nos avisa que estemos atentos a Ruby 3.1. Pero confirma que Ruby 3.0 es tres veces más rápido (que Ruby 2.0).

💎 Kirk Haines – quien dio una charla que recomiendo ver en un reciente stream de The Ruby Galaxy – escribió Implementing a Ruby-like #send() in Crystal. En él explica cómo implementar un método send en Crystal usando macros y es un artículo bastante interesante tanto para Rubystas como para “Crystalistas”.

💎 Benoit Daloze escribió un artículo sobre los instaladores de Ruby: rvm, ruby-build y ruby-install y los “cambiadores” de Ruby: rvm, rbenv y chruby. Analiza los pros y los contras de cada uno y termina concluyendo que RVM es la herramienta menos recomendada. Es la que uso en mi día a día, pero he usado varios otros antes (particularmente chruby, rbenv y asdf). De repente debería cambiar de nuevo y ver cómo se integra con Spacemacs…

💎 Maxime Chevalier-Boisvert escribió un artículo súper interesante sobre YJIT: Yet Another Ruby JIT. Desde el año pasado ella trabaja en un equipo de Shopify encargado de mejorar el rendimiento del código Ruby -optimizando el intérprete CRuby y su garbage collector, la implementación de TruffleRuby- y ahora este nuevo compilador JIT dentro de CRuby. Como menciono, es súper interesante tanto el artículo como el proyecto en sí. Ya hay resultados bastante prometedores, y propone mejoras a CRuby que beneficiarían tanto al JIT actual de Ruby 3 (MJIT) como a YJIT y futuras implementaciones. Lectura recomendada – YJIT: Building a New JIT Compiler Inside CRuby. También recomiendo leer el hilo en reddit donde Maxime hizo un AMA espontáneo agregando todavía más detalles al tema.

💎 Una discusión en reddit plantea que “Ruby y Rails no habían tenido nada como Shopify hasta ahora” en lo que se refiere a soporte empresarial. Si bien tienen equipos dedicados tanto a Ruby como a Rails, otras empresas como GitHub, Stripe y Heroku (que le paga el sueldo al mismísimo Matz) también vienen dándole mucho soporte a Ruby. Pero lo interesante es que en el hilo de Reddit comentaron Peter Zhu (Ruby committer que trabaja en Shopify) y Richard Schneeman (contribuye a Rails, mantiene Puma y Sprockets, trabaja en Heroku) entre otros. Del lado de Shopify, Peter Zhu comenta que los proyectos Ruby principales en Shopify actualmente son: YJIT (mencionado en el punto anterior) y Variable Width Allocation (VWA) para MRI y TruffleRuby, una implementación alternativa de Ruby. También comenta que han colaborado directamente con GitHub tanto en Ruby como en Rails. Si bien es difícil medir el aporte de cada empresa, lo importante es que muchas empresas están trabajando y colaborando para hacer Ruby mejor, lo cual le asegura un futuro interesante y sano a mi lenguaje de programación favorito.

💎 De este último hilo otro recurso interesante: Peter Zhu publicó un artículo sobre Garbage Collection en Ruby, además de tener varios artículos interesantes más sobre Ruby en su blog.

💎 Y cuanto más compiladores JIT tengamos mejor (?). Hace tiempo Chris Seaton programó uno para Ruby, hecho en Ruby. Nunca se motivó para terminarlo, pero decidió liberarlo en GitHub. Sirve como material didáctico, en el README del proyecto mismo dice “Se supone que lo leas, no que lo uses”. Tiene varios experimentos y documentos, así que nos puede ayudar a entender cómo funciona un JIT y aprender más de Ruby y el compilador.

💎 Se publicó nueva versión de JRuby – 9.2.18.0. La rama 9.2.x es compatible con Ruby 2.5.x y se sincroniza con C Ruby. Se está trabajando activamente en la versión 9.3.0, pero esta versión de la rama anterior corrige algunos problemas. Se mejoró soporte para sub procesos en ambientes puramente Java, arreglos en concurrencia, y la biblioteca de socket fue backporteada de master con todos los arreglos recientes, mejoras en compatibilidad y demás. También se publicó después JRuby 9.2.19.0, una versión de correcciones para un problema con el flag --dev y un problema con zonas horarias en Windows.

💎 Julie Jones, desarrolladora autodidacta, viene publicando en Twitter varios piques de Ruby bajo la premisa de 100 Days Of Code. Entre sus tweets podemos encontrar piques bastante buenos sobre bloques, Procs, y varias cosas más de Ruby. Podemos ver los tweets en este enlace y seguirla en Twitter en @codewithjulie.

💎 Nat Friedman, CEO de GitHub, twiteó que GitHub procesa 2.8 miles de millones de pedidos a su API por día, con un pico de 55.000 pedidos por segundo. La aplicación es un monolito Rails, confirmado por Raffaele Di Fazio (del equipo de plataforma de GitHub) con la biblioteca Ruby resque para procesos en segundo plano. También hacen deploy a producción entre 20 y 30 veces por día. Son datos bastante interesantes y confirman lo que ya sabemos: Ni Ruby ni Rails están muertos, y Rails sí puede escalar…

Gemas y bibliotecas

💎 httplog es una gema para loguear pedidos HTTP hechos desde una aplicación Ruby. Funciona con varias bibliotecas y gemas populares como Net::HTTP (v4+), OpenURI, Patron, HTTPClient y HTTParty, pero está parcialmente testeada para Faraday y Typhoeus.

💎 Se publicó Rubocop 1.17 que corrige un error que hacía que Rubocop fallara usando el bot Layout/HashAlignment, soporte para pattern matching de Ruby 2.7 y mucho más.

💎 Textbringer es nada más y nada menos que un editor de texto inspirado en Emacs, escrito en Ruby. Dos de las mejores cosas del mundo combinadas: Emacs y Ruby 🙇

En el blog:

Eventos

💎 Están publicados los videos de Euruko 2021, la conferencia europea de Ruby: Videos Euruko 2021 Día 1Videos Euruko 2021 día 2

💎 Se realizó EMEA On Rails, un evento virtual para Rubystas. Participan varios grupos de usuarios de distintos países y podemos ver las charlas y talleres en este enlace.

💎 El jueves 24 fue el meetup online de Ruby Galaxy. Hablaron Ramón Huidobro y Megan Tiu sobre “MINASWAN” (Matt is nice and so we are nice – Matz es bueno así que somos buenos) ha sido parte de la comunidad Ruby desde su fundación, y una de las cosas más lindas que puedes hacer es entrenar y mentorear a alguien. Este jueves a las 19:00 UTC vamos a estar hablando con dos expertos en entrenamiento y amabilidad. Como siempre, se transmitió a través de Twitch.

No hay comentarios en este post

Feed de comentarios

Dejar un comentario

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!