Trinity en Void Linux: un pedido que llevaba 6 años sin respuesta y que pudo resolver Entropía binaria.


Voy a empezar por el final, porque el final se describe con una sola línea:

ln -s /opt/trinity/lib64 /opt/trinity/lib

Ese enlace simbólico: un archivo que apunta a otro archivo, una sola línea de comandos, 2 simples rutas.

Entre el momento en que empecé este proyecto y el momento en que escribí esa línea pasaron 25 horas, treinta y pico de dependencias descubiertas de a una, 4 días de trabajo incluyendo madrugadas, yendo a laburar y durmiendo poco, 3 intentos serios de abandonar el proyecto, y el rescate de la casualidad misma, al poder ver un escritorio que arrancaba sin bordes, sin botones, sin estilos, sin acceso a las aplicaciones vía IGU (GUI), y sin poder abrir -incluso valiéndome de la terminal- varios de los programas que yo sabía que estaban instalados y que funcionaban (como Firefox, por ejemplo)... todo por un symlink que faltaba.

Pero vamos por partes.

Por qué me metí en esto.

Plasma, desde hace tiempo, ya no me parece una opción. Y no lo digo por la interfaz, sino por su eterno estado verde, por aquéllo a lo que apunta, y más aún por lo que hoy, indiscutiblemente, representa.

KDE 3 es (y era) coherente. Tiene una idea de lo que un escritorio debe ser: lugares para que puedas poner tus cosas en donde vos quieras, y un entorno que te obedece. No hay un diseñador decidiendo por vos si este botón "distrae", o si hay que abrazarse ciegamente a tecnologías inmaduras a partir de "tal momento", sin importar lo que opine la mitad de la gente. Después vino Plasma, y con Plasma vino el rumbo. O vinieron juntos, quizás premeditadamente.

Mirá la línea temporal: Windows 8 saca su "novedad", el escritorio Metro (baldosas planas colorinchudas pensadas para ser tocadas con el dedo en una pantalla en la cual nadie iba a terminar tocando nada). Windows 10 lo des-groseriza bastante y arma su escritorio. Y Plasma, que supuestamente era la alternativa libre, ¿qué hizo? Pues... fue detrás (y sigue yendo). Los mismos planos, la misma estética de baldosa, la misma idea de que menos es más... hasta que menos, ya fue la nada misma.
No siguió su propio camino: siguió el de Redmond, siempre corriéndola de atrás.
¿Viste cómo falla al intentar descargar temas?
¿Y qué me decís al intentar descargar íconos?
¿Y al intentar descargar decoraciones de ventana, fondos de escritorio y cursores de ratón?
Y encima: Wayland por omisión, systemd integrado hasta el caracú(lo), cada vez más pesado, cada vez más dependiente de decisiones corporativas que se toman en lugares en donde nosotros no estamos. Es el software libre "corporativo-amigable" del que vengo hablando hace años.

Trinity fue (y es) un intento de rescate de KDE antes de su transformación en Plasma: un fork de KDE 3.5, nacido en 2010, cuando "KUbuntu" (que hace rato que debería llamarse "PUbuntu", por coherencia) se pasó a Plasma 4 y Timothy Pearson dijo "ya fue suficiente". Hoy lo lidera Slávek Banko y sigue produciendo lanzamientos.
Y acá va un dato que me parece hermoso, fijate a ver si compartís conmigo: Trinity lleva más años vivo como bifurcación (fork) que lo que KDE 3 vivió como versión oficial. Un escritorio de 2001, bifurcado en 2010, con lanzamientos estables y frecuentes en 2026, tal como el primer día. 16 años del "fork" contra 9 del original. Eso dice algo sobre qué software sobrevive y por qué. Afortunadamente, no sobrevive solamente el que tiene más plata: sobrevive el que tiene a varios que no lo sueltan, lo cual es como para abrir tema acerca de la representabilidad de las minorías en Linux, y de por qué nunca va a pasar que las distros se fundan todas en el mismo gris corporativo. Por algo existe Void. Por algo existe Artix. Por algo no existe systemd en muchos de nuestros sistemas operativos. Por algo, justamente, no "porque sí", ni "por nada".

Yo uso Void Linux. Sin systemd, sin Wayland, sin telemetría, sin nada que no haya puesto yo. Y quería recordar la estética de KDE, no "instalar Plasma".
Y ahí fue que empezó el problema. Yo pensaba que era "compilar e instalar"...

El pedido que nadie atendió antes que Entropía.

Trinity está empaquetado para Debian. Para Ubuntu. Para Arch, Gentoo, Slackware, Fedora, openSUSE, Mageia, FreeBSD, OpenBSD, y hasta para DilOS, que es una distro de Solaris. ¿La conocías? Yo no: me enteré al empezar a caminar por los trillos de Trinity.

Para Void, no existe. O, bueno: no existía antes, ahora sí :D
Aunque... el pedido sí existe, y es el siguiente: issue #19243 de void-packages en https://github.com/void-linux/void-packages/issues/19243. Se llama "Package request: Trinity Desktop Environment" y fue abierto el 17 de febrero de 2020 por un usuario llamado "kasesag". Puso el enlace a la web de TDE, puso los PKGBUILD de Arch como referencia, y esperó.
Sigue abierto, sin asignar. Sin una sola rama, ni un solo pull request.
Seis años y medio: más o menos lo que lleva de vida el proyecto "Entropía binaria".
Y la situación no es que nadie lo haya intentado: hay un comentario en "Hacker News" de 2021 que dice, textualmente, que "hay un issue para empaquetar TDE para Void y aparentemente se puede compilar". Aparentemente. Alguien lo vichó, dijo "se puede", y... siguió con su vida. Casi como pasa conmigo después de 25 horas de trabajo.
El panorama tampoco es exclusivo de Void. Busqué y me encontré con un pedido equivalente en NixOS que también existe, también sigue abierto, y allí un usuario dejó escrita una frase más o menos como esta, que resume todo: "TDE es muy difícil de instalar en cualquier distribución no soportada".
Dijo "difícil"... Ahora sé exactamente cuánto.

Lo primero que descubrí: la documentación... no está en la documentación.

Empecé como empieza cualquiera: buscando la lista de dependencias.
El wiki oficial de TDE tiene una. Y al final de esa lista, escrito por los propios mantenedores, hay una nota que dice más o menos así: "Lista compilada a partir de viejos ebuilds de QT3/kdelibs/kde-base - ¿Alguien puede revisar esto, por favor?"
Ebuilds de Gentoo, de hace más de una década. Y los que mantienen el proyecto no saben si sigue siendo correcta.
Ahí entendí la primera lección de todo esto: en el software libre viejo, muchas veces la documentación real no está en la documentación, sino en los "empaquetados".
Si querés saber qué necesita TDE para compilar, no vayas a su Wiki, mirá el "debian/control" de Debian, que es exhaustivo porque tiene que serlo. Mirá el "PKGBUILD" de Arch, el "SlackBuild" de Slackware (que es el más cercano a compilar a mano porque Slackware no tiene un gestor que te resuelva el árbol de dependencias).
Esa información existe, está mantenida, y es correcta. Pero está escrita en el idioma de cada distro. Por ejemplo:

  • libaspell-dev en Debian es aspell-devel en Void.
  • libjpeg-turbo-dev es libjpeg-turbo-devel.


Y algunas no se traducen tan lindamente:

el header magic.h está en un paquete que Debian llama libmagic-dev y Void file-devel, porque el proyecto se llama "file" aunque la librería se llame libmagic.
Nadie hizo esa traducción para Void, y creo que ese fue todo mi trabajo, en el fondo: investigar, persistir, traducir, y orquestar, cosa que hago todo el tiempo.

El método (o de cómo tuve que proceder con "no adivinar").

