Archivo: Programación | Picando Código - Part 3
Enlaces Ruby - Mayo 2021
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
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 […]
Elastic 7.13.0: Actualizaciones de los clientes oficiales Elasticsearch y Enterprise Search
El martes pasado se publicó la versión 7.13.0 de Elastic: Las mejoras clave incluyen búsqueda con buena relación costo-efectividad en más datos a través de snapshots buscables y el nivel congelado, mejoras de datos impulsados por analistas sobre la marcha con campos de tiempo de ejecución y más integraciones con Microsoft (muchos más detalles en el enlace). Como en cada nueva versión del Stack, esto significó también que en mi equipo publicamos los clientes oficiales para Elasticsearch y Elastic Enterprise Search. Clientes Elasticsearch Tenemos clientes oficiales para Elasticsearch en Ruby, Python, PHP, Perl, JavaScript, .NET, Rust, Go y Java. Soportamos […]
Mini pique: Git mv y ver la historia de archivos que movimos
Estoy trabajando en un cambio bastante grande en el cliente Ruby de Elasticsearch. La historia resumida es que el código de una de las gemas va a ser combinado en otra (#1274). Trabajando en ese código, moví muchos archivos de un lugar a otro, pero me resultaba importante mantener la historia o el git log de todos los archivos que moví. Podemos usar el comando git mv aunque es lo mismo que mover los archivos, eliminar los originales del control de versiones con git rm y agregar los nuevos. Git va a reconocer el cambio como que "renombramos" los archivos. […]
ngrok - expone tus servidores locales a través de NATs y Firewalls a la internet pública sobre túneles seguros
Hace poco tuve que usar ngrok para exponer un servidor de desarrollo local como redireccionamiento para probar el proceso de OAuth. ngrok es una herramienta que expone tus servidores locales a internet a través de túneles seguros por NATs y firewalls. Es una herramienta muy práctica que nos permite compartir lo que estemos ejecutando en local con cualquier persona con acceso a internet. Sumamente útil para tareas de desarrollo o demos, si tenemos una aplicación corriendo en local pero todavía no hemos subido los cambios a un servidor público. Para empezar a usar ngrok, tenemos que descargarlo (está disponible para […]
Enlaces Ruby - Abril 2021
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
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. […]
[Plugin WordPress] List Category Posts – 0.84
Ayer publicamos una actualización del plugin de WordPress List Category Posts, la versión 0.84. Se trata de una versión bastante especial por varias razones. En primer lugar, porque la publicación estuvo prácticamente 100% a cargo de Klemens Starybrat, uno de los colaboradores del plugin que más ha trabajado en el plugin en los últimos años. Klemens viene respondiendo preguntas en el foro de WordPress, resolviendo problemas en GitHub, actualizando el código, agregando funcionalidad y más. Ya es un colaborador oficial con permisos en GitHub y listado en la página del plugin como colaborador. También desarrolló un plugin que provee una […]
Mini pique - Emacs: ver la diferencia entre el buffer abierto y el archivo correspondiente
A veces al editar un archivo en Emacs, éste cambia en el disco (por ejemplo porque hicimos git pull o cambiamos de rama de desarrollo). Emacs nos avisa y nos pregunta si queremos editarlo a pesar de los cambios. Una forma de ver los cambios entre el buffer que estamos editando y el archivo en sí, es ejecutar: M-x diff-buffer-with-file El comando diff-buffer-with-file compara un buffer especificado con su archivo correspondiente. Es una función interactiva auto cargada de Lisp en diff.el. Requiere el programa diff instalado en nuestro path de ejecución.
Enlaces Ruby - Marzo 2021
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 […]
eBooks: Humble Book Bundle – Aprende Machine Learning por Manning Publications
Humble Bundle tiene un nuevo paquete de eBooks llamado Machine Learning Zero to Hero by Manning Publications. El paquete incluye 14 ebooks sobre Machine Learning, Deep Learning, Inteligencia Artificial y más. También incluye 3 cursos en video y tres proyectos interactivos. Los ebooks están disponibles en formatos PDF, MOBI y ePUB, 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. Pagando el mínimo de USD 1 / 1 € o más, obtenemos: Machine […]
Nuevo comando ls para IRB en Ruby 3
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 […]
El futuro de Perl
El lenjuage de programación Perl se encuentra en una situación un poco incómoda. Es un lenguaje de amplio uso y que ha estado en la vuelta por muchos años. Pero su uso, popularidad y contribuciones ha estado decayendo recientemente. Con esto en mente, el Comité Directivo de Perl elaboró una propuesta sobre la cual refleccionar sobre el estado actual de Perl, los desafíos que enfrenta, las oportunidades y los recursos disponibles. "Más de lo mismo" parece no ser una opción viable para el futuro del lenguaje, la gente que se acerca a Perl esperaría encontrar características de un lenguaje moderno, […]
Publicada la versión 1.0 del lenguaje de programación Crystal
¡El lenguaje de progamación Crystal alcanzó la versión 1.0! El Pull Request #10500 lo confirmó ayer en GitHub. Estabilidad En el blog de Crystal nos cuentan qué esperar con este hito. El lenguaje va a seguir evolucionando, pero esta primera versión estable determina algunas cosas. El lenguaje se va a mantener más estable, en el sentido en que no se van a quitar ni cambiar características en versiones futuras de manera que rompa código que compila y funciona en esta versión. A partir de ahora, cualquier código escrito en la versión 1.0, va a seguir compilando y funcionando sin incompatibilidades […]
Mini Pique: Ejecutar Emacs sin cargar los archivos de inicialización
Cuando Emacs inicia, intenta cargar un programa Lisp de un archivo de inicialización (o archivos init). Generalmente se usa ~/.emacs.d/init.el o el directorio ~/.emacs. A veces metiendo mano en este archivo podemos romper algo, y al iniciar Emacs nuevamente alguna cosa puede no funcionar como antes. En esos casos puede resultar conveniente ejecutar Emacs sin cargar nuestros archivos de inicialización. Para eso podemos usar el parámetro -q o --no-init-file: $ emacs -q Más información: Emacs Initial Options
Comentarios recientes