Archivo: Programación | Picando Código - Part 2

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

Lunes, 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!

Miércoles, 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)

Jueves, 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

Jueves, 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

Jueves, 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

Viernes, 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

Viernes, 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

Martes, 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

Jueves, 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 […]

eBooks: Paquete de libros sobre Elixir

Martes, 6 de septiembre de 2022
eBooks Elixir

Pragmatic Programmer tiene un nuevo paquete de ebooks sobre el lenguaje de programación funcional Elixir, a través de Humble Bundle. Los libros incluyen consejos de expertos, proyectos, referencias exhaustivas y más para aprender a escribir aplicaciones robustas y seguras usando Elixir. Incluye información sobre OTP, Nerve (Elixir en dispositivos embebidos), Phoenix (el popular framework web en Elixir) y más temas de estudio relevantes al desarrollo de software con Elixir. Elixir fue uno de los lenguajes que estuve aprendiendo y experimentando y me resultó interesante y divertido. Por 2015 empecé a leer "Programming Elixir" (escribí un post en el blog) y […]

Documental - Two Cartoon Foxes: Remembering Why The Lucky Stiff

Jueves, 19 de agosto de 2021
_why foxes

El 19 de agosto de 2009, Why the Lucky Stiff desapareció de la comunidad Ruby. Hoy se celebra el Whyday, donde la comunidad Ruby recuerda las contribuciones de _why al ecosistema y la cultura que la identifica. Para más información pueden visitar el sitio Whyday.org o la cuenta en Twitter @celebratewhyday o seguir el hashtag #whyday.

Enlaces Ruby - Junio 2021

Martes, 6 de julio de 2021
Ruby

Colecció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 […]

Mini-Pique: Bashrc PS1 generator - genera el código para tu prompt bash con una interfaz drag & drop

Lunes, 28 de junio de 2021
bash rc generator

El sitio web basrchgenerator nos ofrece una interfaz gráfica amigable para crear el código para nuestro prompt de Bash de manera bastante sencilla: Arrastramos los elementos de la izquierda al espacio del medio, y a la derecha vemos un preview y el código generado. Una vez generado, lo copiamos y lo pegamos en el archivo .bashrc en nuestro directorio home, y listo. Una herramienta bastante práctica, faltaría poder elegir colores para los distintos elementos y estaría súper completa.

Semantic Logger - framework de logueo enriquecido para Ruby y Rails

Viernes, 25 de junio de 2021
Elasticsearch Semantic Logging

Semantic Logger es un framework enriquecido de logueo que permite producir resultados legibles para humanos y para máquinas 🤖 Entre las características principales listan: Archivos de log con texto coloreado para que los humanos lo podamos leer. Archivos de log JSON con toda la información semántica para alimentar a las máquinas. Escribir a múltiples destinos a la misma vez Enviar los logs a un sistema centralizado de logueo, via JSON o adaptadores incluidos. Como implementa la interfaz estándar de logueo de Ruby, se puede reemplazar el log normal con Semantic Logging. Lo probé con el cliente oficial de Elasticsearch para […]

Mini pique: Ruby - Usar las notificaciones del sistema para notificarnos de tareas

Lunes, 14 de junio de 2021
Ruby

Esto es más bien una idea que se me ocurrió trabajando, pero me pareció buena compartirla como mini pique. Por lo menos para no olvidarme en el futuro que esto es una posibilidad, al escribir un post al respecto me queda más grabado en la memoria. La gema libnotify nos permite interactuar con la biblioteca libnotify de nuestro sistema y generar notificaciones de manera muy sencilla. Este código: > require 'libnotify' > Libnotify.show( body: "Hola Mundo", summary: "Picando Código informa", icon_path: "/usr/share/icons/Humanity/apps/32/terminal.svg" )> require 'libnotify' > Libnotify.show( body: "Hola Mundo", summary: "Picando Código informa", icon_path: "/usr/share/icons/Humanity/apps/32/terminal.svg" ) Genera esta notificación: […]

Toasty!