Archivo: Programación | Picando Código
Mini-Truco: Mover el directorio de almacenamiento de Docker
Uso mucho Docker en el trabajo, probando distintas versiones de varias cosas, por lo que salto de una imagen a otra todo el tiempo. Un problema que me surgió con esto de saltar por imágenes distintas es que el disco duro se empezaba a llenar bastante rápido. Generalmente uso una partición primaria de unos 40/50Gb para la partición root del sistema operativo y otras particiones para /home y demás. Por defecto Docker me estaba guardando las imágenes en /var/lib, que no tenía su partición propia. Así que cada tanto me aparecía la notificación de que a mi disco duro le […]
Versión 1.1 de ci_uy: La gema Ruby para validar números de cédula de identidad
Acabo de publicar la versión 1.1.0 de la gema Ruby ci_uy para validar números de cédula de identidad uruguaya. La versión anterior, 1.0.1, la publiqué en julio de 2019. No es que desde entonces haya abandonado el desarrollo del proyecto, es que realmente no necesita muchos cambios. Podría considerarse "software estable", hace una sóla cosa y la hace suficientemente bien (para mí). El código Ruby implementa el algoritmo de validación de los números de cédula de identidad uruguaya, y provee algunos métodos de ayuda. Pero a menos que algo cambie en el documento de identidad uruguayo, no va a necesitar […]
Empezando con Docker - Imágenes y contenedores
Docker es un servicio de contenedores de software que se ha vuelto bastante popular a la hora de publicar aplicaciones en producción. Básicamente, permite empaquetar software de una forma que es conceptualmente similar a una máquina virtual. A diferencia de una máquina virtual, los contenedores no cuentan con software de plataforma, por lo que son bastante livianos y portables. El software empaquetado se puede ejecutar igual en cualquier plataforma que ejecute Docker. La tecnología introduce algunos términos nuevos, que resultan un poco confusos al empezar a usar Docker. ¿Qué es una Imagen Docker? ¿Qué es un contenedor Docker? ¿Cómo lo […]
Alojando mi propio servidor git con Forgejo
Forgejo es una plataforma de software web colaborativa para alojar repositorios git. Es software libre y gratuito, publicado bajo la licencia GPLv3. Una de las plataformas más populares actuales de alojamiento git es GitHub. Forgejo es similar, con la ventaja de ser software libre y permitirnos alojarla donde, cómo y cuándo queramos. Codeberg.org es una instancia de Forgejo, una plataforma equivalente a GitHub, pero con otro montón de ventajas: es un esfuerzo sin fines de lucro, no yanqui, liderado por la comunidad. Ambos proyectos están bajo el paraguas de Codeberg e.V., una organización democrática sin fines de lucro en Alemania. […]
Actualización de mullvadrb - versión 0.0.9
Publiqué la versión 0.0.9 de la gema Ruby mullvadrb, la interfaz de usuario de terminal para Mullvad VPN en Ruby. Esta actualización fue bastante chica. Desde agosto tenía código actualizado localmente, que venía usando casi a diario. Pero no lo había ni subido a git, ni que hablar de hacerlo disponible en una actualización de la gema. Modifiqué un poco el código que lista los servidores. En parte para no mostrar como opciones las conexiones a través de OpenVPN. Mullvad anunció ya hace bastante que iban a dejar de soportar OpenVPN para usar sólo WireGuard. El soporte termina el 15 […]
Generar un enlace automático para compartir posts en un canal de Telegram
Los posts de Picando Código se comparten automáticamente en un canal de Telegram ni bien se publican. Esto se hace mediante una función PHP en el archivo functions.php de mi tema de WordPress. Escribí al respecto en Actualiza un canal en Telegram automáticamente desde WordPress. El canal es relativamente popular, al momento de escribir esto cuenta con 89 miembros (91 contándome a mí y al bot que publica los posts). El código viene funcionando lo más bien desde 2018. La función genera una dirección web con los datos necesarios y hace un request a esa URL. La semana pasada, la […]
Definir lenguaje a español en los toots con el plugin de WordPress "Share on Mastodon"
En el blog uso el plugin Share on Mastodon para WordPress. Éste permite compartir automáticamente los posts publicados en nuestro blog en una cuenta de Mastodon. En mi cuenta personal de Mastodon uso inglés para la interfaz, pero posteo en español, inglés y a veces gaélico escocés. La web y el software en general no parecen estar bien diseñados para ambientes polilingües. La mayoría de las cosas usan un sólo idioma por defecto, y listo. Por suerte ya resolví ese problema para el teclado. Puedo escribir en español, inglés, escocés gaélico, italiano y más con esa distribución. Cuando posteamos en […]
List Category Posts v0.93.0 donde se corrigen "problemas" y re-aprendo PHP
A principio de mes recibí otro reporte de seguridad de Wordfence para el plugin de WordPress List Category Posts. Cada vez vienen llegando más seguido. Me pregunto si hay algún negocio por detrás, si alguien se está beneficiando monetariamente con las investigaciones de seguridad, o simplemente con "crédito" por encontrarlas. Los que desarrollamos el plugin definitivamente no nos venimos beneficiando monetariamente, eso lo puedo afirmar. Estas "vulnerabilidades" son de bastante poco riesgo, y por suerte hasta ahora han sido relativamente sencillas de corregir. Cuando escribí el plugin, lo hice pensando en usuarios que tienen total control de su WordPress y […]
Nada que ver en las audaces aventuras de desarrollar un proyecto de código abierto popular
Vuelve un poco de tranquilidad a la parte de mi que se estresa cuando tiene asuntos pendientes. Patchstack marcó como corregida la vulnerabilidad en List Category Posts en la versión 0.92.0 del plugin 🥳 Wordfence todavía no actualizó su sitio y sigue teniendo mensajes alarmantes para las pobres personas que decidan instalar este plugin. Pero allá ellos (Actualizado unos días después: ya marcan la vulnerabilidad como parcheada en 0.92.0). Desde hace un buen tiempo nos han venido reportando "vulnerabilidades" en el código. Pero siempre con un detalle: un usuario malicioso tiene que tener acceso al escritorio de WordPress para poder editar […]
Publicado List Category Posts v0.92.0 con mejoras en "seguridad"
Desde mayo venimos luchando con Wordfence y Patchstak, que reportaron un problema de seguridad en el plugin de WordPress List Category Posts. Con Klemens, el otro "mantenedor" que ha venido aportando mucho al código del plugin, venimos conversando del tema por correo electrónico. El "fallo de seguridad" o la "vulnerabilidad" que reportan es que un usuario con acceso al sistema de archivos y permisos de al menos editar un post o página, puede incluir PHP malicioso. Ahora, un usuario que tiene acceso al sistema de archivos y a editar contenido, puede hacer mucho más daño por otros lados que con […]
Wubular - expresiones regulares corriendo Ruby en el navegador
Una herramienta que he usado mucho a la hora de escribir expresiones regulares es Rubular (más en Expresiones Regulares en Ruby). En agosto se presentó Wubular, una herramienta inspirada en Rubular para escribir y testear expresiones regulares en el navegador web. Si bien Rubular es una herramienta súper práctica, tiene sus problemas. Para empezar, usa Ruby 2.5.9, una versión anciana de Ruby (el soporte para la rama 2.5 terminó en 2021), y tampoco es de código abierto. Por otra parte, sigue el modelo tradicional web de enviar un pedido POST a un servidor para parsear el resultado. Desde la versión […]
Script Ruby para elegir una transmisión en vivo del canal oficial de los Power Rangers en YouTube y abrirlo en VLC
El canal oficial de Power Rangers en YouTube tiene tres transmisiones en vivo diarias. También tiene un montón de material como los episodios completos y temporadas enteras de la serie clásica y sucesivas versiones. A veces está bueno engancharse a mirar una de estas transmisiones. Es como emular la forma en que uno miraba televisión en otras épocas, prendíamos la tele y mirábamos lo que había, sin tener idea el número de temporada o episodio. Procrastinando una noche en la que debía acostarme temprano para estar bien descansado para un evento que me venía produciendo bastante ansiedad, me puse a […]
Arreglada vulnerabilidad CVE-2025-47636 en List Category Posts
Ayer publiqué la versión 0.91.0 de List Category Posts, el plugin para WordPress. Hace un tiempo habían reportado una "vulnerabilidad crítica", y se me fue pasando hasta que se hizo pública. Varios usuarios me escribieron preocupados por el asunto. Es entendible, que si un sistema te avisa que estás usando un plugin con una vulnerabilidad crítica, entiendas que es grave. Sin embargo, para hacer uso de esa vulnerabilidad, el sistema ya tiene que estar comprometido. La persona con intenciones maliciosas necesita de antemano tener acceso al servidor para poder subir un archivo. También necesita tener un usuario autenticado, con acceso […]
Actualización de mullvadrb - Bloqueadores de contenido DNS
Publiqué una nueva actualización a la gema mullvadrb, la interfaz de usuario de terminal para Mullvad VPN en Ruby. La herramienta permite usar Wireguard o la interfaz de línea de comando mullvad como backend. Aprolijé un poco el código extrayendo las opciones a su propio módulo Settings. Ahí puse todo el código relacionado a configuración, backend, y lenguajes. También le agregué funcionalidad nueva. Una de las opciones de la interfaz de línea de comando es bloqueadores de contenido DNS. Entre las opciones a bloquear tenemos anuncios, trackers, malware, sitios de apuestas y contenido adulto. Implementé un menú de opciones de TTY::Prompt […]
Mi juego para I, REBEL: A JEFF MINTER GAME JAM por Atari
La semana pasada participé del concurso de desarrollo organizado por Atari: I, Rebel: A Jeff Minter Game Jam. Escribí sobre Jeff Minter y Llamasoft: The Jeff Minter Story en marzo, cuando estaba en Uruguay. Por participar en el Game Jam, Atari nos envió códigos para descargar el juego en nuestra plataforma preferida, por eso lo estuve jugando en mi Switch (cuando llegué a Escocia me esperaba la versión física junto a la de Tetris Forever). La premisa del game jam era la siguiente: Crea un juego que Jeff Minter va a amar Desbloquea tu Jeff Minter interior para crear un juego […]

Comentarios recientes