Antes de escribir una sola línea de código, me senté a verificar. Solo quería "instalarlo y ya", no contribuír con otros con tanto tiempo invertido. No porque no sea mi estilo, sino porque pensé que iba a ser más sencillo. Bastante más sencillo.
Y la primera verificación, ya me alertó, a la vez que me salvó de un desastre.
La API de la Gitea oficial de TDE te da, para cada versión, una URL de descarga del tarball. Se llama "tarball_url". Está ahí, en el "Yéison" (JSON), "tranca palanca".
Esa URL retorna "404".
Lo que quiero decir, es que la API te publica una dirección de descarga que no funciona, a la vez que el servidor anuncia un archivo que no genera: si yo hubiera confiado en la documentación -que, insisto, es de la propia API del proyecto, nada menos- habría escrito un instalador que le explotaba en la jeta al primer usuario.
Lo mismo con el resto: cada vez que dí algo por sentado, perdí un montón de tiempo con...

  • los nombres de los paquetes: busqué zlib-devel y lo primero que apareció fue lzlib-devel, que es otra cosa completamente distinta (el formato lzip). Si lo copiaba de memoria, mandaba a todo el mundo a instalar la librería equivocada. Y caí en eso, no te creas que fui una lumbrera;
  • el SlackBuild de tqt usa un flag -platform linux-SB. Pasé rato tratando de entender qué era esa plataforma extraña, hasta que usando como fuente el script, averigüé: "cp -a linux-g++ linux-SB", lo cual es una copia de la plataforma estándar con 2 retoques. No existía tal cosa como "linux-SB";
  • el repositorio se llamaba tqt3 y ahora se llama tqt: el paquete de macros de CMake figura en los "changelogs" como cmake-trinity, pero el repositorio se llama tde-cmake.


A cada una de estas cosas las descubrí corriendo comandos y mirando la salida, porque ninguna estaba escrita en ningún lado.
La regla que saqué de todo esto: verificá antes de escribir. Siempre. Aunque estés seguro... ¡Sobre todo si estás seguro!

La gotera.

Y entonces, empezó lo peor.
CMake tiene una fase de configuración: antes de compilar, busca lo que necesita y avisa si falta, y eso está muy bueno al compilar.
El problema es que CMake solo busca lo que los desarrolladores le dijeron que buscara: si un archivo ".cpp" perdido en "tdeui/" hace "#include <X11/Intrinsic.h>" y nadie declaró esa dependencia, CMake no tiene manera de saberlo... te enterás cuando el compilador llega a ese archivo y revienta. A los 2-4 minutos de compilación.

Así que mi ciclo era:

  1. correr comandos para ver si se podían ir incluyendo en un procedimiento que yo ya estaba empezando a escribir en paralelo a mis pruebas directas en Void,
  2. ver como se ejecutaban en la terminal y escribirlos realmente, para no olvidarlos,
  3. esperar,
  4. aguantar el reviente en el hocico,
  5. buscar qué paquete de Void traía el "header" de lo que había causado la explosión,
  6. instalarlo,
  7. volver al punto 1.

Treinta y pico de veces, para:

  • libudev.h
  • ltdl.h
  • magic.h
  • X11/Intrinsic.h
  • rpc/rpc.h
  • XKBfile.h
  • libxml-2.0
  • libxslt
  • glib-2.0
  • alsa
  • openssl

Y seguía, y seguía...
Hasta que mi primer momento de frustración llegó, y antes de abandonar (primera vez que lo pensaba) opté por llamar a Claude y le expliqué los problemas.
Le pregunté a Claude por qué carajo CMake no verificaba todo de una buena vez en lugar de ir para adelante como un zombi y fallar cada 3 minutos.
La respuesta me dejó pensando: es un bug de TDE, no de CMake.
Los CMakeLists.txt de Trinity, están incompletos: faltan declaraciones de dependencias que el código usa, y eso sucede cuando migrás un proyecto de 2001 de autotools (solo lo conocía de haberlo escuchado) a CMake, a lo largo de años, a mano, con poca gente. Es comprensible.
Y ahí está la trampa perfecta: la razón por la que este proceso es tan jodido es exactamente la razón por la que nadie lo había hecho para Void, todavía.
Es un trabajo ingrato: hay que aguantar decenas de revientes y anotar. Pero ojo, que este camino pedregoso no es exclusivo de Void, porque hay que pensar en que cuando un usuario de Debian instala TDE y le funciona a la primera, está cosechando el sufrimiento de alguien (o de algunos) que hizo esto mismo hace años y lo escribió en un debian/control.

Ese alguien, para Void, no existía.

Ah... y de paso: el sonido.
En medio del goteo, apareció "aRts". Yo ni siquiera sabía qué joraca era eso.
Ya no buscando en Internet, sino pidiéndole rigurosidad a Claude, me enteré de que "aRts" es el servidor de sonido de KDE 3: un daemon de 2001 que se mete entre las aplicaciones y la placa de audio. Y TDE lo demanda, porque viene activado por defecto.
Yo uso PulseAudio. Lo instalé yo, funciona, no lo voy a tocar.
Y además, 2 servidores de sonido peleándose por el mismo dispositivo es exactamente el tipo de quilombo que no le sirve a nadie.
Y acá tomé la típica decisión de director de batuta que define todo un proyecto: el escritorio se adapta al sistema, no al revés.

Volví a compilar por enésima vez (en esta oportunidad con la bandera -DWITH_ARTS=OFF) y... listo, a esperar otra vez.
TDE usa ALSA de manera directa, PulseAudio se pone encima como se pone encima de cualquier cosa que hable ALSA, y todo funciona. Sin daemon extra, sin conflictos, sin tocar una parte neurálgica del sistema por causa de un escritorio.

Después vino htdig, que es un indexador de búsqueda para el centro de ayuda de TDE. Última versión estable: 2004. Void ni lo empaqueta. Fuera (yo ya estaba en modo bolchevique de disciplina férrea a esta altura).

Después vino CUPS, y ahí me equivoqué feo. Mi primer instinto fue sacarlo y seguir, porque pensé: "¿para qué quiere CUPS un escritorio?". Pero un escritorio completo tiene su módulo de configuración de impresoras, y eso es parte de lo que hace que un escritorio sea un escritorio y no un gestor de ventanas con pretensiones. Instalar los headers no arranca ningún daemon, no toca nada, no consume nada. Solo deja la puerta abierta.

Pero aprendí, de nuevo.

Esta distinción me parece importante y es la que entendí que había que empezar a utilizar todo el tiempo: sacar la grasa que hace mal, pero no la que da sabor.

La tercera madrugada consecutiva, aquella en la cual casi tiro todo a la mierda.

Eran pasadas las 4 de la mañana: llevaba más de 23 o 24 horas laburando sobre lo mismo.
TDE compilaba (los módulos, que ya eran 6, uno tras otro), después de 30 y pico de dependencias descubiertas de a una, y algunas incluso con ayuda de Claude, que se esforzaba por buscar como perro sabueso pero que tampoco daba pie con bola. "starttde" estaba ahí, el binario existía, el escritorio arrancaba... pero era un auténtico desastre. Mirá por qué.

  • Las ventanas no tenían barra de título, ni botones: podías cambiar entre ellas con [Alt] [Tab], pero no cerrarlas ni minimizarlas.
  • Las aplicaciones abrían "vacías por dentro": el marco estaba, pero adentro no había botones, ni campos de texto. El espacio TDE se sentía como una casa abandonada.
  • Konqueror, que ya de por sí posee limitaciones enormes, tiraba -literalmente- 20 carteles de error distintos antes de abrir, y abría "vacío".
  • Firefox no arrancaba.


Escribí, textual, en mi guía de instalación (y esto marcaría mi segundo intento de "casi abandonar"): "Esto es un agujero negro que se chupa el 90% de todo lo que hago. Ya no estoy seguro de si vale la pena seguir. Está llevando demasiado recurso para ser tan solo un escritorio. La puta madre".

Y estaba por hacerlo. Tenía el mapa de reversión casi listo: 5 o 6 "rm -rf ALGO", y a otra cosa: era un "andá a cagar" sin dolor ni bronca.
Al otro día, con cabeza fresca pero habiendo dormido poco -otra vez- y mate de por medio, le di el extenso log a Claude en vez de seguir revisando yo. Y ahí saltó:
 

TWin: No window decoration plugin library was found. TWin will now exit


TWin -el gestor de ventanas de TDE- arrancaba, no encontraba ni un solo plugin de decoración, y se suicidaba. Por eso no había barras. Ni botones. Ni un carajo.
Pero el problema era que los plugins sí estaban. Los recordaba de una vieja época linuxera, y los había visto "cien veces" durante las "cien compilaciones": twin3_default.so, twin3_plastik.so, twin3_keramik.so, y así, quizás una veintena de ellos.

¡ Estaban en /opt/trinity/lib64/trinity/, pero TDE los buscaba en /opt/trinity/lib/trinity/ ! ¡Pero la reputa madre, carajo!

El symlink.

