Archivo: Programación | Picando Código

Más experimentos con DragonRuby

10 de abril de 2024
Experimentos DragonRuby

Desde que empecé mi aventura con DragonRuby, programando una implementación de Tetris, seguí jugando con la herramienta. Todas las semanas he ido pensando cosas divertidas para programar. Generalmente se me ocurría alguna visualización en particular, o veía algo que me hacía pensar “¿cómo se implementará eso en DragonRuby?”, y me desafiaba a hacerlo. Seguí con la tendencia que empecé escribiendo Tetris: no buscar si ya existía una forma ya conocida de hacer algo, sino implementarlo de cero. Esto me obligaba a aprender cosas nuevas e intentar entenderlas a nivel más bajo. DragonRuby ofrece un montón de aplicaciones de ejemplo y […]

Programando Tetris con DragonRuby

11 de marzo de 2024
Fertris v0.1

En octubre de 2016 me dispuse a aprender a programar videojuegos con Ruby usando la biblioteca Gosu. Siempre me gustó el juego Tetris y me pareció un buen ejemplo como primer proyecto. Es relativamente simple como para llegar al punto de declararlo “terminado” sin sentirme abrumado. En el proceso, podía aprender lo suficiente de las herramientas como para tener una idea mínima para arrancar algo nuevo. Todavía tengo el código que escribí en ese momento. No es buen código, pero dado que lo escribí para experimentar y aprender, no lo juzgo tanto. Conseguí recursos gráficos libres de internet, y en […]

Publicado Gleam v1.0.0

8 de marzo de 2024
Gleam

Esta semana se publicó la versión 1.0.0 del lenguaje de programación Gleam, un “lenguaje amigable para hacer sistemas que escalan con tipado seguro”. Ya he escrito sobre Gleam en el blog antes, pero no he escrito tanto código como hubiera querido. Es uno de los tantos lenguajes que me gustan y con los que me gustaría programar más. Gleam cuenta con “el poder de un sistema de tipado, la expresión de la programación funcional, y la seguridad del entorno de ejecución tolerante a fallas y de alta concurrencia de Erlang, con una sintaxis moderna y familiar”. El 4 de marzo […]

Actualización en SuperTimeTracker.com

2 de febrero de 2024

Feliz día de la marmota, y felices 10 años a mi proyecto SuperTimeTracker.com 🎂 Aprovechando que tuve que renovar el dominio (pasando por esa etapa en que uno se cuestiona: ¿debería volver a renovar el dominio o darme por vencido y abandonarlo?), actualicé un poco mi “proyecto de fin de semana”: Super Time Tracker es una aplicación web muy simple y minimalista para gestionar el tiempo de tareas. No necesitas crear una cuenta, grupo o clientes. No necesitas compartir tu correo electrónico, nombre o número de teléfono (en su momento era una aplicación para Firefox OS). Sólo traquea tu tiempo. […]

Novedades de IRB en Ruby 3.3: Autocompletado basado en tipos, debug y más

17 de noviembre de 2023
Ruby

Estamos a pocos días del 25 de diciembre, lo que significa versión nueva de Ruby. Ya podemos ir probando Ruby 3.3 con ruby-3.3.0-preview3. Una de las tantas novedades de esta versión es IRB 1.9, con varias cosas nuevas. Autocompletado basado en tipos Por defecto, IRB usa expresiones regulares para el autocompletado con IRB::RegexpCompletor. El nuevo IRB::TypeCompletion, usa análisis de tipo con Prism (parser introducido en Ruby 3.3) y RSB (el sistema de tipos presentado en Ruby 3). Para habilitar IRB::TypeCompletion, tenemos que ejecutar IRB con el parámetro –type-completor: $ irb –type-completor O agregar el siguiente código en nuestro archivo ~/.irbrc: […]

Paquete de eBooks: Ruby on Rails de Pragmatic Programmer

13 de noviembre de 2023
eBooks Ruby on Rails

Humble Bundle tiene un nuevo paquete de ebooks sobre Ruby y Ruby On Rails de Pragmatic Programmer. Pragmatic Programmer publica muy buenos libros de Ruby, y este es un excelente paquete. Los rumores de la muerte de Ruby y Rails han sido muy exagerados. No sólo está vivo y coleando, sino que es un lenguaje en constante evolución (y se paga muy bien). Es una excelente oportunidad para adentrarse en el hermoso lenguaje de programación que es Ruby. Si bien este paquete incluye la cuarta versión del “Pickaxe” (Programming Ruby 1.9 & 2.0), es la última publicada hasta el momento […]

Usar List Category Posts en WordPress para listar sub-páginas

18 de septiembre de 2023
WordPress

Hace un tiempo tenía instalado en este blog el plugin de WordPress Subpage Listing. Es un plugin bastante simple que permite listar las sub-páginas de una página. Dada una página superior con páginas anidadas, si poníamos el siguiente comentario en el contenido: <!–%subpages%–> se generaba una lista de las páginas anidadas con enlaces a cada una. Usaba este plugin en páginas como Acerca De, donde listo la Política de Privacidad, Licencia y más, que son páginas anidadas de “Acerca De”. Sin embargo, el plugin ha sido completamente abandonado con la última actualización hace 11 años. Así que en su momento […]

¡Feliz día del programador!

13 de septiembre de 2023
Día del Programador

¡Feliz día del programador! Hoy 13 de setiembre es el día número 256 (28) del año por ser la cantidad de valores representables en un byte de datos (13/9 en los años comunes y 12/9 años bisiestos). Por esto se festeja el día del programador. En el blog lo festejo haciendo un repaso de cosas relacionadas a la programación. Me saltié un par de años, la última vez que “celebré” el día del programador fue en 2019. Pero vamos con un breve comentario de cosas de programadores… En breve voy a cumplir 4 años programando en Elastic. Me uní al […]

