Mierdificación y supervivencia digital

Vale, es de EFE.com, que forma parte del sistema, pero esta escrito de forma impecable, a mi gusto…

Valencia, 14/10/2026, G.B. (en el día de mi cumple)
Acabo de leer  un artículo titulado «Redes sociales: primero te robaron la atención, ahora quieren tus habilidades cognitivas!« en EFE.com, y no puedo estar más de acuerdo. eso no significa que tenga razón, por supuesto, pero es algo que hemos estado viendo a lo largo de estos años.

Al final, hacer que perdamos la atención, que dependamos de algoritmos y seamos completamente dependientes de «ellos». Así parece que pintan las cosas, al menos para la mayoría de la gente, por desgracia (ojalá esté completamente equivocado!). El pensamiento crítico es lo único que nos puede salvar, y es precisamente lo que nos quieren quitar. Pero la esperanza, y el esfuerzo subyacente, puede que nos salve, aunque no a todos.

Hasta pronto!

Control y Reserva de Recursos (CRR): un sistema para la gestión de salas, equipos y servicios en WordPress

Valencia, 14/10/2026, G.B.
Os presento la versión 1.11.2 de mi plugin Control y Reserva de Recursos (CRR) para WordPress
. Una solución 100% nativa y completa diseñada para la gestión integral de inventarios, control de disponibilidad en tiempo real y reserva de espacios, materiales y servicios de forma sencilla e intuitiva desde la web.

Aquí va un ejemplo del sistema principal:

Debes iniciar sesión para realizar, editar o gestionar tus reservas.

Para ver la ocupación mensual en la vista de calendario:

Lun
Mar
Mié
Jue
Vie
Sáb
Dom
1
2
00:00 Sala Conferencias
3
00:00 Sala Conferencias
4
5
6
09:00 Microscopia
09:00 Sala Conferencias
7
09:00 Microscopia
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
×

Ficha de Reserva

Recurso:
Solicitante:
Fechas:
Horario:
Cantidad:
Precio Estimado:
Observaciones:

Acerca de CRR

La gestión eficiente de espacios compartidos, equipamiento de alta gama o servicios especializados suele requerir herramientas complejas o plataformas de terceros que escapan al control directo del sitio web. Con el objetivo de mantener una solución 100% nativa, ligera y sin dependencias externas, nace Control y Reserva de Recursos (CRR), un plugin diseñado a medida para centralizar todo el ciclo de reservas de forma independiente y segura.

¿Qué ofrece Control y Reserva de Recursos (CRR)?

Este desarrollo unifica en un único paquete todo lo necesario para que tanto los usuarios como los administradores gestionen la disponibilidad de recursos de manera fluida:

1. Gestión de Inventario y tipologías flexibles

El administrador cuenta con un panel completo de inventario integrado directamente en la base de datos de WordPress. Los recursos se pueden clasificar en tres grandes categorías (ampliables):

  • Espacios / Salas

  • Material / Equipamiento

  • Servicios Cada recurso incluye control de stock o capacidad simultánea, precio por hora configurable y un correo electrónico asignado para el responsable directo del recurso.

2. Selector inteligente con buscador y filtros en tiempo real

A la hora de solicitar una reserva, los usuarios disfrutan de un selector visual moderno. Permite filtrar los recursos por tipo mediante botones interactivos y refinar la búsqueda al instante escribiendo en un cajón de texto inteligente que filtra por nombre o tipología sin necesidad de recargar la página.

3. Cálculo automático de presupuestos y notificaciones

El sistema calcula de manera automática el coste estimado de la reserva en función de los días, las horas exactas de inicio/fin y la cantidad seleccionada. Además, envía de forma automatizada correos de confirmación y actualización tanto al solicitante como al responsable del recurso, incluyendo opcionalmente el desglose detallado del presupuesto.

4. Vista de calendario mensual interactiva

Mediante el shortcode crr_calendario, cualquier página de la web puede transformarse en un calendario de ocupación mensual. Las reservas se listan ordenadas por horario y, al hacer clic sobre cualquiera de ellas, se despliega una ficha flotante de detalles con toda la información clave de la reserva.

5. Panel de control frontend para usuarios autorizados