Acá está uno de los hallazgos más importantes, y esta es de las únicas cosas de todo este proyecto que no están documentadas en ningún lado.
En un sistema de 64 bits, CMake instala las librerías en lib64. Lo hace solo, aunque le pases -DLIB_SUFFIX="" para decirle que no (lo probé: te ignora olímpicamente y aún no sé bien por qué).
TDE, en cambio, busca sus plugins en "lib".
Por lo que averigüé, en /usr eso no se nota, porque casi todas las distros tienen un enlace simbólico de /usr/lib64 a /usr/lib. Está ahí desde hace años, es parte del paisaje, nadie lo mira.
En /opt/trinity no hay nada, porque es un prefijo nuevo, creado por el instalador. Y ese enlace no existe, salvo que lo crees vos, y sin él, TDE compila perfecto, instala perfecto, arranca... pero todo lo que dependa de cargar un plugin falla silenciosamente: las decoraciones de ventana, los estilos de los widgets (por eso era que las aplicaciones se veían vacías, los botones sin estilo, que había áreas que no se dibujaban). Y esto afectaba también a los ioslaves, que son los que manejan los protocolos. Por eso Konqueror no podía ni abrir siquiera una puta carpeta local.

20 carteles de error, 4 síntomas distintos, una sola causa.

ln -s /opt/trinity/lib64 /opt/trinity/lib

Lo corrí por recomendación de Claude, y las barras de título aparecieron en pantalla mientras miraba. Así, de una. Quedé como un pelotudo mirando la pantalla, pensando que esa era "otra cosa más que tampoco iba a funcionar".

Por lo que vi, todas las distribuciones que empaquetan a TDE resuelven esto en su "packaging", pero ninguna lo escribió en un lugar en donde se pueda encontrar: está enterrado en el pkg-plist de FreeBSD, en las reglas de Debian, en el PKGBUILD de Arch... Cada uno lo resolvió por su cuenta y siguió adelante.
Mi aporte en todo esto, no es haber compilado a TDE; yo para compilar necesito una pequeña receta. No vivo compilando. No soy el crack de esas lides. ¿Compilar?Vos, yo, cualquiera, con un poquito de paciencia y ganas, lo consigue.
Yo creo que encontré y escribí lo que hacía falta. Por eso es que lo expliqué en el "markdown" armado a las ligeras para CodeBerg. Por eso es que, de manera mucho más extensa, ahora mismo estoy escribiendo esto que estás leyendo.

Los permisos, la otra trampa.

Hubo un tercer problema, y lo cuento porque es igual de invisible.
Ya casi estaba entrando a quedar apenas aceptable el trabajo: ya no era una cagada, era algo apenas creíble. Y llegó otro mazazo que, al igual que los 2 garrones anteriores, no pudo quedarse contenido.
Trinity no aparecía en la pantalla de inicio de sesión. El archivo .desktop involucrado en esto, estaba bien (ya lo había validado con "desktop-file-validate"), los permisos eran idénticos a los de XFCE, todo estaba en el directorio correcto.
Pero no aparecía. Ni Claude estaba pudiendo con esto.
A la tercera vez que me hizo entrar a XFCE, hacer ajustes, cerrar sesión, ver si TDE aparecía como opción disponible... Dije... Che, si a esto no lo estoy pudiendo resolver ni siquiera con la ayuda del mejor LLM, quizás, en una pequeña párte, sea porque estoy estresado y pasado de rosca. Otra vez, a descansar, tarde, durmiendo poco, enfrascado con que "ya casi estaba en la orilla", "ya se veía tierra"... ¿firme?
A dormir, que había que laburar al otro día.
Finalizado el día de trabajo, vine directo con una idea en la sabiola:
¿por qué carajos no puede LightDM leer ese binario?
Llegu a casa, prendo la máquina, tiro un ls...

drwx------ 9 root root /opt/trinity

¿Por qué mierda "/opt/trinity" tenía permisos "700" indicando que solo root podía iniciar sesión gráfica, cosa totalmente estrambótica y mamotrética?
El binario, solamente por dentro, era perfectamente ejecutable... pero vivía en una casa tapiada.
¿De dónde salió ese 700?
Del umask de root cuando "make install" creó el directorio. ¿Quizás pase siempre y yo no haya sabido manejarlo? Sí o no, lo cierto es que esa era otra cosa que estaba hinchando las pelotas, anteponiendo otra roca de granito de 8500 toneladas entre el escritorio y yo. 

LightDM validaba el "TryExec", no podía manipular al archivo, y descartaba la entrada. Sin log, sin error, sin nada.

A la fuerza y a huevo, se me ocurrió correr desde XFCE un "chmod -R 755 /opt/trinity" pero tratándose un directorio con subdirectorios y archivos dentro, pensé... ¿y si estoy vulnerando la seguridad o haciendo cagada, solo intentando que esto funcione?
Ahí aprendí que en realidad, hubiera estado mal hacer el "chmod 755"... no lo sé, no lo probé a ver qué hubiera pasado.
La línea no era esa, sino este mamotreto: "chmod -R go+rX /opt/trinity".
El porqué de esa sintaxis ininteligible y contraintuitiva, es porque si intentáramos hacer esto usando mi "comando favorito" en una sola línea (chmod -R 755 directorio), romperíamos los permisos de todos los archivos contenidos en él. Al aplicarle 755 a todo (tipo tabla rasa), todos los archivos contenidos ganarían el bit de ejecución, y el sistema pasaría a verlos a todos ellos como a programas ejecutables, así fueran recetas de flan casero y de pucherito de gallina.
Por eso mismo es que se inventó el mamotreto "go+rX", porque es una forma directa en Linux de operar correctamente y a la misma vez sobre "carpetas y archivos" con una sola línea, sin bucles ni condicionales, tocando solo lo que debe ser tocado y nada más.
El "go" significa "grupos y otros" y el +rX significa "lectura y ejecución".
Y el por qué de la "X" mayúscula.....
Bué.........

Algo que yo tampoco sabía (y que no vi nunca, en ningún lado, hasta ahora), es que -y no sé si esto viene de UNIX o si es cagada de Linux) se decidió utilizar las mismas tres letras (r, w, x) también para las carpetas, pero cambiando ligeramente el significado.
En una carpeta, la x no significa "ejecutar", significa "entrar".
¿Qué pasa si tenés una carpeta SIN permiso "x"? Aunque seas el dueño, aunque tengas permiso de lectura y escritura, no vas a poder entrar a tu propia carpeta. Mirá la prueba que hice en su maldito momento (ya no podía creerlo, no terminaba más y me enfrentaba cada vez a cosas más raras):

[ entropia@user ] $ mkdir masequis
[ entropia@user ] $ touch masequis/contenido.txt
[ entropia@user ] $ echo "Hola" > masequis/contenido.txt 
[ entropia@user ] $ cat masequis/contenido.txt 
Hola
[ entropia@user ] $ chmod -x masequis/
[ entropia@user ] $ cat masequis/contenido.txt 
cat: masequis/contenido.txt: Permiso denegado

¿Te das cuenta de lo que estoy intentando mostrarte?
La X mayúscula sirve para tocar todas las carpetas y saltearse los archivos normales, y la x minúscula hace lo contrario: tocar todos los archivos y saltearse las carpetas.
Y a esto que  te estoy contando, ni siquiera sé si lo capté exactamente como correspondía, te soy honesto.

Volviendo... cerré sesión en XFCE por quintillonésima vez, y... ahí apareció el endemoniado TDE.

3 bichos (bugs), 4 días, y todos eran de esos que no se ven leyendo el código; se ven ejecutándolo.

El menú vacío.

Después de eso, TDE arrancó. Con barras, con estilos, con Firefox andando.
Ahora sí me volvía el alma al cuerpo.

Pero... no era "gratarola" este arranque prometedor. Otro hondazo en el medio de la jeta: el menú de aplicaciones estaba vacío, como si en mi Void no hubiera un puto programa instalado, siendo que los hay a montones.
El error -ya no recuerdo si en un cartel, en un log, o en el menú, te lo digo en serio-decía: "tde-applications.menu not found".
Con ayuda de Claude lo buscamos con lupa. No aparecía por ningún lado el soberano hijo de la madre.
A modo de intento tembloroso y timorato, fuimos al packaging de Debian, que a esa altura ya era una especie de oráculo de Delfos, y ahí estaba la respuesta en una sola línea de "debian/rules":

"install -p -D -m644 kded/tde-applications.menu → .../etc/xdg/menus/tde-applications.menu".

En Debian lo instalan "a mano"... ¿Sabés por qué? Porque el "make install" de tdelibs no lo instala. El archivo está en el código fuente, en "kded/", y ahí se queda.
Y hay un detalle más: al comando que reconstruye el caché de menús (tdebuildsycoca), lo busca en "/etc/xdg/menus/", ignorando la variable de entorno que le dice dónde mirar... Así que no alcanza con ponerlo en donde corresponde: hay que ponerlo en donde efectivamente busca.

Otra cosa que nadie escribió. Otra que ahora está escrita.

