Archivo: Programación | Picando Código - Part 5
Piques Git - cherry pick y git clean
Git es una herramienta fundamental en mi trabajo diario desde hace unos cuantos años, pero todavía sigo aprendiendo cosas nuevas todo el tiempo. Distintos proyectos tienen distintos procesos de trabajo, lo que nos ayuda a aprender cosas que no conocíamos y que hacen más práctico el día a día. En este post voy a escribir sobre algunas cosas nuevas que empecé a usar seguido recientemente gracias a la naturaleza del trabajo en el cliente Ruby para Elasticsearch. Eliminar todos los archivos nuevos que no han sido agregados a staging Vengo trabajando bastante en generación de código. Esto da lugar a […]
Nuevas versiones de Ruby y fin de soporte para Ruby 2.4
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) […]
endoflife.date - conoce cuándo se termina de dar soporte a distintas tecnologías
El sitio web endoflife.date se dedica a mantener enlaces para conocer las fechas de "End Of Life" (fin de vida) de varias herramientas y tecnologías. End Of Life generalmente quiere decir que el software no se encuentra más bajo desarrollo, y no recibirá actualizaciones ni siquiera de seguridad. La razón por la que existe el sitio es porque dicha información está generalmente bastante oculta en algunos casos. La idea surgió de un rant en Twitter donde el autor compara la información sobre versiones en PHP con la de Ruby, Go, Ubuntu, Python y más. Algunas tecnologías hacen esta información bastante […]
ghpreview - Gema Ruby para previsualizar archivos Markdown con el estilo de GitHub
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 […]
¡Feliz día del Programador!
¡Feliz día del programador colegas! El día del programador se celebra en 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). Como es tradición, aprovecho la excusa para hacer un repaso de en qué ando desde el último día del programador. Hablemos de programación: Ruby sigue siendo mi lenguaje principal. Recientemente he estado muy atento a Crystal: un lenguaje con tipos estáticos inspirado en Ruby. En este post, escribí sobre cómo crear un bot de Telegram con un cliente en Crystal, […]
Gamesdb - Gema Ruby para la API de TheGamesDB
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, […]
Versión 0.3 de Gleam ✨ – el lenguaje de programación funcional estáticamente tipado en BEAM
En abril se publicó la primera versión pública de Gleam. Esta semana se publicó la versión 0.3 que trae varios cambios desde entonces. Namespaces de módulos Los módulos se pueden contener en espacios de nombres permitiendo el uso de nombres de módulos cortos y convenientes sin riesgo de colisiones con otros módulos de Gleam o Erlang. Para usar espacios de nombre creamos un directorio con el nombre de namespace en el directorio src/ y ponemos el módulo ahí. Como ejemplo: src/ └── vgclub ├── persona.gleam └── consolas ├── nintendo.gleam ├── sega.gleam └── atari.gleam Una vez creados, los módulos se pueden […]
Versión 1.0 de ci_uy: La gema Ruby para validar números de cédula de identidad
Actualicé la gema ci_uy a la versión 1.0.0. Bueno en verdad después de publicarla a RubyGems le agregué unos metadatos al archivo gemspec para que enlazara al Changelog y otros recursos, tuve que "yankear" 1.0.0 y subir una versión nueva. Así que la versión actual es 1.0.1. La funcionalidad de la gema sigue más o menos igual desde hace años, pero dados unos cambios recientes, decidí definir la nueva versión como "estable". Los cambios en código fueron para usar frozen string literals, usando strings inmutables y en vez de ir cambiando los Strings, hacer todo con funciones. También agregué documentación […]
Tourmaline - Framework para bots de Telegram en Crystal
Tourmaline es un framework desarrollado en el lenguaje de programación Crystal. Con la reciente versión 0.70, alcanzó soporte completo para la API de Bots de Telegram: Framework para la API (y ojalá pronto Cliente) de Bots de Telegram en Crystal. Basado fuertemente en Telegraf, esta implementación en Crystal permite que tu bot de Telegram sea escrito en un lenguaje tanto hermoso como rápido. Benchmarks vendrán pronto. ¡Ya podemos escribir nuestro bot de Telegram en Crystal! Para empezar a usar Tourmaline, tenemos que agregarlo a los shards de nuestra aplicación en el archivo shard.yml. dependencies: tourmaline: github: watzon/tourmaline version: ~> 0.7.0 […]
Actualización del validador de Cédula de Identidad Uruguaya
Hace unos años creé mi primera gema en Ruby: Un validador de cédulas de identidad uruguaya. Poco más de un año después, escribí una versión en JavaScript. Desde entonces han surgido un montón de versiones más del validador de cédulas de identidad en distintos lenguajes. Recientemente actualicé el sitio web del proyecto: Validación Cédula Identidad Uruguaya La idea principal de las bibliotecas en Ruby, JavaScript y demás, es validar números de cédula ingresador por un usuario en un sitio/aplicación. La motivación de escribir la primera versión fue la cantidad de sitios uruguayos que lo hacen mal (ver entrada). Así que […]
Gleam - Nuevo lenguaje de programación funcional estáticamente tipado en BEAM
El pasado lunes 15 de abril se publicó la primera versión de Gleam (0.1): Gleam es un lenguaje de programación funcional estáticamente tipado diseñado para escribir sistemas concurrentes mantenibles y escalables. Compila a Erlang y tiene interoperabilidad directa con otros lenguajes de BEAM (la máquina virtual de Erlang) como Erlang, Elixir y LFE. Obviamente es un lenguaje bastante nuevo, así que no está listo para usar en producción. Está interesante y ya se puede probar, programar alguna cosa divertida y aprender a usarlo. El código fuente está disponible en GitHub bajo licencia Apache 2.0, y chat del proyecto se encuentra […]
Crystal: Lenguaje de programación inspirado en Ruby
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
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 […]
La Programación...
2 paquetes de ebooks interesantes: Learn you some Code y Game Development by Pack
La gente de Humble Bundle tiene 2 paquetes de ebooks bastante interesantes. Los ebooks están disponibles en PDF, ePUB y MOBI, por lo que pueden ser leídos en casi cualquier dispositivo. Como se acostumbra en los paquetes Humble Bundle, además de elegir el precio, podemos elegir dónde destinamos el dinero que pagamos, incluyendo una organización de beneficencia. En el primer bundle se trata de Electronic Frontier Foundation, la fundación sin fines de lucro que defiende nuestros derechos en el mundo digital. Activistas, abogados y tecnólogos que luchan en las cortes y el congreso para proteger la privacidad y libre expresión […]
Comentarios recientes