No todo depende del panel de administración de WordPress. El plugin permite definir en los ajustes generales una lista de correos electrónicos autorizados. Estos usuarios, sin necesidad de ser administradores, podrán acceder desde el frontal a un Panel de Gestión Avanzado que incluye:

  • Filtros por rango de fechas (Desde / Hasta).

  • Filtro por categorías de recursos.

  • Búsqueda de texto libre compatible con comodines (por ejemplo, utilizando asteriscos como *proyector* o Servicio de*).

6. Exportación dual: Excel y CSV

Para la labor administrativa y de reporting, el panel incluye opciones de exportación instantánea (tanto de todo el histórico como de los datos filtrados en pantalla). El usuario puede elegir entre:

  • 📊 Excel (.csv optimizado): Formato configurado con delimitador de punto y coma (;) y codificación UTF-8 con BOM, garantizando que tildes, eñes y caracteres especiales se abran perfectamente al hacer doble clic en Microsoft Excel o LibreOffice Calc.

  • 📄 CSV estándar: Para integraciones universales.

Compromiso técnico de desarrollo

Siguiendo las directrices de desarrollo nativo de Indaga.net, CRR destaca por:

  • Cero dependencias externas: Sin librerías JavaScript pesadas ni llamadas a APIs de terceros.

  • Seguridad rigurosa: Uso estricto de consultas preparadas ($wpdb), sanitización de entradas, escapado de salidas y validación mediante Nonces de WordPress.

  • Experiencia de usuario optimizada: Incorporación de persistencia de scroll mediante sessionStorage, evitando los molestos saltos al principio de la página tras enviar formularios o aplicar filtros.

  • 📋 Ficha Técnica del Plugin

    • Nombre del Plugin: Control y Reserva de Recursos (CRR)

    • Versión: 1.11.2

    • Autor: Guillermo Beltrán Pilato

    • Sitio Web: Indaga.net

    • Compatibilidad WordPress: 6.0 o superior

    • Licencia: Software libre / Independiente

    • Descripción Breve: Sistema completo e independiente para la gestión y reserva de recursos, salas y servicios con presupuestos automáticos, vista de calendario interactiva, selector avanzado por categorías con buscador instantáneo, panel frontal de filtrado dinámico y exportación dual (Excel optimizado o CSV estándar).

    • Shortcodes Disponibles:

      • crr_reservas (entre corchetes []): Muestra el formulario de solicitud, inventario y panel de gestión frontal.

      • crr_calendario (entre corchetes []): Renderiza la vista de calendario mensual de ocupación.

  • Descargar plugin

¿Qué es ArtCraft? El IDE para creadores visuales impulsado por IA

Valencia, 13/10/2026, G.B.
Hoy me he topado con ArtCraft, una herramienta para generar imágenes y vídeo con IA que se sale un poco de lo habitual. No es el típico cuadro de texto donde escribes un prompt y rezas — aquí tienes un lienzo, escenas en 3D y varios modelos a elegir. Te lo cuento rápido.

Qué es

Sus creadores lo llaman «el IDE para artistas», y la comparación tiene sentido: en vez de pelearte con el prompt, compones la imagen en 2D, colocas personajes y cámaras en una escena 3D y después generas el resultado. También puedes animar una imagen para convertirla en vídeo.

Quién está detrás

El proyecto lo impulsa Brandon Thomas, fundador de Storyteller.ai, la empresa que desarrolla ArtCraft. Su idea, tal y como la ha contado el propio equipo, es construir herramientas e infraestructura abiertas para la creación con IA, en lugar de depender de plataformas cerradas.

Descargarlo o usarlo online

Lo mejor es que tienes dos opciones. Puedes descargarlo como aplicación de escritorio (Windows y macOS; en Linux, de momento, toca compilar desde el código fuente) desde getartcraft.com, o usarlo online directamente desde el navegador en app.getartcraft.com, sin instalar nada. Yo empezaría por la versión web para echarle un vistazo.

Lo que me ha gustado

  • Es de código abierto: el código está en GitHub, escrito en Rust.
  • Tú eliges el modelo: trabaja con varios proveedores, así que no estás atado a un único motor de generación.
  • Tus propias claves: puedes usar las tuyas o comprar créditos dentro de la app.

Lo que hay que tener en cuenta

Los modelos de generación no son suyos, así que al final pagas (créditos o tu propia API) por usarlos. Además, el proyecto es joven y, según he leído, tiene muchas incidencias abiertas; yo lo tomaría como una herramienta para trastear, no para producción.