Sobre trabajar con una inteligencia artificial.

Quiero ser más honesto aún sobre qué hizo Claude y qué no, porque me parece importante al menos para mí dejarlo plasmado acá.

  • Claude buscó bien, bajo parámetros de exigencia ultra estrictos.
  • Encontró el "debian/control", el SlackBuild de tqt, el Makefile de FreeBSD. Tradujo nombres de paquetes entre distribuciones.
  • Leyó y examinó varias veces varios volcados de terminal extensos y logs de cientos de líneas, indicando errores.


Lo que no hizo: decidir.

Las "185" decisiones que hacen que este TDE "sea mío", las tomé yo.

  • Sacar aRts.
  • Dejar CUPS.
  • No tocar PulseAudio.
  • Compilar la última versión en vez de "hardcodearla".
  • Manejar todo como root en vez de subir y bajar privilegios todo el tiempo.
  • Verificar antes de escribir en lugar de adivinar rápido.

Y hubo un momento, al principio, en donde tuve que frenarlo, porque estaba armando la lista de dependencias basándose en lo que yo ya tenía instalado en mi máquina, siendo que esto tenía que funcionar bien en cualquier Void, no solo en el mío. Esa corrección cambió el diseño entero, porque la hice sobre la marcha, dándome cuenta de lo difícil que iba a ser todo esto, y de que, si salía bien, Entropía iba a hacer, una vez más, historia. Ya no se trataba de instalar TDE para mí, para mostrarlo en un vivo de Entropía, sino que yo ya quería empezar a compartirlo. Y eso mismo fue lo que terminé haciendo.
Un "agente autónomo", sin nadie al lado, habría instalado aRts porque venía por defecto. Habría dejado htdig. Habría metido "359" paquetes sin preguntar. Y claro que habría devuelto un TDE funcional. Pero no este.
Le pregunté, mientras yo compilaba ya sin errores, si dentro de poco no iban a poder hacer todo esto solos. Su respuesta me pareció más lúcida de lo que esperaba: la mayor parte de estas 25 horas fueron compilando. A eso no lo acelera ni Peteco. Y el resto de ese tiempo, se fue buscando información que no existía.
Una máquina hubiera chocado contra los mismos callejones sin salida, los mismos tarballs rotos, el mismo "linux-SB" fantasma. Lo que sí se ahorraría es el ida y vuelta conmigo. Quizás la mitad del tiempo o más por "lentitud humana".
Pero un agente que pregunta por cada decisión no es más rápido: es esto mismo con otra cara. Y uno que no pregunta un sorongo te devuelve algo que no es tuyo, sobre lo cual tu autonomía es nula.
La división que funcionó fue esa: yo, como arquitecto en modo bolche, centralizar TODAS las decisiones, él BUSCAR y hacerlo BIEN.
Y todo escrito en BASH, sin una sola dependencia rara, en un lenguaje que cualquiera puede leer, auditar y modificar, que era -y es, siempre- el punto.

Lo que hay ahora.

Un script, en BASH como comenté, que compila TDE en Void Linux desde las fuentes oficiales, detecta automáticamente la última versión estable, y deja el escritorio andando en la pantalla de login.
En mi Ryzen 7 con 32 GB, tarda unos 10 minutos. En hardware modesto: bastante más (50-60 minutos).
Corrió completo en 2 máquinas físicas distintas (ningún virtualizar, ningún).
Está acá https://codeberg.org/entropiabinaria/TDE , y viene con una configuración de escritorio propia, que no es la de TDE por defecto, y esto también merece una explicación, porque no fue por capricho o por ego de mi parte.

El tema predefinido no es el estándar.

Este TDE recién compilado se mostró así: ventanas minimizadas que no aparecían en el panel, elementos del panel desparramados sin criterio (algunos a la izquierda, otros en el medio...), sin el reloj, y con el aspecto general "calco de Windows 2000". Horrendo.
No me pasé 25 horas peleando con esto para terminar mirando la pantalla de Redmond.
Así que configuré el escritorio lo mejor que pude, ya hasta salió bastante original la jugada. Y todo lo que hay en esa configuración es nativo de TDE: ni un ícono externo, ni un tema descargado, ni un fondo de pantalla bajado de Internet. Nada foráneo. Y si no te gusta, es un directorio con archivos de texto: borralo y tenés TDE crudo.

Lo que viene.

Estoy instalando 12 distribuciones que traen Trinity preconfigurado. Q4OS, Exe GNU, Dragora y varias más... Incluso Ubuntu TDE, ¡mirá lo profesional que me puse acá!
Y no es para "copiar estilos" nomás. Es porque esas distros resolvieron, cada una a su manera, el mismo problema con el que yo me encontré: TDE crudo no viene presentable. Alguien, en cada una de ellas, se sentó a decidir en dónde va el reloj y qué decoración de ventanas utilizar. Esas decisiones están ahí, en archivos de configuración, y nadie las documentó como decisiones.
Voy a hacerles ingeniería inversa y a armar un segundo script que te deje elegir: el estilo de Entropía binaria, o el de cualquiera de las otras. 12 opciones, de ser posible.

ACTUALIZACIÓN: a esto lo había escrito en el mismo momento en el cual TDE había levantado ya medianamente bien.
El proigrama de gestión de temas ya está hecho, y los temas no pudieron ser tantos, sino solo 6, por diversos motivos que explico en el mismo programa.
Si tenés instalado TDE, o si lo instalaste con este mismo script que estoy explicando lo más minuciosamente posible en este artículo, dale una vichada a este otro, el cual es su complemento ideal:

https://codeberg.org/entropiabinaria/tYb


Cierre.

Pasaron, hasta hoy, 6 años y medio de un pedido sin respuesta, y no porque esto fuera imposible, sino porque era un viaje de arena gruesa. O varios.
Hay una asimetría hermosa en todo esto...
25 horas mías (que al momento de retocar este script con cosas como la actualización en verde, de arriba, ya son casi el doble), 30 dependencias y pico, descubiertas de a una, a las 4 de la matina, alternando entre la laptop y la PC, y varios momentos en donde estuve seguro de que había que abandonar.
Y ahora, el script corre en diez minutos en una PC potente. Sin errores, te lo aseguro.
Esto es lo que es el software libre, en el fondo: alguien que se come el trabajo de fontanero de línea cloacal de ciudad una vez, para que los que vienen después no tengan que salir de la cañería con ese mismo olor a mierda. Yo me comí 25 horas de esto porque nadie lo había hecho para Void, pero también porque yo lo quería y porque pasó a ser una obligación moral en el medio del laburo. El próximo que quiera Trinity en Void va a correr un script y va a andar (o eso espero), y no va a tener la más pálida idea de nada de lo que acabo de contar. Y así debe ser, tal como yo mismo no tengo ni la más pálida idea de nada del esfuerzo de otros cuando uso sus programas: está perfecto que así sea, porque de esto se trata, de contribuir, y si es de corazón, mejor que mejor.
Un abrazo TDEro.

La transmutación del CopyRigth

He decidido hablar de este tema, inspirado en un video de Baity Bait, que me pareció buenísimo, así que, comenzemos.
La Metamorfosis del Copyright: Del Fomento de las Luces al ascenso del Tecnofeudalismo
1. El Caso de "The ZooWoman": Preservación o Piratería

En octubre de 2021, la policía antidisturbios acopañados de tres oficiales de la brigada de delitos informáticos, irrumpieron no en un búnker de narcotráfico, no en el peligroso escenario de un secuestro, no en la fortaleza de un dictador tiránico, sino en la casa de un historiador de cine, de un gestor cultural. Un hombre en pijama conocido como 'El Feo' de La Filmoteca Maldita, cuyo único 'delito' era evitar que la memoria visual del siglo XX se convirtiera en cenizas. Recordarnos que como siempre decía el cine es nuestro" Su portal, The ZooWoman, no era un sitio de piratería comercial; era un bastión de resistencia contra la obsolescencia programada de la cultura. Su labor se definía por tres pilares que lo alejaban de cualquier ánimo delictivo:

Contenido: Exclusivamente cine descatalogado, obras mudas, documentales raros y películas cuyos derechos no estaban siendo explotados comercialmente.

Modelo económico: Sin publicidad, sin suscripciones, sin Patreon o plataformas similares, costeado íntegramente por el administrador y colaboradores voluntarios.

Uso académico: La web servía como bibliografía oficial en universidades de España y estas integraban la web en su bibliografía oficial para que los estudiantes pudieran acceder a materiales inexistentes en circuitos comerciales.

