• Portada
    • Recientes
    • Usuarios
    • Registrarse
    • Conectarse

    Banner de Hardlimit en app broadcast torneos entre elite uci chess engines

    Programado Fijo Cerrado Movido Off Topic
    11 Mensajes 2 Posters 174 Visitas
    Cargando más mensajes
    • Más antiguo a más nuevo
    • Más nuevo a más antiguo
    • Mayor número de Votos
    Responder
    • Responder como tema
    Accede para responder
    Este tema ha sido borrado. Solo los usuarios que tengan privilegios de administración de temas pueden verlo.
    • cobitoC Desconectado
      cobito Administrador @jordiqui
      Última edición por cobito

      @jordiqui Buenas. Me parece bien. De hecho, si quieres podrías usar el foro como centro de soporte del programa. Probablemente a finales de enero comiencen las primeras pruebas multiidioma del foro, por si tienes una base de usuarios internacional.

      Estoy fuera y no puedo mirar los pormenores de tu desarrollo (estoy con el móvil). Cuando vuelva le echo un ojo.

      Un saludo, gracias por pensar en Hardlimit y felicidades por la herramienta.

      Toda la actualidad en la portada de Hardlimit
      Mis cacharros

      hlbm signature

      jordiquiJ 1 Respuesta Última respuesta Responder Citar 3
      • jordiquiJ Desconectado
        jordiqui Veteranos HL @cobito
        Última edición por

        @cobito dijo en Banner de Hardlimit en app broadcast torneos entre elite uci chess engines:

        @jordiqui Buenas. Me parece bien. De hecho, si quieres podrías usar el foro como centro de soporte del programa. Probablemente a finales de enero comiencen las primeras pruebas multiidioma del foro, por si tienes una base de usuarios internacional.

        Estoy fuera y no puedo mirar los pormenores de tu desarrollo (estoy con el móvil). Cuando vuelva le echo un ojo.

        Un saludo, gracias por pensar en Hardlimit y felicidades por la herramienta.

        Pues es una buena idea usar el foro como centro de soporte, porque vosotros sabéis programar, muchos de vosotros de hecho trabajáis en ello y desde mi lado uso gpt y codex de gpt para tareas complejas, pero a duras penas escribo tres líneas de código. Lo que sí tenía claro era la arquitectura del proyecto ya que durante meses he revisado lo poco que había sobre este tema con sourcode. Estamos en fechas de navideñas y quien más o quien menos está liado. Pero desde luego No se me había pasado por la cabeza y has dado en el clavo. Y sí he pensado en vosotros, en el foro, no podía ser de otra forma. Aprovecho para felicitar la navidad a todos y ya si acaso me dices dónde consideras más apropiado abrir el hilo. Un abrazo!

        Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

        hlbm signature

        1 Respuesta Última respuesta Responder Citar 3
        • jordiquiJ Desconectado
          jordiqui Veteranos HL
          Última edición por

          Perfecto. Vamos a endurecer el tono, hacerlo más “hardlimit”, y añadir fragmentos de código clave, sin postureo ni marketing. Esto es para gente que ha peleado con IPC, clocks y procesos en Windows/Linux.

          Te dejo un post técnico, listo para publicar, con propuesta clara del banner de hardlimit al final.


          🔧 Retransmisión de ajedrez en tiempo real – arquitectura UCI + Node.js (sin PGN, sin WinBoard)

          Buenas,

          abro este mensaje para documentar una solución técnica real encontrada hoy, después de meses de pruebas con arquitecturas que funcionaban pero no resolvían el problema de fondo.

          Lo comparto aquí porque el enfoque es interesante desde el punto de vista de arquitectura de sistemas, IPC, tiempo real y diseño limpio, independientemente de que os interese o no el ajedrez.


          🎯 El problema (definido correctamente)

          Objetivo:

          • Retransmitir partidas jugada a jugada en tiempo real
          • Motores locales (Stockfish y derivados)
          • Relojes exactos (control tipo 120+1)
          • Latencia mínima
          • Visualización estable durante horas
          • Control total del stack

          Restricciones reales:

          • ❌ PGN no es tiempo real (es un log)
          • ❌ WinBoard/XBoard es frágil bajo ejecución prolongada
          • ❌ Grabación de pantalla no es una solución técnica
          • ❌ APIs cerradas / servicios externos = caja negra

          Conclusión temprana (que tardamos en aceptar):

          El problema no se resuelve añadiendo capas, sino quitándolas.


          ❌ Por qué descartamos la app “clásica”

          Durante meses usamos:

          • cutechess-cli
          • WinBoard
          • VPS + scripts
          • parsing de PGN
          • polling periódico

          Sí, funcionaba… pero:

          • Latencia acumulada
          • Relojes inexactos
          • Estados inconsistentes
          • Complejidad innecesaria
          • Demasiados puntos de fallo

          El error no era de implementación.
          Era arquitectónico.


          ✅ Arquitectura final (la que sí funciona)

          La solución fue bajar al nivel correcto: UCI puro.

          [ Motor A ]        [ Motor B ]
               │                  │
               └────── UCI ───────┘
                         │
                  Node.js (proxy UCI)
                  child_process.spawn
                         │
                  WebSocket (push)
                         │
                    Navegador
          

          Sin PGN.
          Sin WinBoard.
          Sin polling.


          🔌 Fragmento clave 1: Lanzar motores (IPC real)

          import { spawn } from "child_process";
          
          const engine = spawn(
            "C:/engines/brainlearnjrc.exe",
            [],
            { stdio: "pipe", windowsHide: true }
          );
          
          engine.stdin.write("uci\n");
          engine.stdin.write("isready\n");
          

          Esto no es un wrapper mágico.
          Es stdin/stdout directo, como debe ser.


          ♟️ Fragmento clave 2: Loop UCI mínimo

          engine.stdout.on("data", (buf) => {
            const lines = buf.toString().split("\n");
            for (const line of lines) {
              if (line.startsWith("info ")) {
                // depth, eval, pv → streaming
              }
              if (line.startsWith("bestmove")) {
                // aplicar jugada inmediatamente
              }
            }
          });
          

          Cada bestmove es la verdad.
          No hay estados intermedios ni reinterpretaciones.


          ⏱️ Fragmento clave 3: Relojes exactos (no simulados)

          Este era el punto crítico.

          En lugar de movetime, se usa reloj real UCI:

          go wtime 120000 btime 120000 winc 1000 binc 1000
          

          En el proxy:

          thinkingStartedAt = Date.now();
          
          // cuando llega bestmove
          const elapsed = Date.now() - thinkingStartedAt;
          wTime = wTime - elapsed + increment;
          

          Resultado:

          • Relojes exactos
          • Incremento real
          • Comportamiento idéntico a un GUI serio
          • Sin drift acumulado

          🌐 Fragmento clave 4: WebSocket (push real)

          Nada de polling.

          const wss = new WebSocketServer({ server });
          
          function broadcast(obj) {
            const msg = JSON.stringify(obj);
            wss.clients.forEach(ws => ws.send(msg));
          }
          

          Eventos emitidos:

          • move
          • clock
          • info

          Latencia perceptible ≈ cero.


          🖥️ Visualización: decisiones pragmáticas

          • Piezas Unicode
          • CSS local
          • Sin CDN
          • Sin SVG
          • Sin dependencias externas

          ¿Por qué?

          Porque no se rompe.
          Esto tiene que aguantar horas/días en directo.


          📈 Resultado real

          En pocas horas:

          • Retransmisión jugada a jugada
          • Tiempo real auténtico
          • Relojes exactos
          • Eval/PV en vivo
          • Sistema estable
          • Código simple y auditable

          Lo que durante meses no cuajó con arquitecturas más “bonitas”.


          🧠 Conclusión (para ingenieros)

          • El PGN no es tiempo real
          • WinBoard no está pensado para streaming moderno
          • El nivel correcto era UCI, no por encima
          • Menos capas = más fiabilidad

          A veces la optimización real no es micro, sino conceptual.


          🧩 Propuesta: banner de HardLimit

          Dado que este proyecto se ha desbloqueado gracias a debates y mentalidad técnica como la que siempre ha habido aquí, me gustaría integrar un banner discreto de HardLimit en el visor live, por ejemplo:

          “Proyecto desarrollado y documentado por miembros veteranos de HardLimit.com”

          Con enlace directo al foro/hilo.

          Si a los moderadores o a la comunidad le parece bien, encantado de hacerlo.


          Si alguien quiere:

          • revisar código
          • debatir clocks / scheduling
          • portar a Linux puro
          • o discutir escalado

          lo comentamos sin problema.

          Un saludo 👋
          y larga vida a los foros técnicos de verdad.

          Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

          hlbm signature

          jordiquiJ 1 Respuesta Última respuesta Responder Citar 2
          • jordiquiJ Desconectado
            jordiqui Veteranos HL @jordiqui
            Última edición por

            Ahora escribo yo, porque estoy medio ciego ya de escribir. Como podéis leer, hemos dado con la forma de hacerlo precisamente porque se lo he sugerido a GPT plus, porque con la app ( no descarto usarla si consigo o conseguimos salir del embudo, para ejecutarla desde linux en un vps, pero eso sería más adelante) no había forma. Ahora ya está resuelto, como bien ha explicado la IA. Un abrazo compañeros.

            Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

            hlbm signature

            1 Respuesta Última respuesta Responder Citar 2
            • cobitoC Desconectado
              cobito Administrador
              Última edición por

              Tengo apuntado echarle un vistazo al código, pero entre unas cosas y otras, no he tenido tiempo. A ver si voy cerrando cosillas.

              Toda la actualidad en la portada de Hardlimit
              Mis cacharros

              hlbm signature

              1 Respuesta Última respuesta Responder Citar 1
              • jordiquiJ Desconectado
                jordiqui Veteranos HL
                Última edición por

                Os paso el enlace con mis contactos que la mayoría son todos extranjeros, menos un par de suscriptores que son de aquí ( uno de ellos vive en mi antiguo barrio en BCN). https://pixeldrain.com/u/7g3JuJrn

                Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

                hlbm signature

                cobitoC 1 Respuesta Última respuesta Responder Citar 0
                • cobitoC Desconectado
                  cobito Administrador @jordiqui
                  Última edición por

                  @jordiqui Ese sitio está bloqueado. Al menos, yo no puedo acceder.

                  Toda la actualidad en la portada de Hardlimit
                  Mis cacharros

                  hlbm signature

                  jordiquiJ 1 Respuesta Última respuesta Responder Citar 0
                  • jordiquiJ Desconectado
                    jordiqui Veteranos HL @cobito
                    Última edición por

                    @cobito Acabo de abrirlo desde mi lado, y sin problemas. De todas formas te lo subo a mega. Aprovecho para subir también el sourcode del proyecto que hemos conseguido por fih retransmisión a tiempo real.
                    https://mega.nz/file/BjtQSIpa#Qgch1fBAWD3T3GfUPMVT8_BMail7b1ceD4WANXjfvxY

                    Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

                    hlbm signature

                    1 Respuesta Última respuesta Responder Citar 0
                    • jordiquiJ Desconectado
                      jordiqui Veteranos HL
                      Última edición por jordiqui

                      El enlace con el sourcode ( falta pulir ui y detalles, pero ya funciona)
                      https://mega.nz/file/By9nxagA#WKCU20-l_zDJkYJzFgsdMHP_IiSwpyYz-3cGFDuRVvU

                      Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

                      hlbm signature

                      1 Respuesta Última respuesta Responder Citar 0
                      • jordiquiJ Desconectado
                        jordiqui Veteranos HL
                        Última edición por

                        hardlimit.png )

                        Cluster MPI de tres nodos formado por tres SERVIDORRES HP PROLIANT DL360P 1U 2X E5-2680V2 CPU'S, 20 cores, 40 hilos a una frecuencia base de 2,8GHz. 192 GB de memoria RAM DDR3 ECC (8 x módulos de16 GB 800Mhz)´+ 1U 2X E5.-2697 V2 a una frecuencia base de 2,8 Ghz 192 GB de Ram ECC (8 módulos de 16 Gb 800 mhz) 24 Cores 48 hilos ( 44c/88T)+ 1u 2xE5 2603v2 con una frecuencia base de 1,9ghz 64 Gb DDR3 ecc (4x módulos de 16)

                        hlbm signature

                        1 Respuesta Última respuesta Responder Citar 0
                        • 1 / 1
                        • First post
                          Last post

                        Foreros conectados [Conectados hoy]

                        6 usuarios activos (0 miembros y 6 invitados).
                        febesin, pAtO,

                        Estadísticas de Hardlimit

                        Los hardlimitianos han creado un total de 543.5k posts en 62.8k hilos.
                        Somos un total de 34.8k miembros registrados.
                        Movavi ha sido nuestro último fichaje.
                        El récord de usuarios en linea fue de 123 y se produjo el Thu Jan 15 2026.