¿Y la suite?

ArtCraft es una sola aplicación, pero el mismo equipo acaba de sacar las Crafting Apps: una familia de programas libres que imitan el funcionamiento de Photoshop, Premiere, Lightroom e Illustrator, y que se pueden usar por separado. Están hechas con agentes de IA y de ellas ya habló Phoronix. Son muy recientes y habrá que ver cómo evolucionan, pero el experimento tiene su gracia.

Yo por lo pronto lo dejo apuntado para trastear con calma…

Plugin para contabilidad casera y control de pasos diarios

NOTA: Actualizo a la versión 1.7.2, para sumatorio de pasos.

Valencia, 04/10/2026, G.B.
Este plugin para WordPress permite llevar una gestión clara del presupuesto familiar y el patrimonio, ofreciendo balances por períodos, gráficos visuales de ingresos y gastos, y un historial sencillo para el registro de pasos diarios.

Ficha Técnica del Plugin

Contabilidad Casera Indaga

  • Nombre del Plugin: Contabilidad Casera Indaga
  • Versión actual: 1.7.2
  • Autor: Guillermo Beltrán Pilato (Indaga.net)
  • Sitio Web del Autor: https://indaga.net
  • Licencia: GPL-2.0+
  • Texto de Dominio: contabilidad-casera-indaga
  • Enlace de Descarga: Descargar v.1.7.2

Descripción

Contabilidad Casera Indaga es un plugin privado y personalizado para WordPress diseñado para la gestión y seguimiento del presupuesto personal o familiar, combinando el control de finanzas con un registro de actividad física diaria (pasos).

Características Principales

  1. Gestión Financiera por Periodos y Global:
    • Ingresos y Gastos: Filtrados en tiempo real según el rango de fechas o el mes seleccionado.
    • Ahorro Directo e Inversión: Seguimiento del saldo acumulado histórico total.
    • Disponible Neto: Cálculo automático del balance disponible actual (Ingresos acumulados − Gastos acumulados − Ahorros − Inversiones).
  2. Visualización Gráfica (Chart.js):
    • Gráfico de barras comparativo de Ingresos vs. Gastos del periodo.
    • Gráfico de donut con la distribución global del patrimonio.
    • Gráficos de donut con el desglose por categorías de gastos e ingresos.
  3. Desglose de Categorías:
    • Tablas explicativas agrupadas por categoría para identificar rápidamente los principales orígenes de ingresos y destinos de gastos.
  4. Registro de Pasos Diarios:
    • Control de actividad física con historial interactivo de los últimos 30 días y notas personalizadas.
  5. Arquitectura y Migración Segura:
    • Sistema de actualización de base de datos basado en cci_db_version y plugins_loaded que garantiza la cero pérdida de datos durante actualizaciones o desinstalaciones accesorias.
    • Uso de tablas dedicadas en la base de datos (wp_indaga_contabilidad y wp_indaga_pasos).

Descargar Contabilidad Casera Indaga v1.7.0

Novedades e Implementaciones de la Versión 1.7.0

La versión 1.7.0 del plugin Contabilidad Casera Indaga representa un importante salto cualitativo en la gestión financiera y el análisis de datos. A continuación se resumen los cambios principales:


1. Sistema de Presupuestos Mensuales

  • Pestaña dedicada: Se incorpora la pestaña «Presupuestos Mensuales» en el panel de administración.
  • Límites por categoría: Permite definir un límite máximo de gasto mensual para cada categoría (ej. Comida, Ocio, Luz).
  • Barras de progreso dinámicas: Muestra visualmente el porcentaje consumido en el mes actual mediante un código de colores por umbral:
    • Verde: Menos del 80% consumido.
    • Naranja: Entre el 80% y el 99% consumido.
    • Rojo: Presupuesto alcanzado o superado (≥ 100%).
  • Base de datos: Creación de la nueva tabla wp_indaga_presupuestos para almacenar los límites de gasto de forma independiente.

2. Exportación de Datos a CSV

  • Movimientos contables: Descarga directa de todo el histórico contable en formato CSV desde la pestaña de Gestión Financiera.
  • Historial de actividad: Descarga del registro completo de actividad física desde la pestaña de Pasos.
  • Compatibilidad con Excel: Configuración con codificación UTF-8 con BOM y separadores por punto y coma (;) para una lectura directa en Microsoft Excel.