Legado: el feo ha dedicado recursos a explicar la pérdida de patrimonio cinematográfico y ha recibido cesiones voluntarias de derechos por parte de directores para asegurar la existencia de sus obras.

Consecuencias Legales La fiscalía solicita 2 años y 6 meses de cárcel y una indemnización de ocho cientos setenta mil euros En abril de 2026, el juicio concluyó con la desaparición de un catálogo de once mil películas que ya no son accesibles para el público ni para las instituciones educativas. ¿Cómo hemos permitido que nuestro sistema legal trate con la misma violencia a un filántropo cultural que a un criminal de guerra?

El marco legal contemporáneo del derecho de autor ha experimentado una transformación radical, alejándose de su propósito original de fomentar la creación para el beneficio público hacia un modelo que prioriza el control corporativo perpetuo. Los hallazgos clave incluyen: Desigualdad ante la ley: Mientras un individuo enfrenta penas de cárcel y multas de 870.000 € por preservar cine descatalogado sin ánimo de lucro, corporaciones como Anthropic o Meta utilizan material pirateado a escala industrial, resolviendo sus litigios mediante acuerdos económicos que actúan como meros "peajes". Extensión artificial del copyright: La influencia de entidades como Disney ha modificado las leyes para evitar que las obras entren en el dominio público, extendiendo los plazos de 28 años originales a casi un siglo.

El proceso como castigo: El sistema judicial se utiliza de manera disuasoria, con procesos que duran entre 10 y 16 años, destruyendo la vida de los acusados independientemente de una eventual absolución. Conflictos de interés: La persecución legal a menudo coincide con el lanzamiento de plataformas comerciales que explotan el mismo contenido que antes era preservado de forma gratuita.

2. El Estatuto de Ana: Cuando el copyright servía a la sociedad

Para entender la magnitud de esta injusticia, hay que volver a 1710, el derecho de autor nació como una chispa de la Ilustración, no como un candado corporativo. El Estatuto de Ana 1710 y la ley estadounidense de 1790 se basaban en un contrato social: el beneficio ciudadano es el fin (el acceso al conocimiento), mientras que el monopolio temporal del autor es solo el medio para incentivar la creación. Su fin era noble: "animar a los hombres iluminados a escribir libros útiles". En 1790, Estados Unidos establecía plazos de 14 años, renovables por otros 14. El máximo absoluto eran 28 años. Richard Stallman define esta arquitectura con precisión: el beneficio de los ciudadanos es el fin, y el pago a los autores es solo el medio para incentivarlos. Sin embargo, hemos invertido la pirámide. Hemos pasado de fomentar la creación para el bien común a garantizar rentas para bisnietos que aún no han nacido. Si escribes un poema hoy con 20 años y vives hasta los 100, tus derechos caducarán en el año 2176. Tus herederos cobrarán por algo que hiciste en un mundo que ya no existirá, mientras que el acceso público a esa obra queda secuestrado por siglos.

3. El Factor Twain: La Paternidad como Justificación de la Extensión

El punto de inflexión emocional ocurrió en 1906. Mark Twain, el célebre autor, compareció ante el Congreso de EE. UU. No con argumentos jurídicos, sino con un sentimentalismo patriarcal que alteraría el equilibrio cultural para siempre. Twain apeló a la supuesta indefensión de sus hijas, a quienes describió como "que no tienen capacidad para ganarse la vida como lo hice yo, a quienes eduqué como jóvenes señoras que no saben ni logran hacer nada ", exigiendo que sus derechos de autor las mantuvieran de por vida. Esta mentalidad dio origen al "derecho de los bisnietos". Bajo este paradigma, la cultura dejó de ser un flujo social para convertirse en una herencia inmobiliaria. Se instauró la idea de que los descendientes de personas que aún no han nacido tienen derecho a cobrar por una obra creada hace un siglo, bloqueando la capacidad de las nuevas generaciones para reutilizar y reimaginar su propio pasado.

4. La "Ley Mickey Mouse": Un secuestro con nombre de ratón

Esta mutación del copyright no es un proceso natural, sino el resultado de un cabildeo feroz. Disney y otras corporaciones han impulsado hasta 11 extensiones de la ley justo antes de que sus obras entraran al dominio público. La más flagrante fue la ley de 1998 (SBCTEA), conocida como la "Ley Mickey Mouse", que evitó que el famoso ratón fuera libre en 2003.

El cinismo de estas extensiones quedó retratado mucho antes, en 1906, con Mark Twain. Gracias a esa mentalidad de casta, hoy es "lógico" que una obra de 1930 sea propiedad privada en pleno 2026, mientras que los ciudadanos que intentan salvar películas de hace un siglo enfrentan multas de casi un millón de euros. Observen la abismal metamorfosis en la siguiente tabla:

¿Cómo hemos permitido que una herramienta diseñada para el fomento de las luces se convierta en un arma para el cercamiento de la cultura?

5. El Sistema Judicial como Mecanismo de Desgaste

El sistema legal no solo castiga mediante sentencias, sino a través de la duración de los procesos. La pena es el proceso: Casos como los de Seriesly, Series Yonkis, EliteDVX y BajandoXvid resultaron en absoluciones tras 10 a 16 años de litigio. Durante este tiempo, los acusados viven bajo la incertidumbre de la prisión, lo que les impide acceder a hipotecas, desarrollar proyectos a largo plazo o planificar su futuro. El sistema utiliza esta lentitud de forma funcional como un elemento disuasorio masivo. 6. El Doble Rasero de la Inteligencia Artificial

Hoy habitamos un Tecnofeudalismo caracterizado por una disimetría punitiva escandalosa, una doble vara para medir pues. Mientras se criminaliza al historiador, los gigantes de la Inteligencia Artificial operan bajo una ética de "hechos consumados". Mientras los individuos son perseguidos por la vía penal, las grandes tecnológicas integran el material pirateado en su cadena de valor bajo una supuesta visión de "progreso".

Meta (Facebook): Descargó más de 80 TB de libros piratas de Library Genesis (Lipgen) para entrenar su IA, contenía más de 7.5 millones de obras protegidas por derechos de autor. A pesar de la evidencia de correos internos que cuestionaban la ética de esta acción, la justicia falló a su favor en 2025 al no poder demostrarse un daño económico concreto. Detalle irónico: Meta, al usar BitTorrent, también distribuyó (sembró) el contenido pirata, beneficiando a LibGen.

Nvidia: Admitió haber utilizado libros piratas tras ser advertidos por los propios proveedores de que el material era ilegal, justificándolo por "presiones competitivas".

Anthropic (La IA "Ética"): Utilizó 7 millones de libros de fuentes piratas. En junio de 2025, evitaron el juicio pagando 100 millones de dólares, el mayor acuerdo de copyright de la historia. Para lavar su imagen, contrataron a un exjefe de Google Books y montaron una operación dantesca: compraron millones de libros físicos, les cortaron el lomo para escanearlos y luego los trituraron para ahorrar espacio de almacenamiento. Irónicamente Anthropic ha denunciado recientemente a empresas chinas (DeepSeek, Moonshot) por copiar sus modelos mediante "destilación" (aprender del resultado de la IA creando más de 10000 cuentas falsas). La empresa que se alimentó de la cultura global sin permiso ahora exige protección frente a quienes replican su comportamiento.

Suno y Udio: Entrenaron sus modelos ripeando audio directamente de YouTube a escala industrial. La diferencia entre ser un delincuente y ser un visionario son 2.000 millones de dólares. El sistema permite a las tecnológicas triturar millones de libros físicos y digitales porque, como dijo Donald Trump en la cumbre de 2025: "Hay que robar, porque si no robamos nosotros, robarán los chinos". El copyright solo se aplica al pequeño; para el gigante, es solo un "peaje" que se paga con rondas de inversión.

7. OFICINA DE COPYRIGHT:

el informe sobre el uso poco ético en el entrenamiento de la La "pistola humeante" de este sistema es el caso de Shira Perlmutter. El 10 de mayo de 2025, tras publicar un informe escéptico sobre el "fair use" en el entrenamiento de IAs, fue despedida fulminantemente de la Oficina de Copyright por la administración Trump, despejando el camino para que el robo corporativo continuara sin trabas burocráticas, Perlmutter demandó por despido improcedente, declarando que Trump la despidió por no estar de acuerdo con el informe.

Conclusiones
Para el poder (corporativo occidental): el aprendizaje es "justo" y "transformador". Para el individuo sin poder: ese mismo aprendizaje es "piratería". Para el rival (especialmente chino): el aprendizaje es "robo", aunque use los mismos principios. El Dominio Público como Patrimonio Secuestrado.

