Entradas

Mostrando las entradas de febrero, 2026

(Leaflet) Probando ATProto #1: Leaflet

Imagen
Este entrada apareció primero en mi Leaflet , actualmente me encuentro probando esta herramienta. La idea es mudar este blog a un nuevo sistema de blog en algún futuro, pero manteniendo este como el respaldo. Recuerdo que hace casi dos años apareció Bluesky basado en un nuevo protocolo descentralizado. En ese momento no me llamó tanto la atención porque ya existían tecnologías como P2P o el Fediverso (ActivityPub) que cubrían bien el aspecto social. De hecho hosteo actualmente mi propia instancia de  GoToSocial . Sin embargo, tras ignorar este ecosistema por un tiempo y jugar lo suficiente con otras alternativas, decidí que era momento de explorar la "Atmósfera" de ATProto. Para empezar este viaje estoy usando  Leaflet , una herramienta que facilita la  publicación de contenido largo  (Osea Blogs 😀). Antes de escribir esto, me tomé el tiempo de revisar sus condiciones de uso y privacidad: Propiedad:  El contenido sigue siendo mío, aunque les doy permiso para al...

¡Amor RSS!

Me encanta el RSS . Siento que es una tecnología tan simple, pero increíblemente útil. Actualmente cada día uso menos las redes sociales y, aunque esto haga que pierda cierto contacto constante con mis amistades, siento que a largo plazo hace un buen trabajo manteniéndome fuera del loop del constante "slop" que producen las IA (aunque admito que yo igual uso) y de la guerra política que albergan las redes hoy en día. Esta fascinación por el RSS lleva mucho tiempo en mi cabeza y la he ejecutado con distintos grados de éxito. Primero probé una aplicación de escritorio llamada QuiteRSS, pero cuando dejó de funcionar correctamente, decidí pasarme a Thunderbird . Thunderbird es un gran gestor de correos, pero es un pésimo programa para todo lo demás. A veces desearía que simplemente eliminaran las funciones que no corresponden a un cliente de correo. Como la experiencia en Thunderbird era mala, empecé en el mundo del self-hosting. Primero ejecuté FreshRSS en una TV Box que tenía...

Cyg: Sistema de guardado asíncrono y robusto para GameMaker

Uno de los mayores dolores de cabeza al desarrollar en GameMaker suele ser el sistema de guardado. Históricamente, GML no lo ponía fácil: gestionar la serialización, evitar que el juego se congele al escribir archivos grandes y asegurar que los datos no se corrompan es una tarea que consume horas de documentación. Últimamente, GameMaker ha mejorado mucho sus funciones de archivos y estructuras, pero todavía falta esa "capa" de robustez que te dé tranquilidad. Por eso, he estado trabajando en Cyg , una librería propia que automatiza estas tareas pesadas. ¿Qué hace a Cyg diferente? No quería simplemente "escribir un JSON". Quería algo que aguantara el flujo de trabajo de un proyecto real: I/O Asíncrono por defecto : Fundamental para evitar tirones de frames ( stuttering ) y asegurar compatibilidad con plataformas más allá de Desktop, como consolas o navegadores. Gestión de Backups y Compresión : Reduce el peso de los archivos y, más importante, gener...

Mi experiencia con el filtro UV Sobo 9W

Imagen
Cualquier persona que tenga una tortuga sabe que mantener el agua cristalina es un reto constante. Aunque cuento con una buena filtración mecánica y biológica gracias a mi ReptiClear F250 , hace poco me enfrenté a un brote de algas microscópicas que dejó el acuario completamente verde. Investigando aprendí que este fenómeno, conocido como "bloom" de algas , ocurre cuando estas encuentran el equilibrio perfecto entre luz y exceso de nutrientes. El problema es que los filtros convencionales no pueden atrapar partículas tan pequeñas. El agua se convierte rápidamente en una especie de "sopa" donde apenas puedes ver a tu mascota. La solución: Radiación UV-C Leyendo en foros y sitios especializados, me di cuenta de que la solución definitiva era instalar un filtro interno UV. Opté por un Sobo de 9W (600 L/h) . La lógica detrás de este equipo es sencilla pero muy efectiva. No se limita a filtrar sedimentos, pues utiliza una lámpara de luz ultravioleta en la banda C (UV-C) ...

Cimplicity: Cambiar texto de un botón según el estado de un punto

Imagen
Recientemente, en un proyecto implementé una solución para un botón de conmutación ( toggle ) que indica el modo de operación ( Manual o Automático ) de forma dinámica. A continuación, explico cómo configurar este comportamiento utilizando variables de objeto y procedimientos. El Desafío Necesitamos que un mismo objeto gráfico realice dos tareas: Invertir el valor de un bit en el PLC. Cambiar su propio texto para reflejar el nuevo estado. Para que esto sea eficiente, el texto no puede ser estático. Utilizaremos una variable interna, en este caso llamada {Modo} , que servirá como puente entre la lógica del punto y la visualización. Configuración de la Variable Dentro de las propiedades del grupo o botón, en la pestaña Variables , debemos declarar la variable {Modo} . Es recomendable asignarle un valor inicial como "INDEFINIDO" o "ERROR" para detectar rápidamente si la lógica de actualización no se está ejecutando. Lógica de Eventos y Procedimientos El secreto para...

Cimplicity: El "hack" para mostrar valores en los 'Trends'

Imagen
Si trabajas con Cimplicity , sabrás que el programa es muy "llevado a su idea" y a veces simplemente no desea funcionar aun cuando aparentemente debería. Uno de estos casos es cuando los Trends (gráficos de tendencias) deciden no mostrar los valores analógicos de un PLC sin razón aparente. Hace poco me pasó y, aunque el motivo técnico sigue siendo un misterio, encontré una solución que, aunque algo tediosa de configurar, funciona de maravilla. Aquí les comparto este "truco" para que no se queden trabados en sus proyectos La Estrategia: Crear un "Puente" de Datos El problema suele estar en la comunicación directa entre el punto del PLC y el objeto gráfico. Para saltarnos esto, vamos a crear puntos virtuales que actúen como intermediarios. Crear el punto virtual: Si tu variable original es  FQI-xxx , crea un nuevo punto llamado G-FQI-xxx .  Recuerda seleccionar que sea virtual (que no esté vinculada a ningún dispositivo). Configuración: Asegúrate de que ...