3. Nuevos Gráficos e Inteligencia Visual

  • Evolución Mensual (Ingresos vs. Gastos): Gráfico de líneas interactivas que refleja la tendencia de entradas y salidas de los últimos 6 meses.
  • Optimizaciones visuales: Ajuste de diseño y paletas de colores dinámicas para los desgloses por categoría y distribución patrimonial global.

4. Actualizaciones de Arquitectura y Seguridad

  • Actualización segura de BD: Migración automática controlada por cci_db_version a través de dbDelta, garantizando la conservación intacta de los datos existentes.
  • Seguridad reforzada: Implementación de verificaciones mediante nonces en la exportación CSV y la gestión de presupuestos.

CSS Anchor Positioning: Cómo posicionar elementos de forma nativa sin JavaScript

Valencia, 11/10/2026, G.B.
Durante mucho tiempo, colocar elementos flotantes como tooltips, menús desplegables o modales ha sido un pequeño quebradero de cabeza. Al final, siempre acababas tirando de librerías de terceros en JavaScript para calcular las coordenadas exactas y evitar que el menú se saliera de la pantalla al hacer scroll o redimensionar la ventana. Por suerte, la especificación web moderna nos trae una solución nativa fantástica: CSS Anchor Positioning.

Este artículo toma como referencia y se inspira en la excelente guía técnica sobre posicionamiento por anclaje publicada por Josh W. Comeau en su blog.

¿Cómo funciona el anclaje nativo en CSS?

La idea es tan simple como conectar dos puntos mediante etiquetas en nuestra hoja de estilos. Por un lado, le decimos a nuestro elemento de referencia cuál es su nombre de ancla y, por otro, vinculamos el elemento flotante a ese nombre.

Imagina que tenemos un botón clásico y queremos mostrar una pequeña etiqueta emergente justo al lado:

/* 1. Declaramos el nombre del ancla en el elemento de referencia */
.mi-boton {
  anchor-name: --boton-guardar;
}

/* 2. Vinculamos el elemento flotante al ancla */
.tooltip-nativo {
  position: absolute;
  position-anchor: --boton-guardar;
  bottom: anchor(--boton-guardar top);
  left: anchor(--boton-guardar center);
  transform: translateX(-50%);
}

Con apenas unas líneas de CSS puro, el navegador se encarga de hacer todo el trabajo matemático por nosotros, sin necesidad de cargar scripts pesados en segundo plano.

¿Por qué nos interesa en proyectos minimalistas como Indaga.net?

Para los que nos gusta mantener los sitios limpios y sin dependencias innecesarias, esta característica encaja de maravilla por varios motivos:

  • Cero dependencias de JavaScript: Al delegar el cálculo de coordenadas directamente al motor del navegador, ganamos en rendimiento y ligereza (Core Web Vitals).
  • Fluidez total: El elemento flotante se adapta de forma fluida a los cambios de tamaño, desplazamiento y rotación de la pantalla de manera completamente nativa.
  • Mantenimiento sencillo: Se reducen drásticamente las líneas de código necesarias para crear componentes interactivos.

Si quieres profundizar en todos los detalles técnicos, casos de uso avanzados y la compatibilidad actual entre los diferentes navegadores, te recomiendo echarle un vistazo al artículo original de Josh W. Comeau.

+ info en: https://developer.mozilla.org/en-US/docs/Web/CSS/Guides/Anchor_positioning/Using

Hacer pruebas en https://developer.mozilla.org/en-US/play

Copia y pega ese código:

<style>
  .indaga-demo-wrapper {
    display: flex;
    gap: 2rem;
    align-items: center;
    justify-content: center;
    margin: 2.5rem 0;
    position: relative;
  }

  /* 1. Declaramos el ancla utilizando la propiedad moderna */
  .btn-indaga-info {
    anchor-name: --mi-ancla-tooltip;
    background-color: #2563eb;
    color: #ffffff;
    border: none;
    padding: 0.75rem 1.5rem;
    border-radius: 6px;
    font-weight: 600;
    cursor: pointer;
  }

  .btn-indaga-info:hover {
    background-color: #1d4ed8;
  }

  /* 2. Vinculamos el tooltip flotante usando position-anchor */
  .tooltip-flotante {
    position: absolute;
    position-anchor: --mi-ancla-tooltip;
    
    /* Posicionamiento anclado nativo */
    bottom: anchor(top);
    left: anchor(center);
    transform: translateX(-50%);
    margin-bottom: 10px;

    /* Estilos visuales limpios */
    background: #0f172a;
    color: #ffffff;
    padding: 0.5rem 0.85rem;
    border-radius: 6px;
    font-size: 0.85rem;
    white-space: nowrap;
    box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1);
    
    /* Control de visibilidad mediante hover */
    opacity: 0;
    visibility: hidden;
    transition: opacity 0.2s ease, visibility 0.2s ease;
  }

  .indaga-demo-wrapper:hover .tooltip-flotante {
    opacity: 1;
    visibility: visible;
  }