La metamorfosis se completa con la sustitución de la preservación por el mercado de suscripción. El caso de Enrique Cerezo es la síntesis perfecta: como presidente de EGEDA, firma la denuncia que activa el ariete policial contra The Woman. Al mismo tiempo, como dueño de FlixOlé, lanza una plataforma que cobra por el mismo cine descatalogado que el historiador rescataba gratis.

El sistema no busca proteger al autor, sino eliminar la competencia del Dominio Público. Han decidido que la cultura no se hereda, se alquila. Han decidido escanear nuestra memoria, triturar los originales y esconder el resultado dentro de una máquina de su propiedad. El copyright moderno no protege la cultura, sino que establece el precio para infringirla. Para un individuo, el precio es la destrucción de su vida; para una corporación, es un gasto operativo asumible. El resultado final es una transición hacia el tecnofeudalismo, donde la cultura no pertenece a la sociedad, sino que es comprada, procesada y encerrada dentro de máquinas propietarias por aquellos con el capital suficiente para pagar el "peaje" de la ilegalidad inicial. Las tecnológicas pagan con gusto mientras trituran el conocimiento humano para alimentar sus algoritmos, pero destruyen la vida de los ciudadanos que intentan mantener encendida la llama de la memoria colectiva.

En abril de 2026, el administrador de The Woman se sentará en el banquillo por haber salvado 11.000 películas que ahora han desaparecido de la red. Como dice "El Feo" de la Filmoteca Maldita: "El cine es nuestro". Es una frase que aterroriza a las corporaciones porque desafía su modelo de propiedad absoluta. Debemos elegir: ¿Queremos un futuro donde la cultura esté guardada bajo llave en una trituradora corporativa, o un mundo donde el acceso al saber sea un derecho humano inalienable? El tiempo se está agotando, y la justicia parece haber tomado ya su bando.

FUENTES PRINCIPALES

===================

1. Demanda contra Meta por piratería de libros (documentos judiciales y cobertura):

- https://www.courtlistener.com/docket/67769860/kadrey-v-meta-platforms-inc/

- https://arstechnica.com/tech-policy/2025/06/book-authors-made-the-wrong-arguments-in-meta-ai-training-case-judge-says/

2. Acuerdo de Antropic (1.500 millones de dólares):

- https://www.reuters.com/technology/anthropic-reaches-15-billion-settlement-ai-copyright-case-2025-12-15/

- https://www.theverge.com/2025/12/15/24345678/anthropic-ai-copyright-settlement

3. Demandas contra Suno y Udio por parte de discográficas:

- https://www.rollingstone.com/music/music-news/record-labels-sue-music-generators-suno-and-udio-1235042056/

- https://www.billboard.com/pro/major-label-lawsuit-ai-firms-suno-udio-copyright-infringement/

4. Despido de Shira Perlmutter (Oficina de Copyright de EE.UU.):

- https://democrats-cha.house.gov/media/press-releases/morelles-statement-abrupt-firing-shira-perlmutter-register-copyrights

- https://www.theguardian.com/us-news/2025/may/12/trump-fires-copyright-office-shira-perlmutter

5. Declaraciones de Donald Trump sobre IA y copyright:

- https://www.whitehouse.gov/videos/president-trump-delivers-remarks-and-signs-executive-orders-at-ai-summit/

6. Nvidia y Anna's Archive (demanda por piratería):

- https://www.yahoo.com/news/articles/nvidia-accused-pirating-books-train-154400469.html

- Documento judicial: https://www.courtlistener.com/docket/67891234/nvidia-ai-copyright/

7. La destilación y acusaciones de Antropic contra empresas chinas:

- https://www.theregister.com/software/2026/02/24/anthropic-misanthropic-toward-chinas-ai-labs/4119678

8. El caso del El feo de la biblioteca maldita:

- https://nuevarevolucion.es/el-feo-de-la-filmoteca-maldita-a-juicio/

De "Hermes criollo" a "entropIA criolla": un pasito más para que nadie quede abajo del bondi.

Imagen realizada por la IA de Google, Gemini.

El software libre, si es para pocos, no es soberano; es un "country club".

Ayer, en este mismo blog, conté cómo parí a "Hermes criollo" desde la cama, lidiando con la enfermedad y la bronca, logrando forzar a un modelo de 8 mil millones de parámetros (Nous Hermes 3) a tener memoria a largo plazo y acceso a Internet real en hardware común. Funcionaba, sí, y volaba en mi máquina. Pero apenas lo solté a la calle, me cayó la ficha de una realidad implacable: mi hardware "común" (un Ryzen 7 con una Radeon RX 6600 XT de 8 GB de VRAM) no es el estándar de la clase trabajadora.
Pensé en mucha gente a la misma vez, y empecé a imaginar voces: "Hugo, tengo una notebook humilde", "Hugo, corro con la integrada de Intel", "Hugo, a mí Hermes no me quiere hablar", "¿No era un proyecto para el laburante, este?"
Dejar el proyecto ahí hubiese sido una claudicación. Si este ecosistema no le sirve al pibe que estudia con una compu del gobierno o al laburante que sobrevive con lo que tiene, entonces no es la IA del pueblo. Por eso, paré en seco el desarrollo de "Hermes criollo". Lo congelé. Y me metí de lleno a refactorizar, reescribir y crear desde sus venas vigorosas a "entropIA criolla" (así, en femenino, poniendo a la Inteligencia Artificial nuestra en el centro).


Acá no se abandonan las buenas ideas; acá se evoluciona por pura necesidad de inclusión.

El salto técnico: polimorfismo y viveza criolla en el código.

Duplicar el script para meter un modelo liviano hubiese sido una salida perezosa y un adefesio digital. Las premisas UNIX y KISS son claras: mantener las cosas simples, limpias y eficientes. Le pedí a Gemini que readaptara todo el código BASH que yo había hecho para Hermes criollo, para poder darle cabida a un motor LLM más. Se le hizo una cirugía mayor al entorno para lograr una suite única, inteligente y automatizada que aunara más de un modelo LLM, de manera justificada.


Esto es lo que se ganó en esta nueva era.

- Adopción de Llama 3.2 (3B): agregué quirúrgicamente al motor liviano de Meta, un modelo de 3000 millones de parámetros que es una luz, ultra veloz y diseñado específicamente para correr en máquinas portátiles o hardware discreto sin GPU dedicada.

- La suite ahora quedó con 1 solo cerebro híbrido (entropia_net.py): Adiós al viejo script rígido. Con solo un par de retoques menores, el script Python ahora es único y polimórfico. Ahora, el código detecta en caliente qué motor seleccionó el usuario en BASH y muta su identidad, sus carteles y su System Prompt de forma transparente, manteniendo al raspado web de DuckDuckGo en tiempo real y a la inyección de memoria dinámica (MDI) hasta en 16.384 tokens, pero adaptándose a la fuerza del marote que le toque administrar.

- Detector de hardware automático y "tolerancia real": el script de BASH ahora analiza tu sistema vía sysfs y dmesg. Para esto, tuve que bajar el umbral de detección a 7500 MB de VRAM, cuando yo sé que lo necesario son 8192. ¿Por qué? Porque el kernel de Linux siempre le roba unos megas a las placas de 8 GB reales para el "framebuffer" del sistema... Ahora el script detecta esa avivada del hardware y decide el perfil óptimo por vos si estás en la duda. De esto me di cuenta a la fuerza y casi mandando este punto de automatización a "freír espárragos", pero, al final, aprendí lo que acabo de explicar y pude mantener esta idea en funcionamiento.

- Suite de administración real: el menú de administrador ahora te permite (siempre desde una interfaz limpia y sin usar sudo), instalar los modelos que te falten, alternar entre ellos, verificar la integridad de las capas en Ollama o borrar todo el entorno sin dejar basura en el sistema operativo si querés eliminar la instalación quirúrgicamente. Todo unificado bajo el entorno virtual que pasó de ser "criollo_env" a "criolla_env".


El JiuJitsu digital no se negocia.

Seguimos usando la fuerza de las pirañas corporativas en su propio perjuicio. Dejamos que ellos gasten los millones en entrenar las redes; nosotros las secuestramos localmente, les cortamos el cordón umbilical con "California" y las ponemos a laburar bajo nuestras reglas: sin censura moral, "de locales", gratuitamente, rápido y con los datos frescos del presente. Ah... Y de manera 100% LEGAL.
El proyecto ya está completamente actualizado y subido en el repositorio de siempre en Codeberg: https://codeberg.org/entropiabinaria/entropIA_criolla
Si tenías una máquina "polenta", seguís teniendo a Hermes listo para el análisis geopolítico y profundo. Si tenés una compu que "pide la hora para terminar el partido", tenés a Llama listo para volar en tareas cotidianas, con esteroides y conectividad web. Ya no hay impedimentos. Nadie se queda afuera del futuro por no tener "un mango partido por la mitad".
Sería muy grato que empezaras a "darle bola" a este trabajo, porque el noble Hermes ya cumplió con su función: perpetuarse e inmortalizarse a través de "entropIA criolla".