[Error Ruby] mocha/integration/mini_test/adapter.rb:26:in `included’: uninitialized constant MiniTest (NameError)

27 de julio de 2023
Ruby

Hoy me encontré con este error ejecutando unos test en Ruby: /opt/hostedtoolcache/Ruby/3.2.2/x64/lib/ruby/gems/3.2.0/gems/mocha-2.0.4/lib/mocha/integration/mini_test/adapter.rb:26:in `included’: uninitialized constant MiniTest (NameError) Mocha::ExpectationErrorFactory.exception_class = ::MiniTest::Assertion ^^^^^^^^^^^ Did you mean? Minitest Así que salí a buscar el repositorio de código de mocha (una biblioteca para mocks y stubs en Ruby), y encontré que el problema ya había sido reportado. En las notas de la versión más reciente de Minitest, avisan que la capa de compatibilidad con MiniTest ahora se carga únicamente al estar presente la variable de ambiente MT_COMPAT. Como se puede ver en el error, mocha hace un llamado a MiniTest en la línea 26 […]

Novedades de Gleam✨ – el lenguaje de programación funcional estáticamente tipado en BEAM

13 de julio de 2023
Lenguaje de programación Gleam

Desde la última vez que escribí sobre Gleam: el lenguaje de programación funcional estáticamente tipado en BEAM (la máquina virtual de Erlang) han habido muchas mejoras en el lenguaje y su ecosistema. En Abril se presentó el índice de paquetes Gleam, un sitio web para explorar paquetes escritos con Gleam en el repositorio Hex. Hex cuenta con miles de paquetes, y Gleam puede usar paquetes escritos en Elixir o Erlang, por eso la necesidad de este índice para buscar paquetes exclusivamente escritos con Gleam. En este post hay más información súper interesante sobre cómo fue desarrollado el sitio. Con la […]

Usando la nueva gema debug para ‘debuggear’ en Ruby

8 de junio de 2023
Ruby

Desde hace poco empecé a usar el debugger nuevo en Ruby 3: debug. Tengo un vago recuerdo de que cuando empecé a programar con Ruby, el debugger era medio complicado. Si no recuerdo mal debug o ruby-debug era el debugger original, pero después cayó en desuso (o el código no se mantenía) y empecé a usar byebug. Pero esto pasó hace más de 10 años así que no confío mucho en mis recuerdos vagos (que no es lo mismo que “no confío mucho en mis recuerdos, vagos”). Leyendo sobre debug en el blog de Koichi Sasada, su programador principal, parece […]

Nueva versión de la gema para TheGamesDB

20 de enero de 2023
Ruby: GamesDB 2.1

Esta semana actualicé mi gema Ruby gamesdb a la versión 2.1.0. Incluye cambios de mantenimiento, como asegurar compatibilidad con las versiones nuevas de Ruby (3.2) y actualizaciones en los tests. Refactoricé un poco el código extrayendo varias funciones utilitarias de manejo de imágenes y más a su propio módulo Gamesdb::Utils. Manejo de errores La nueva funcionalidad más importante es el manejo de errores. Anteriormente, en caso de error de conexión o en el pedido HTTP, el código levantaba la excepción directamente de Net::HTTP o cualquier otro error en la función principal perform_request. Pero si había un error desde la API […]

Se viene Ruby 3.2: Ruby muy eficiente y rápido, gracias en parte a Shopify

23 de diciembre de 2022
Ruby

Se viene Ruby 3.2, la nueva versión de Ruby que estaría disponible a partir de el próximo día de Navidad. Shopify es una de las empresas que ha venido apoyando mucho al lenguaje de programación, además de tener la aplicación Ruby on Rails más grande del mundo (o así lo afirman). Ufuk Kayserilioglu, Gerente de Ingeniería en el equipo de Infraestructura de Shopify, compartió que “hay tantas cosas geniales en 3.2 que no pudimos esperar al día de la publicación, y ya las usamos en los pedidos a Shopify”. Quedé bastante emocionado con todo lo que describe, y lo hace […]

Procesando Feeds RSS de TinyRSS para consumo OPML

15 de noviembre de 2022
Ruby RSS

Hace un buen tiempo usaba TinyRSS, un lector RSS web alojado en mi servidor. Pero no recuerdo si fue por actualizar PHP o el código de Tiny Tiny RSS mismo, se rompió la instalación. Decidí volver a usar alguna aplicación de escritorio, por el momento estoy usando Akregator en KDE, pero vi que Thunderbird también permitía la importación de Feeds RSS. Como no quería ingresar los feeds a los que estaba suscripto de a uno y a mano, entré al phpMyAdmin de mi servidor, y me fijé en qué tabla se encontraban mis feeds. La tabla en cuestión es ttrss_feeds, […]

Quinta edición del “Pickaxe”: Programming Ruby 3.2

10 de noviembre de 2022
Programming Ruby 3.2 (5th Edition)

El libro “Programming Ruby“, conocido como Pickaxe por su tapa, ha sido llamado “la referencia definitiva” de Ruby. Desde hace varios años se han ido publicando nuevas ediciones con las actualizaciones pertinentes a nuevas versiones del lenguaje. Escrito originalmente por Dave Thomas, en Febrero de 2023 verá una versión actualizada para Ruby 3.2 (que debería ser publicado el próximo día de Navidad). El encargado de esta versión actualizada es Noel Rappin, autor de varios libros técnicos como Rails 5 Test Prescriptions y Modern Front End Development With Rails. El título se encuentra actualmente disponible en versión beta en el sitio […]

Toasty!