</style>

<div class="indaga-demo-wrapper">
  <button class="btn-indaga-info">Pasa el cursor por aquí</button>
  <div class="tooltip-flotante">¡Tooltip posicionado de forma 100% nativa con CSS!</div>
</div>

Actualización del plugin Mis Plugins (control de plugins de Indaga.net)

Valencia, 09/10/2026, G.B.
Llevo ya unos cuantos plugins a medida y, como pasa siempre, llega un momento en que pierdes la cuenta de cuál tiene qué versión, aunque los subo todos a mi cuenta de pCloud. Así que hice lo que haría cualquiera: otro plugin. Se llama Mis Plugins (Control de Plugins Propios) y es el catálogo donde apunto todos los demás. Puedes descargarlo desde mi cuenta de pCloud.

Qué hace

Guarda en su propia tabla de la base de datos una ficha por cada plugin, con estos campos:

  • Fecha, solo mes y año
  • Nombre y versión
  • Autor
  • Descripción
  • Tags, separados por comas
  • Enlace de descarga

Desde el panel de administración se crean, editan y eliminan fichas con un formulario sencillo. Y si me equivoco al rellenarlo, el formulario conserva lo que había escrito — antes me lo vaciaba y tocaba empezar de cero, que escuece.

El shortcode

Para enseñarlo en cualquier página o entrada basta con insertar (entre corchetes, []):

mis_plugins

Por defecto muestra diez plugins por página. Si quieres otra cifra (lo mismo, entre corchetes):

mis_plugins por_pagina="10"

El visitante puede buscar por nombre, versión, autor, descripción o tags, y ordenar el listado por fecha, nombre, versión o autor. La paginación funciona con parámetros por URL, sin recargas raras.

De tabla a bloques

La primera versión mostraba todo en una tabla, con una columna por campo. En el papel quedaba muy ordenado, pero en pantalla no había quien lo leyera: descripciones apretadas, tags cortados y en el móvil, ni hablar.

Ahora cada plugin es un bloque independiente: arriba el nombre y la versión, debajo la fecha y el autor, luego la descripción, los tags y el botón de descarga. Como ya no hay cabeceras de columna, el orden se elige con una barra «Ordenar por» encima del listado. De paso arreglé que la versión se ordenara como texto, así que 1.10.0 ya no aparece antes que 1.9.0.

Actualizar sin que WordPress se líe

Aquí viene la parte con anécdota. Para que WordPress reconozca el fichero como una actualización y no como un plugin nuevo, la cabecera tiene que conservar el nombre, la descripción y el autor tal cual, y lo único que cambia es el número de versión. A la primera entrega le había añadido una frase a la descripción, y eso ya basta para liarla.

Luego, al activarlo, me saltó un error fatal. Mi sospecha principal es que WordPress identifica un plugin por la ruta del fichero y no por su nombre. Si la ruta no coincide con la de la versión anterior, quedan los dos cargados a la vez y las funciones se declaran dos veces. La segunda posibilidad era un detalle de sintaxis que no le gusta a las versiones de PHP anteriores a la 7.1. Corregí lo segundo, comprobé que no hubiera dos copias activas y a partir de ahí funcionó. Moraleja: antes de actualizar, mira cómo se llama el fichero que ya tienes instalado.

Porqué así

Como en el resto de plugins, la idea es la misma: un único fichero PHP, sin librerías externas, consultas preparadas, nonces y el patrón POST/Redirect/GET. La estructura de la tabla no cambió entre versiones, así que no se pierde ni un dato al actualizar, que es una promesa que me tomo en serio.

Puedes ver cómo queda en la página de Control de Plugins.