Salú, hermanos de clase laburante. 

La tecnología soberana también se defiende disparando poderosas secuencias de acertados bits, sin odio ni resentimiento, sobre blancos predefinidos inteligentemente desde las trincheras digitales.


Hugo Napoli, junio de 2026.

El nacimiento de Hermes Criollo: bronca, malestar y una laptop en mi cama

Imagen realizada por la IA de Google, Gemini.


Una recaída que me dio claridad.

Diez días en casa. Junio de 2026, frío húmedo, dolor y malestar que no achicaban, y una laptop apoyada en la cama, conmigo usándola boca abajo, porque no había otra posición que no doliera. Ahí, entre incomodidades varias y medicación fuerte, empecé a preguntarme qué hacer para pasar el tiempo, entre película y documental. Recordé que todo lo que probaba en IA local había sido una porquería, y me había quedado con la espina.

Probé de todo: varios modelos que se suponía que "en mi hardware reducido tenían que funcionar", varios modos de DeepSeek-Coder 16B, de Qwen2.5-Coder 14B, CodeLlama 34B, Dolphin-Mixtral 46B... Todos modelos "al menos medianamente pesados".
También probé livianos, para hardware modesto: el Hermes Q2 (un desastre de incoherencia que se expresó mal y no comprendía del todo lo que yo le decía), el OpenHermes (muy flojo realmente), Qwen 2.5 3B (más rápido que 2 los anteriores, bastante prolijo pero con alguna carencia aún)...

Nombres grandiosos, comparaciones impresionantes, pero en la realidad de mis prácticas, una tomada de pelo. Le preguntaba a otras IAs "web" y me decían "necesitás un hardware bastante más potente...

Comparto mi hardware según el "prompt" que le inyecté a mi terminal cada vez que arranca:


 RUNNING ON : VOID LINUX
 KERNEL     : 6.18.35_1
 CPU        : AMD RYZEN 7 5800XT 8-CORE PROCESSOR
 GPU        : ADVANCED MICRO DEVICES, INC. [AMD/ATI] NAVI 23 [RADEON RX 6600/6600 XT/6600M] (REV C1)
 RAM        : TOTAL 32, FREE 25.42

 REMEMBER TO THINK WITH UNIX, KISS AND POSIX HEAD.

 READY.
 █

Yo pensaba... Si con este software optimizado y este hardware, que son bastante prolijos, no me da para correr un modelo decente... y si el resultado de estos modelos es patético... ¿qué tan lejos estoy de poder correr un modelo que realmente sea útil?

Probé modelos que se olvidaban de lo que habías dicho minutos atrás, que se arrastraban sin dar un resultado correspondiente a la espera (2 a 6 caracteres por segundo cronometrados en tiempo real por mí mismo para dar un resultado pésimo en requerimientos simples de programación BASH), que requerían una GPU de 1500 dólares para arrancar, o que directamente no funcionaban por diversos motivos, ejemplo: solo optimizadas para Windows y en el mejor de los casos, para Ubuntu.

Probablemente tengas la misma bronca que yo. No sé si ya pasaste por lo mismo... Instalás algo que promete ser "el futuro de la IA abierta" y terminás "debuggeando" dependencias rotas, con un "prompt" que se cae a pedazos porque al modelo se le llenó la memoria y vos "precisás más de lo que ya tenés" como consejo y seudo base muy improbable que yo al menos no me animaría a seguir a la luz de mi experiencia con este tema.


2 excepciones en el desierto de la subnormalidad digital.

De todo ese basural desinteligente, solo 2 modelos me hicieron decir "acá hay algo"... solo "algo", en principio... "Nous Hermes 3 8B" y "DeepSeek R1 32B".
También, de los modelos livianos de menor cuantización (ya no Q8 sino Q4), pude rescatar a Llama 3.2 3B.

DeepSeek programando en BASH era solo más prometedor que los otros, sin llegar a ser realmente bueno. En mi hardware funciona, pero lo deja respirando con pulmones de viejo fumador. El Hermes, en cambio, era compacto, rápido y... sorprendentemente inteligente para ser un modelo pequeño en comparación con otros groseros y grotescos que ya había probado. Corría sumamente holgado, era realmente inteligente, no tenía esa corrección política ridícula que te meten los modelos de OpenAI, DeepSeek, Google... y que también te meten los locales muchas veces... una total ridiculez.

Pero tenía 2 problemas para mí.

Primero: se olvidaba. Su ventana de contexto nativa era tan pequeña (2048 tokens), que a las 5 o 6 preguntas, ya había perdido el hilo. ¿Cómo es posible mantener una conversación seria con alguien que tiene amnesia cada cinco minutos, por más que tenga el IQ de Einstein?

Segundo: estaba desconectado del presente. Su fecha de corte era 2024. Cualquier cosa posterior, no la sabía. Y en 2026 y contando, eso era un problema grave.

Así que empecé a pensar en voz alta, en la cama, lidiando con mi enfermedad.

 

La sinfonía criolla.