Blackstar, la obra maestra de David Bowie como carta de despedida

Ahora mismo volviendo a escuchar este álbum, antes de entregarme a los brazos de Morfeo…

Valencia, 08/10/2026, G.B.
Hablar de ★ (pronunciado Blackstar), el vigésimo quinto y último álbum de estudio de David Bowie, es adentrarse en una de las obras conceptuales y despedidas artísticas más deslumbrantes de la historia de la música contemporánea.

La obra maestra como carta de despedida

Lanzado el 8 de enero de 2016 —coincidiendo exactamente con el 69º cumpleaños de Bowie— y apenas dos días antes de su fallecimiento el 10 de enero, Blackstar no fue un disco más en su discografía: fue su obra final concebida minuciosamente como un regalo de despedida para sus seguidores y para la historia.

Durante meses, Bowie mantuvo en estricto secreto su diagnóstico de cáncer terminal. En lugar de retirarse en silencio, decidió transformar su propia mortalidad en una última performance artística.

Innovación e identidad sonora

En lugar de recurrir a la nostalgia o repasar sus grandes éxitos, Bowie volvió a hacer lo que mejor sabía: reinventarse y arriesgar.

Fusión y libertad estilística: Para la producción del disco (junto a su inseparable Tony Visconti), convocó a un quinteto de jazz neoyorquino liderado por el saxofonista Donny McCaslin y el batería Mark Guiliana. El resultado no es un disco de jazz tradicional, sino un híbrido fascinante de art rock, experimental jazz, drum and bass y texturas electrónicas de vanguardia (con influencias de artistas contemporáneos como Kendrick Lamar, Death Grips o Boards of Canada).

 

Minimalismo en el arte visual: Diseñado por Jonathan Barnbrook, fue el primer álbum de estudio de Bowie que no mostró su rostro en la portada, sustituyéndolo por una estrella negra troquelada sobre fondo blanco, repleta de simbolismos ocultos (como las subdivisiones inferiores que componen tipográficamente la palabra «BOWIE»).

 

Repertorio imprescindible

Con solo 7 canciones y poco más de 40 minutos de duración, cada tema tiene un peso específico en la narrativa del disco:
  • «Blackstar» (9:57): Una suite de casi diez minutos dividida en varias fases sonoras que combina cánticos litúrgicos, paisajes de ciencia ficción, ritmos sincopados y alusiones al ocultismo y a la trascendencia.
  • «Lazarus»: El centro emocional del álbum. Con su icónico e inquietante verso inicial («Look up here, I’m in heaven / I’ve got scars that can’t be seen»), anticipó vívidamente lo que ocurriría solo unas horas después de su publicación.
  • «’Tis a Pity She Was a Whore» y «Sue (Or in a Season of Crime)»: Dos cortes reestructurados desde sesiones previas, caracterizados por una batería frenética, secciones de vientos convulsas y un dinamismo abrasivo.
  • «Girl Loves Me»: Un experimento lírico en el que Bowie mezcla el Nadsat (la jerga inventada por Anthony Burgess en La naranja mecánica) con el Polari (el argot subcultural del Londres de mediados del siglo XX).
  • «Dollar Days» y «I Can’t Give Everything Away»: El cierre perfecto para la obra. Dos piezas impregnadas de melancolía, elegancia y aceptación, donde la voz y la armónica de Bowie se despiden dejando una huella imborrable.

Legado

Blackstar fue recibido con aclamación universal por la crítica y el público, obteniendo múltiples premios Grammy de forma póstuma. Más allá de sus méritos musicales, ha quedado grabado en la memoria colectiva como el testamento definitivo de un artista insustituible que convirtió su último aliento en arte puro.

Bonus Track

Escucha esta canción…

 

Plugin Solicitud de Congresos para organizaciones

Valencia, 08/10/2026, G.B.
He actualizado y consolidado el plugin Solicitud Congreso (versión 1.6.1), una solución nativa concebida para optimizar el procedimiento de solicitud, aprobación y registro de asistencia a congresos para cualquier tipo de organización, empresa o institución.

Principales Novedades y Funcionalidades

  • Soporte Completo para Documentos Adjuntos: Permite adjuntar documentación acreditativa (programas, cartas de aceptación, justificaciones económicas) directamente en el formulario. Admite hasta 5 archivos por solicitud (PDF, Office, imágenes) con almacenamiento en una ubicación privada y descargas protegidas por permisos.

  • Doble Confirmación por Correo Electrónico: Cada acción (alta, modificación o cancelación) genera una notificación automática para los gestores y envía una copia exacta de confirmación al propio usuario solicitante con el resumen y sus adjuntos.

  • Integración Frontend por Shortcode: Con solo incluir el shortcode solicitud_congreso (entre corchetes, []) en cualquier página privada o de la intranet, los usuarios pueden enviar solicitudes, consultar su historial y gestionar o descargar sus documentos adjuntos sin necesidad de acceder al panel de administración de WordPress.

  • Panel de Control de Administración: Los administradores disponen de una pestaña de gestión global para revisar todas las solicitudes registradas, ajustar la dirección de correo notificadora y consultar la guía rápida de uso.

Garantía de Rendimiento y Seguridad

Siguiendo las directrices de desarrollo de Indaga.net, el plugin ha sido construido con tecnología 100% nativa de WordPress (API de WPDB, Options API y Shortcode API), sin depender de librerías de terceros ni servicios externos. Además, cuenta con validación estricta de seguridad anti-CSRF mediante nonces y aislamiento total de archivos adjuntos para garantizar el máximo cumplimiento en materia de protección de datos y privacidad.

Solicitud Congreso — Versión 1.6.1

  • Nombre del Plugin: Solicitud Congreso

  • Versión Actual: 1.6.1

  • Autor: Guillermo Beltrán Pilato / Indaga.net

  • Dominio del Texto: solicitud-congreso

  • Propósito: Gestión, solicitud y control centralizado de asistencia a congresos nacionales e internacionales para cualquier empresa, institución u organización. Incluye panel de control en administración, formulario frontend por shortcode, gestión privada de adjuntos y notificaciones automáticas por correo electrónico (con copia de confirmación al solicitante).

Arquitectura Técnica y Especificaciones

  1. Gestión de Base de Datos:

    • Tabla nativa independiente: {prefix}congresos.

    • Clave primaria con auto-incremento e índice secundario por id_solicitante para optimización de consultas.

    • Mantenimiento automático de estructura mediante dbDelta() y verificación dinámica de versión en el gancho plugins_loaded.

  2. Seguridad y Control de Acceso:

    • Sanitización y Escapado: Uso estricto de sanitize_text_field, sanitize_email, absint, esc_url_raw, esc_html y esc_attr.

    • Protección Anti-CSRF: Implementación de nonces dinámicos para operaciones de guardado, edición, borrado y descarga.

    • Aislamiento de Recursos: Validación de rol (manage_options) para vistas globales de administración y restricción estricta por get_current_user_id() para usuarios estándar.

  3. Sistema de Adjuntos Privado:

    • Carpeta Protegida: Guardado en wp-content/uploads/solicitud-congreso/ aislada de navegación mediante archivo .htaccess (Options -Indexes, Deny from all).

    • Ofuscación de Nombres: Guardado en disco con identificadores aleatorios de 24 caracteres (sc_nombre_aleatorio). El nombre original se mantiene en la base de datos dentro de una estructura JSON.

    • Descargas Seguras: Flujo de descarga derivado con verificación de permisos y cabeceras anti-caché (readfile con Content-Disposition).

    • Límites: Hasta 5 archivos por solicitud (máx. 5 MB por archivo) en formatos PDF, Word, ODT, Excel, JPG y PNG.

  4. Sistema Doble de Notificaciones por Email:

    • Notificaciones automáticas HTML en eventos de creación, modificación o cancelación/eliminación enviadas al correo del gestor.

    • Copia automática de confirmación enviada directamente al correo del solicitante (a través del email de contacto o del usuario registrado en WordPress).

    • Adjunto físico de archivos en el correo cuando el tamaño total acumulado no supere los 10 MB.

  5. Integración Frontend y Backend:

    • Shortcodes: solicitud_congreso y solicitud_congresos (entre corchetes []).

    • Patrón POST/Redirect/GET: Gestión de estados y mensajes temporales entre redirecciones mediante transients por usuario (sc_aviso_ y sc_form_old_).

    • Caché: Prevención explícita de almacenamiento en caché en páginas privadas activando la constante

    • Descargar el plugin desde mi pCloud 

Ejemplo:

Debes iniciar sesión para gestionar tus solicitudes de congreso. Iniciar sesión

Compromiso de desarrollo: Porqué las actualizaciones de mis plugins nunca más perderán funcionalidades

Valencia, 05/10/2026, G.B.
Me he dado cuenta de que, tras lanzar algunas actualizaciones en mis plugins, he llegado a perder por el camino funcionalidades que eran importantes para mí y para quienes los usan. A partir de ahora mi intención y compromiso es: ninguna actualización volverá a dar un paso atrás.

Cuando desarrollamos y evolucionamos software, es fácil centrarse en la emoción de lanzar una nueva característica o refactorizar el código. Sin embargo, la verdadera calidad de un plugin no solo se mide por lo nuevo que aporta, sino por respetar y conservar la estabilidad de todo lo que ya funcionaba.

Las 3 reglas de oro para las próximas versiones

Para garantizar que cada nueva versión sea una mejora 100% acumulativa, he establecido un protocolo de desarrollo estricto basado en tres pilares:

Compatibilidad acumulativa y no regresión:
Antes de liberar cualquier versión (como las recientes iteraciones de Contabilidad Casera Indaga), se verifica minuciosamente que cada función previa (desde la exportación de datos a CSV con UTF-8 BOM hasta los gráficos de análisis, el seguimiento de actividad o los sistemas de presupuestos) se mantenga intacta y plenamente operativa.

Evolución segura de la base de datos:
Las migraciones de datos y las modificaciones de tablas se seguirán ejecutando de forma incremental mediante procesos seguros (dbDelta y control de versiones interno). El historial de datos y las configuraciones estarán siempre a salvo, sin riesgo de sobrescritura o pérdida de registros.

Auditoría de código previa al despliegue:
Cada actualización pasará por un proceso de revisión completa para asegurar que ningún hook, acción o vista de la interfaz quede fuera por descuido al integrar nuevas herramientas.

Creciendo con solidez

El software debe evolucionar para simplificar la vida, no para complicarla reaprendiendo lo que ya estaba resuelto. Con este compromiso, cada actualización en Indaga.net sumará valor real, manteniendo intactas la confianza, la usabilidad y la potencia de herramientas desarrolladas. Al menos esa es mi intención…

Resumen de las directrices de desarrollo de plugins (Indaga.net)

  1. Retrocompatibilidad Garantizada: Las nuevas funciones deben añadirse como capas opcionales. No se eliminarán ni romperán funcionalidades existentes en instalaciones previas.

  2. Cero Dependencias Externas: Desarrollo 100% nativo en WordPress. Sin librerías JS/PHP de terceros ni llamadas a APIs externas innecesarias, garantizando máxima velocidad, independencia y ligereza.

  3. Seguridad Nativa y Rigurosa:

    • Sanitización de entradas (sanitize_text_field, sanitize_email, etc.).

    • Escapado de salidas (esc_html, esc_attr, esc_textarea, etc.).

    • Validación anti-CSRF mediante Nonces (wp_nonce_field, check_admin_referer).

    • Control estricto de permisos mediante capacidades de usuario (manage_options, user_id).

De músicas de ayer y hoy… y más allá

«It does not matter how slowly you go as long as you do not stop.»- Confucius

Es lo que me encontrado como frase aleatoria antes de publicar esta e-reflexión…

Valencia, 04/10/2026, G.B.
Bueno, ya queda poquito para mi 59 cumpleaños (madre mía!). Pero «no problemo»,:»Talk to the hand. mate!».

Mientras tanto, bastante cansado pero con ganas todavía de guerra, me permito el lujo de escuchar un poco de música, antes de apagarme, de ir a dormir; ese espejo o hermano de la muerte, que creo que mencionaba Borges.

Bien, de Ringo Starr -el cual sigue en activo , impresionante!- al album de Songs of the Century de George Michel, y ahora Peter Murphy, quemo los últimos cartuchos antes de abrazar el sueño de Morfeo, o como se llame.

Todavía quisiera hacer más coas (y tal vez las haga), pero es un buen momento para decir «Adiós, Papá, adiós Mamá,. Consíguenos un poco de dinero más». Bueno, no, que estoy cansado y soy un viejuno.

Aquí va un pequeño momento musical, tal vez demasiado movido para el momento del sueño, pero así de contradictorios somos los humanos…

Nighties!

Bonus track