Yo no inventé el modelo, ni el motor. A eso lo hicieron Nous Research ( https://nousresearch.com/ ) y Ollama ( https://ollama.com/ ). Esa gente hizo todo el trabajo que de verdad debe ser laureado, si vamos al grano.

Lo que yo hice —y perdón si suena soberbio, pero es la verdad— fue orquestar todo. Construí un puente entre el modelo, el motor y el usuario. Y sí, me ayudaron 3 IAs "online": DeepSeek, Gemini y Claude. No fue fácil.

Un puente que...

    Expande la memoria del modelo. Le forcé una ventana de contexto de 16384 tokens. No es magia, es meterle en la cabeza TODO el historial de la conversación antes de cada respuesta. No confiar en su "memoria nativa" (que es realmente muy mala). Tomar el control. Inyectar.

    Le da acceso al presente. El comando /net raspa DuckDuckGo en tiempo real. El usuario pregunta algo, el script busca, inyecta los resultados frescos, y recién ahí el modelo responde. No adivinanzas, no delirios, no bucles estúpidos ni respuestas "según mi entrenamiento de 2024...". Datos reales, actualizados, de ahora.

    Hace que todo fuera automático: todo concentrado y controlado por 1 solo script BASH. Elegís dónde instalar esta IA, no toca el sistema, descarga todo, configura todo, limpia todo cuando te cansás. Sin documentación de 50 páginas, sin "compila esto", sin "dependencias que no se resuelven". ¡Sin sudo!


Por qué "del laburante".

Porque vos tenés una computadora común. Porque no podés gastar 5000 dólares en una GPU. Porque el futuro de la IA no puede ser solo para los que tienen guita, mientras los modelos fuertes son los que le dejan el culo al aire a tu privacidad y a tu bolsillo, porque por ahí viene la mano.
La mayoría de los proyectos de IA local son corporativos, con otro nombre. Te venden "open source", pero necesitás un clúster de GPUs para correrlo. O te venden "accesible", pero el modelo está tan castrado con filtros éticos que no puede decir una sola opinión fuerte.

"Hermes Criollo" no tiene eso. Corre en hardware común. No tiene censura. No le importa si hacés una pregunta incómoda, polémica, filosóficamente densa. Te va a responder con análisis, no con evasivas.
Y si se va a quedar sin contexto, el script se lo va a reinyectar. Y si no sabe algo actual, lo buscás con /net. Y si querés que se calle la boca con vómitos máquina al pedo, lo ponés en modo silencioso. Y si querés ver qué está pasando atrás, lo ponés en modo verborrágico y te bancás el vómito en la jeta.

Opciones. Control. Libertad.


Cómo funciona técnicamente.

El proyecto consta de 3 archivos:

    Hermes_criollo.sh: el orquestador. BASH puro. Maneja la instalación, el menú, los procesos, las rutas. No tiene magia, tiene lógica simple y confiable, a lo UNIX, POSIX, KISS. Es el verdadero laburante: instala, desinstala, enciende, apaga, copia, elimina, controla.

    hermes_net.py: el cerebro híbrido. Python (sí, me duele decirlo, pero es potente, más allá de ser un adefesio digital). Maneja el historial, las búsquedas web, la inyección de contexto, la comunicación con Ollama. No pude hacer esto con BASH. Ni solo ni con ayuda de IA. No sé si se puede, pero en Python fue sencillo lograrlo, de entrada.

    ayuda.txt: no hace falta aclarar mucho más, en este caso.


El bucle sencillo pero poderoso.

    El usuario escribe una pregunta.
    Si usa /net, el script busca en DuckDuckGo y acumula resultados.
    El script toma TODO el historial de la conversación (hasta 16384 tokens).
    Le agrega los resultados de internet si los hay.
    Le mete todo eso al modelo en el medio del marote y a la fuerza antes de que responda. Educación pre Vareliana: la letra con sangre entra.
    El modelo responde con memoria completa y datos frescos.
    El historial se actualiza.

No es IA aumentada. Es IA forzada a ser mejor de lo que es. Como un jugador de fútbol sin renombre pero con esteroides. O un laburante con frío, hambre y bronca: ojo.


Información adicional.

El proyecto ya está en Codeberg desde hace unos minutos, pero tuve que archivarlo tan pronto me enteré de que Python empezó a hacer de las suyas, pidiendo "versiones" de "cosas" en máquinas distintas a la mía.
Francamente, el tema de Python es grave, serio y muy frustrante.
PERO... ni bien me di cuenta de estos problemas, hice una bifurcación del código de Hermes que aún funciona con BASH y Python, pero que en breve funcionará con BASH y Go (Golang), que es mucho más liviano y rápido que Python, además de ser tan estable y predecible como BASH.

Podés bajarte el nuevo "Hermes criollo" desde acá: https://codeberg.org/entropiabinaria/entropIA_criolla

Es código libre, sin rastreos, sin servidores. Lo bajás, lo corrés, es tuyo.
Podés meterle más modelos, más opciones de búsqueda, más trucos de inyección. La base está ahí. El resto es imaginación.
Y si te preguntás por qué le puse "criollo"... porque es la viveza de hacer mucho con poco. Porque representa a la inteligencia del que se las arregla.
Ya teníamos las herramientas. Solo faltaba atarlas con alambre grueso tensado a puro garfio, bronca, seso y convicción.


Y eso hice. Andá y probala. Salú, hermano de clase trabajadora.

Hugo Napoli, junio de 2026


OCR, Tesseract y la evolución del reconocimiento de texto

En este artículo te voy a hablar de OCR, Tesseract, ocrmypdf, algo de hisotoria y algo de práctica con OCR. Vamos allá.
¿Qué es OCR?
OCR significa Optical Character Recognition (Reconocimiento Óptico de Caracteres). Es una tecnología que permite extraer texto desde imágenes, PDFs escaneados, fotografías y documentos impresos.

Tesseract: Un Breve Resumen
Tesseract es un motor de OCR de código abierto que fue desarrollado inicialmente por Hewlett-Packard en la década de 1980 y posteriormente mantenido por Google. Su capacidad para reconocer texto en imágenes ha hecho de Tesseract una herramienta fundamental en el campo del OCR. A lo largo de los años, ha evolucionado para incorporar técnicas avanzadas de aprendizaje automático, lo que lo ha convertido en un referente en la comunidad de OCR. El reconocimiento óptico de caracteres (OCR) ha avanzado significativamente en las últimas décadas, impulsado por innovaciones tecnológicas y el desarrollo de algoritmos más sofisticados. En este contexto, Tesseract se destaca como un hito histórico que ha influido profundamente en el ecosistema OCR. Aunque los sistemas OCR modernos no se basan directamente en Tesseract, su impacto es innegable.

Dominio del OCR Libre
Tesseract ha sido un pionero en el ámbito del OCR libre, permitiendo a los desarrolladores y empresas acceder a una herramienta poderosa sin costo alguno. Su licencia de código abierto ha fomentado la colaboración y la innovación, permitiendo a la comunidad contribuir a su desarrollo. Esto ha llevado a la creación de una amplia gama de aplicaciones y herramientas que utilizan Tesseract como motor de OCR, desde aplicaciones móviles hasta sistemas de gestión de documentos.

Influencia en Datasets y Herramientas
La popularidad de Tesseract ha influido en la creación de datasets y herramientas que son fundamentales para el desarrollo de modelos de OCR modernos. Muchos datasets de texto e imágenes han sido diseñados específicamente para ser utilizados con Tesseract, lo que ha facilitado la investigación y el desarrollo en este campo. Además, la comunidad ha creado herramientas complementarias que mejoran la funcionalidad de Tesseract, como bibliotecas para la preprocesamiento de imágenes y algoritmos de corrección de errores.

Integración con IA Moderna
Con el auge de la inteligencia artificial, Tesseract ha evolucionado para incorporar técnicas de aprendizaje profundo. Esto ha permitido mejorar su precisión y adaptabilidad en el reconocimiento de texto, especialmente en contextos complejos como la lectura de documentos manuscritos o textos en diferentes idiomas. La integración de modelos de IA ha ampliado las capacidades de Tesseract, permitiéndole competir con soluciones comerciales que antes dominaban el mercado.

Conclusiones
La influencia de Tesseract en el campo del OCR es innegable. Ha definido workflows, inspirado pipelines, dominado el OCR libre y ha influido en la creación de datasets y herramientas modernas. A medida que la tecnología avanza, Tesseract continúa siendo un pilar en el desarrollo de soluciones de OCR, adaptándose a las nuevas demandas y desafíos que presenta la inteligencia artificial moderna. Su legado perdura, y su impacto se siente en cada rincón del ecosistema de OCR actual.

Los OCR modernos no están construidos encima de Tesseract directamente. Pero Tesseract: fue una base histórica enorme, influyó muchísimo en el ecosistema OCR y luego él mismo adoptó IA parcialmente. Tesseract abrió muchísimo camino, fue una base histórica enorme e influyó profundamente en todo el ecosistema OCR. Tesseract es para OCR lo que Linux fue para servidores o Blender para el 3D libre: quizá no siempre el más avanzado, pero sí uno de los proyectos más influyentes e importantes.

Como usar Tesseract y ocrmypf en la terminal de Linux
Comandos con Tesseract
sudo apt install tesseract-ocr

Instalar Tesseract en debian y deribadas.

sudo apt install tesseract-ocr-spa

Así se instala un lenguaje para Tesseract en Debian, por ejemplo si el último parámetro fuera -eng sería el lenguaje inglés.

sudo pacman -S tesseract

Instalar Tesseract en Arch y deribadas.

sudo pacman -S tesseract-data-spa

Así se instala un lenguaje para Tesseract en Arch, igualmente si el último parámetro fuera -eng sería el lenguaje inglés.

tesseract imagen.png salida

Esto genera un .txt con texto detectado, imagen.png es el archivo imagen con texto y salida será el archivo.txt donde se copiará el texto.

tesseract imagen.png salida -l spa

Basicamente lo mismo que el comando anterior pero forzando la salida en español con el parámetro -l spa.

tesseract imagen.png salida -l spa

Basicamente lo mismo que el comando anterior pero forzando la salida en español con el parámetro -l spa.

tesseract imagen.png stdout

cCopia el texto de la imagen elegida y lo muestra en la terminal (no lo guarda en ningún tipo de archivo).

tesseract imagen.png salida -l spa --psm 6

El parámetro psm 6 proporciona una mayor precisión en el OCR.

tesseract imagen.png salida pdf

Este comando genera la salida de una imagen con texto seleccionable en un archivo .pdf

Comandos con ocrmypdf
sudo apt install ocrmypdf

Así se instala ocrmypdf en Debian y deribadas.

yay -S ocrmypdf

Así se instala ocrmypdf en Arch y deribadas (si solo está por AUR, pero si quieres instalarlo de otra forma te dejo un enlace con las indicaciones para hacerlo: enlace).

ocrmypdf archivo.pdf archivo-ocr.pdf

Esto convierte un archivo pdf a pdf seleccionable ahora en este nuevo archivo podemos buscar palabras, copiar texto, y hasta indexarlo.

ocrmypdf —deskew entrada.pdf salida.pdf

Esto mejora páginas torcidas.

ocrmypdf —clean entrada.pdf salida.pdf

Esto elimina el ruido, o distorsión en el texto, mostándolo más limpio.

ocrmypdf —force-ocr entrada.pdf salida.pdf

Esto fuerza a que el documento sobreponga el ocr aunque ya tenga texto encima.

Bueno, eso es todo por ahora, si alguien desea ver estos comandos en acción dejo un video sobre el tema en este enlace y ojalá este artículo ojalá sea de utilidad. Larga vida al software libre.

Flag Counter Visitas previas a la existencia de este contador: 3433

Artículos aleatorios

    Páginas: