Category: Desarrollo

arXivLabs: Colaboraciones comunitarias en funciones de arXiv

2025-05-28
arXivLabs: Colaboraciones comunitarias en funciones de arXiv

arXivLabs es una plataforma que permite a desarrolladores e investigadores construir y compartir nuevas funciones de arXiv directamente en el sitio web de arXiv. Los participantes, tanto individuos como organizaciones, abrazan los valores de arXiv de apertura, comunidad, excelencia y privacidad de datos del usuario. arXiv está comprometido con estos valores y solo se asocia con aquellos que los comparten. ¿Tienes una idea para mejorar la comunidad de arXiv? ¡Explora arXivLabs!

Desarrollo

Multihilo en Super Mario Bros. en un emulador NES: Una hazaña sorprendentemente simple

2025-05-28
Multihilo en Super Mario Bros. en un emulador NES: Una hazaña sorprendentemente simple

El autor implementó multithreading en Super Mario Bros. en un emulador NES (FCEUX) usando un plugin Lua, sin modificar el código principal del emulador. Al aprovechar la funcionalidad de guardado de estado del emulador, diferentes estados del juego se trataron como hilos separados. Se implementaron primitivas de sincronización como mutexes y variables de condición usando áreas específicas del juego, permitiendo a los usuarios interactuar directamente con los conceptos de multithreading. Por ejemplo, varias instancias de Mario pueden jugar simultáneamente, pero solo una puede entrar en una tubería a la vez. Este proyecto demuestra no solo creatividad, sino que también proporciona una explicación clara y atractiva del multithreading, destacando la importancia de comprender los conceptos fundamentales de la ciencia de la computación.

Desarrollo

Indecibilidad: La caja de Pandora de los programadores

2025-05-28
Indecibilidad: La caja de Pandora de los programadores

Este artículo explica con claridad el concepto de "indecidibilidad" en la ciencia de la computación. Usando un lenguaje accesible y ejemplos concretos (como determinar si un número es la suma de dos números primos), el autor explica los problemas de decisión y el papel de las máquinas de Turing. La conclusión principal es que la indecidibilidad no significa que sea imposible saber si un programa se detendrá, sino que no existe un algoritmo universal para determinar el comportamiento de detención de todos los programas. Esto hace que muchos problemas (como verificar las propiedades de los programas) requieran un esfuerzo significativo y pueden ser insolubles, destacando la necesidad de campos como la verificación formal y el análisis de programas.

Desarrollo indecidibilidad

Shibboleths de LLM: El Secreto para Desbloquear los Asistentes de Codificación con IA

2025-05-28

La eficacia de los asistentes de codificación con modelos de lenguaje grandes (LLM) depende de cómo se formulan las preguntas. Este ensayo argumenta que los ingenieros experimentados utilizan "shibboleths" específicos —jerga técnica y frases— para guiar a la IA hacia un código de alta calidad, mientras que los principiantes, sin este vocabulario especializado, suelen obtener resultados ineficientes o incorrectos. El autor utiliza anécdotas personales para ilustrar cómo adaptar las estrategias de prompts en función del nivel de habilidad, ofreciendo consejos para mejorar la eficiencia del asistente de codificación con IA. El mensaje principal destaca la importancia de discernir y orientar el código generado por IA en la era de la IA.

Desarrollo

Guile Hoot 0.2.0: Creando Páginas Web Interactivas en Scheme

2025-05-28

Se ha lanzado Guile Hoot 0.2.0, un compilador de Scheme a WebAssembly GC. Esta versión introduce una Interfaz de Función Externa (FFI), permitiendo a los desarrolladores escribir la mayor parte del código de aplicaciones web directamente en Scheme, minimizando la dependencia de JavaScript. El artículo demuestra la creación de páginas web interactivas usando Scheme y la FFI, pasando de un simple "Hola, mundo!" a un contador interactivo y finalmente una aplicación de lista de tareas. Aprovechando las capacidades de manipulación simbólica de Scheme y SXML, se construye un DOM virtual eficiente con un algoritmo de comparación similar a React para las actualizaciones.

Desarrollo

Paralelización de la generación de código LLM: un aumento de la productividad con Git Worktrees y Tmux

2025-05-28
Paralelización de la generación de código LLM: un aumento de la productividad con Git Worktrees y Tmux

Nicholas Khami comparte su experiencia en la paralelización de varios generadores de código LLM (Claude Code, Codex) usando Git worktrees y tmux. Descubrió ganancias significativas de eficiencia; incluso con la calidad inconsistente de la salida individual del LLM, ejecutar varios agentes simultáneamente aumenta drásticamente la probabilidad de obtener código utilizable. Sin embargo, administrar manualmente varias worktrees y sesiones tmux es engorroso. Para solucionar esto, él y su cofundador están creando `uzi`, una herramienta de línea de comandos para optimizar el flujo de trabajo, proporcionando una experiencia de desarrollador más fluida mediante la automatización de tareas como iniciar agentes, enviar indicaciones, ejecutar comandos, previsualizar, confirmar y crear PR. Esto promete mejorar mucho la productividad del desarrollador, y la filosofía de procesamiento paralelo se extiende más allá de la codificación, siendo aplicable a la revisión de contratos legales y al análisis de datos de marketing. Es probable que en el futuro veamos más softwares integrando capacidades de ejecución paralela similares.

Desarrollo

Compiler Explorer: La Promesa de URLs Eternas

2025-05-28

Las URLs de Compiler Explorer han evolucionado desde codificar estados del compilador directamente en las URLs hasta usar enlaces cortos de goo.gl, y finalmente a una solución de almacenamiento propia. Con el cierre de goo.gl en agosto de 2025, el autor está rescatando enlaces antiguos basados en goo.gl, recuperando más de 12.000 hasta ahora. Este artículo destaca el compromiso del autor con 'URLs que duran para siempre' y reflexiona sobre la dependencia de servicios de terceros.

Desarrollo Enlaces

arXivLabs: Experimentación con Colaboración Comunitaria

2025-05-28
arXivLabs: Experimentación con Colaboración Comunitaria

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en nuestro sitio web. Tanto individuos como organizaciones que trabajan con arXivLabs han abrazado y aceptado nuestros valores de apertura, comunidad, excelencia y privacidad de datos del usuario. arXiv está comprometido con estos valores y solo trabaja con socios que los respetan. ¿Tienes una idea para un proyecto que agregará valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Hice ingeniería inversa en el sitio web de Waffle House durante un huracán

2025-05-28
Hice ingeniería inversa en el sitio web de Waffle House durante un huracán

Durante el huracán Helene a finales de septiembre de 2024, mientras mi universidad estaba cerrada y la gente estaba protegiendo sus casas, hice ingeniería inversa en el sitio web de Waffle House. Usando datos JSON ocultos en su sitio Next.js, construí un mapa en vivo que rastreaba los cierres de Waffle House para ayudar a evaluar el impacto del huracán. El sitio inesperadamente se volvió viral, atrayendo la atención de la propia Waffle House e incluso de Frank Luntz. Finalmente, los problemas de marcas registradas me obligaron a retirarlo, pero la experiencia fue una aventura divertida e inesperada.

Desarrollo

Tesseral: Infraestructura de autenticación de código abierto para B2B SaaS

2025-05-28
Tesseral: Infraestructura de autenticación de código abierto para B2B SaaS

Tesseral es una infraestructura de autenticación de código abierto para software empresarial (B2B SaaS). Es un servicio en la nube multiinquilino, con API primero, compatible con cualquier pila de tecnología. Los desarrolladores pueden usar el servicio administrado en console.tesseral.com o autohospedarlo. Incluye todo lo necesario para la gestión de usuarios: páginas de inicio de sesión personalizables, multiinquilino B2B, personificación de usuarios, configuración de autoservicio, varios métodos de inicio de sesión (enlaces mágicos, inicio de sesión social, SAML, SCIM), control de acceso basado en roles (RBAC), autenticación multifactor (MFA), passkeys/WebAuthn, aplicaciones autenticadoras (TOTP), gestión de claves de API, invitaciones de usuarios y webhooks. Hay SDK disponibles para React, Flask y más, simplificando la integración de front-end y back-end.

Desarrollo

Wetlands: Una biblioteca Python ligera para la gestión de entornos Conda

2025-05-28

Wetlands es una biblioteca Python ligera diseñada para simplificar la gestión de entornos Conda. Crea entornos Conda a demanda, instala dependencias y ejecuta código arbitrario dentro de ellos, evitando conflictos de dependencias. Ideal para sistemas de plugins o la integración de módulos externos, Wetlands utiliza pixi o micromamba para un manejo rápido y eficiente de entornos Conda. Una API simple permite a los desarrolladores crear, iniciar, importar módulos, ejecutar funciones y salir limpiamente de los entornos, haciendo que la gestión de dependencias en proyectos Python sea más fácil y eficiente.

Desarrollo

Inmersión de Project Zero en el Registro de Windows: 2 años, 53 CVE

2025-05-28
Inmersión de Project Zero en el Registro de Windows: 2 años, 53 CVE

Mateusz Jurczyk, de Google Project Zero, dedicó dos años a la investigación profunda del Registro de Windows, descubriendo 53 CVE. Su investigación destaca la complejidad del Registro como una superficie de ataque de escalada de privilegios local, detallando problemas de seguridad derivados de su gran base de código heredado escrita en C. La investigación abarca varias clases de vulnerabilidades, incluyendo corrupción de memoria, divulgación de información y errores de lógica, analizando varios puntos de entrada de ataque, como la carga de colmenas, las colmenas de aplicaciones y las llamadas al sistema directas. La investigación también enfatiza cómo los mecanismos de autocorrección del Registro impactan en la auditoría de seguridad y los desafíos de los límites poco claros entre los requisitos de formato estrictos y las convenciones. Finalmente, la publicación resume las primitivas de explotación y discute las estrategias y dificultades en el fuzzing del Registro.

LLMs: Acelerando la incompetencia en la ingeniería de software

2025-05-28
LLMs: Acelerando la incompetencia en la ingeniería de software

Este ensayo argumenta que la dependencia excesiva de los Modelos de Lenguaje Grandes (LLMs) en la ingeniería de software puede acelerar la incompetencia. Un ingeniero de software experimentado detalla cómo los LLMs, si bien ofrecen velocidad en la generación de código, introducen riesgos significativos: salidas incorrectas, incapacidad para comprender el contexto, aumento de la deuda técnica y la supresión del pensamiento crítico y la creatividad. Basándose en las ideas de Peter Naur y Fred Brooks, el autor enfatiza que la programación consiste en construir la teoría del programa y gestionar la entropía del programa, tareas más allá de las capacidades de los LLMs actuales. El ensayo concluye que, si bien los LLMs son herramientas útiles, no pueden sustituir el ingenio y el pensamiento profundo humanos, y la dependencia excesiva puede llevar a costos aumentados y fallos de proyecto.

Desarrollo

Microsoft abre Windows Update a aplicaciones de terceros

2025-05-28
Microsoft abre Windows Update a aplicaciones de terceros

Microsoft está expandiendo Windows Update para incluir aplicaciones de terceros. Los desarrolladores ahora pueden registrarse para una vista previa privada de la plataforma de orquestación de Windows Update, permitiendo soporte futuro para actualizaciones de cualquier aplicación o controlador. Si bien inicialmente se centra en aplicaciones empresariales, estará abierto a todas las aplicaciones y herramientas de administración. Esto permite a los desarrolladores aprovechar las actualizaciones programadas en función de la actividad del usuario, el estado de la batería e incluso el tiempo de energía sostenible, conectarse directamente a las notificaciones nativas de Windows Update y enumerar las actualizaciones en el historial de actualizaciones de aplicaciones de Windows Update. Microsoft admitirá aplicaciones empaquetadas MSIX/APPX e incluso algunas aplicaciones Win32 personalizadas.

Lanzamiento de CheerpJ 4.1: Soporte anticipado para Java 17 y Java mejorado para navegadores

2025-05-28
Lanzamiento de CheerpJ 4.1: Soporte anticipado para Java 17 y Java mejorado para navegadores

Leaning Technologies anunció el lanzamiento de CheerpJ 4.1, con soporte preliminar para Java 17 y estabilidad mejorada para Java 11, junto con optimizaciones de rendimiento, mejoras en la pila de red y mejor usabilidad en dispositivos móviles. CheerpJ es una JVM basada en WebAssembly que permite la ejecución directa de bytecode Java sin modificaciones en navegadores, admitiendo aplicaciones Swing/AWT a gran escala e integración de bibliotecas Java (Modo Biblioteca). CheerpJ 4.1 también introduce soporte para módulos JNI WebAssembly, permitiendo la ejecución de aplicaciones Java que dependen de código nativo, como Minecraft. El futuro CheerpJ 5.0 incluirá soporte estable para Java 17 y soporte para NPM.

Desarrollo

LLM: El Costo Imprevisto de Codificar con Mayor Facilidad

2025-05-28

Los Grandes Modelos de Lenguaje (LLM) han revolucionado la escritura de código, superando incluso el impacto de la World Wide Web. Sin embargo, esto no ha cambiado la verdad fundamental de que comprender el código es más difícil que escribirlo; cada línea es deuda técnica. La introducción de LLM hace aún más difícil convencer a los equipos de que abandonen antiguos conjuntos de pruebas y decisiones técnicas. Los LLM producen fácilmente nuevas funciones, lo que lleva a bases de código hinchadas y difíciles de mantener, desafiando los principios DRY. Los equipos de ingeniería históricamente productivos dependen de una profunda experiencia en la cadena de herramientas, pero los LLM reducen drásticamente los costos de codificación, lo que resulta en una explosión de diversidad ecológica en los entornos de software. Si bien los LLM podrían mejorar eventualmente la legibilidad y el razonamiento del código, los desafíos actuales son sustanciales.

La caótica historia del análisis de fechas en JavaScript

2025-05-28

Este artículo revela una peculiaridad en el análisis de fechas de JavaScript: '2025/05/28' y '2025-05-28' representan fechas diferentes. Esto se debe a inconsistencias de larga data en cómo los navegadores analizan las cadenas de fechas. El artículo rastrea la evolución del análisis de cadenas de fechas en Chrome, Firefox y Safari desde el lanzamiento del estándar ES5 en 2009, destacando sus diferentes implementaciones e interpretaciones del estándar ISO 8601. Finalmente, los formatos de fecha como '2025-05-28' se interpretan como UTC, mientras que otros se interpretan como hora local, causando confusión. El artículo concluye presentando la próxima API Temporal de JavaScript, que resolverá este problema, exigiendo información de zona horaria.

LIEF añade generación de DWARF: Conectando herramientas de ingeniería inversa

2025-05-28
LIEF añade generación de DWARF: Conectando herramientas de ingeniería inversa

LIEF ahora cuenta con una API completa para crear archivos DWARF, junto con complementos para Ghidra y BinaryNinja para exportar los resultados del análisis de ingeniería inversa. Esto permite compartir información crucial, como nombres de funciones y estructuras, entre diferentes herramientas de ingeniería inversa. Aprovechando el backend DWARF de LLVM, la API (disponible en Python, Rust y C++) simplifica el proceso, incluyendo detalles como los offsets de las variables de pila. Esto mejora la colaboración y la comprensión en proyectos complejos de ingeniería inversa.

Desarrollo

La carrera armamentística de prueba de trabajo en JavaScript contra los LLM

2025-05-28

Los sitios web utilizan cada vez más sistemas de prueba de trabajo basados en JavaScript, como Anubis de Xe Iaso, para combatir los LLM y los raspadores web agresivos. Sin embargo, los LLM pueden aprovechar las máquinas comprometidas para obtener una gran cantidad de potencia de CPU para resolver estos desafíos. El problema es que los LLM operan en un entorno hostil, lo que dificulta la distinción entre una prueba de trabajo genuina y JavaScript malicioso. Esto expone a los LLM a la minería de CPU u otros ataques. Intentar identificar los sistemas de prueba de trabajo es un juego perdido para los LLM, ya que los actores maliciosos tienen un incentivo para imitarlos. Esto crea una carrera armamentística entre los sitios web y los LLM, cada uno intentando optimizar el uso de los recursos mientras protege sus intereses.

Desarrollo Raspado web

El arma secreta de un programador: las notas escritas a mano superan a los editores de código

2025-05-28
El arma secreta de un programador: las notas escritas a mano superan a los editores de código

Un desarrollador de software comparte sus ideas únicas sobre el uso de un cuaderno para pensar y resolver problemas. Argumenta que escribir pensamientos y diagramas en un cuaderno, antes de escribir código directamente en un ordenador, permite una mayor claridad y la identificación de soluciones. Este método ayuda a transformar ideas vagas en planes concretos, descubrir fallos y defectos de diseño en el código y deja un registro valioso del proceso de pensamiento para futuras referencias. Para él, un cuaderno es una herramienta más importante que un editor de código.

Implementación de referencia del protocolo de consenso Alpenglow

2025-05-28
Implementación de referencia del protocolo de consenso Alpenglow

Anza Technology ha lanzado una implementación de referencia del protocolo de consenso Alpenglow. Esto incluye un ejemplo de clúster local ejecutable con 6 nodos que se comunican a través de UDP. Un binario de simulaciones proporciona varias pruebas de resistencia y requisitos de ancho de banda de Alpenglow; se necesita un conjunto de datos de ping público para algunas simulaciones. También se incluyen microbenchmarks y un conjunto de pruebas. Para problemas de seguridad, contacte directamente con quentin (at) anza (dot) xyz.

Desarrollo

Monorepo: Un Camino Espinoso hacia la Productividad del Desarrollador

2025-05-28

Este artículo explora los desafíos y oportunidades de construir y mantener un monorepo. El autor advierte contra seguir ciegamente las historias de éxito de las grandes empresas de tecnología, enfatizando que un monorepo no es una solución mágica. El éxito depende de objetivos claramente definidos, como mejorar la consistencia del código, la cohesión organizacional y la eficiencia del intercambio de herramientas. El artículo detalla estrategias de optimización para el control de versiones (limitaciones de Git y alternativas), sistemas de compilación (priorizando estrategias de un solo lenguaje), pruebas (O(change) y no O(repo)) y flujos de trabajo de CI/CD en un entorno de monorepo. El autor destaca la importancia de manejar cuidadosamente el código generado y la naturaleza asíncrona de la implementación de servicios para evitar incidentes derivados de la ilusión de confirmaciones atómicas. En última instancia, el autor argumenta que, aunque desafiante, los beneficios de un monorepo bien mantenido valen la pena si la organización está comprometida con la mejora continua de herramientas y procesos.

Desarrollo

pg_test_fsync: Medición del rendimiento de escritura en disco para bases de datos

2025-05-28

Este artículo presenta la herramienta `pg_test_fsync`, utilizada para evaluar rápidamente el rendimiento de escritura en disco o almacenamiento en la nube, especialmente útil para registros WAL de bases de datos y otras cargas de trabajo de escritura de baja latencia. El autor prueba un SSD Samsung 990 Pro de nivel consumidor y un SSD Micron 7400 de nivel empresarial, mostrando velocidades de escritura sincrónica significativamente más rápidas en el SSD empresarial debido a su caché DRAM del controlador y protección contra pérdida de energía. `fdatasync` resulta más rápido que `fsync` o `O_SYNC`, pero incluso `fdatasync` tarda 1,6 milisegundos para una sola escritura de 8 kB. El artículo observa que varias escrituras pequeñas degradan el rendimiento, sugiriendo la escritura por lotes para mayor eficiencia.

Desarrollo

Aplicación UEFI salva mi sistema x86 alimentado por PoE

2025-05-28
Aplicación UEFI salva mi sistema x86 alimentado por PoE

En 2015, el autor se enfrentó a un desafío al desarrollar computadoras x86 integradas alimentadas por PoE: el sistema necesitaba 23W para arrancar, pero el PoE estándar solo proporcionaba 15,4W. Después de fallar en modificar el BIOS, el autor usó hábilmente una aplicación UEFI para enviar paquetes LLDP antes del inicio del SO, negociando con éxito una potencia PoE+ mayor. Esta aplicación UEFI, llamada PoePwrNegotiator, escrita en C, ahora es de código abierto, proporcionando una valiosa experiencia para los desarrolladores de proyectos similares.

Desarrollo

Compresión de imágenes: Haz que tu sitio web vuele

2025-05-28

Una sola imagen de héroe sin optimizar puede pesar más que todo el presupuesto de tu página web. Este artículo te enseña a dominar rápidamente las técnicas de compresión de imágenes para mejorar la velocidad del sitio web y el SEO. Explica la diferencia entre la compresión con pérdida y sin pérdida, las métricas clave (calidad, resolución, tamaño del archivo), los formatos comunes (JPEG, PNG, WebP, AVIF) y los pasos para usar la herramienta SlimImg para comprimir imágenes. Un estudio de caso de comercio electrónico muestra que al comprimir fotos de productos, el tamaño medio de la página se redujo en un 68% y las tasas de conversión aumentaron en un 38%.

¿Por qué curvas elípticas para Diffie-Hellman?

2025-05-27
¿Por qué curvas elípticas para Diffie-Hellman?

Este artículo profundiza en las razones detrás del uso de curvas elípticas en el intercambio de claves Diffie-Hellman. Comenzando con la teoría de grupos, el autor explica por qué otros grupos, como el grupo Monstruo, son inadecuados. A través de una exploración de objetos de grupo y la teoría de categorías, el artículo revela que las curvas elípticas no son una elección arbitraria, sino casi la única opción viable, incluso mostrando que el Diffie-Hellman de campo finito es un caso especial de criptografía de curva elíptica.

Desarrollo teoría de grupos

LLM 0.26: Los Modelos de Lenguaje Grande Obtienen Herramientas de Terminal

2025-05-27
LLM 0.26: Los Modelos de Lenguaje Grande Obtienen Herramientas de Terminal

LLM 0.26 ya está disponible, con la característica más importante desde el inicio del proyecto: soporte para herramientas. La CLI de LLM y la biblioteca de Python ahora te permiten dar a los LLMs de OpenAI, Anthropic, Gemini y modelos locales de Ollama acceso a cualquier herramienta representable como una función de Python. El artículo detalla la instalación y el uso de plugins de herramientas, la ejecución de herramientas a través de la línea de comandos o la API de Python, y muestra ejemplos con OpenAI, Anthropic, Gemini e incluso el pequeño modelo Qwen-3. Más allá de las herramientas integradas, se muestran plugins personalizados como simpleeval (para matemáticas), quickjs (para JavaScript) y sqlite (para consultas de bases de datos). Este soporte para herramientas aborda las debilidades de LLM, como los cálculos matemáticos, expandiendo drásticamente las capacidades y abriendo posibilidades para aplicaciones de IA potentes.

Mejorando el solucionador APT: Manejo elegante de la eliminación de paquetes instalados manualmente

2025-05-27

Esta publicación detalla mejoras en un solucionador de administrador de paquetes APT. Inicialmente, los paquetes instalados manualmente se trataban como hechos fijos, mientras que los paquetes instalados automáticamente eran cláusulas unitarias opcionales. Sin embargo, permitir la eliminación de paquetes instalados manualmente rompió el solucionador; podía eliminarlos innecesariamente. El autor lo resuelve asumiendo inicialmente todas las cláusulas opcionales, y luego deshaciendo iterativamente estas suposiciones durante el proceso de resolución. Este enfoque, aunque no es globalmente óptimo, resulta eficaz en la práctica para la resolución de dependencias, evitando la complejidad exponencial de una búsqueda global.

Ejecutando GPT-2 en la GPU con Shaders WebGL: Un Viaje de Hacker

2025-05-27

Este éxito de Hacker News detalla la experiencia del autor implementando GPT-2 usando WebGL y shaders en la GPU. El artículo explora los orígenes y la evolución de la programación de GPU de propósito general, comparando las API gráficas tradicionales (como OpenGL) con las API de computación (CUDA y OpenCL). El autor aprovecha texturas y framebuffers como un bus de datos, usando shaders de fragmentos como kernels de computación para realizar operaciones de red neuronal como la multiplicación de matrices y la activación GELU. Si bien reconoce las limitaciones en memoria compartida, tamaño de textura y precisión, el artículo muestra el poder y el potencial de la programación de GPU y demuestra el uso innovador de técnicas de procesamiento gráfico para la computación de propósito general. El código está disponible en Github.

Desarrollo

Contador eficiente de primos truncados a la derecha en C

2025-05-27
Contador eficiente de primos truncados a la derecha en C

Este programa en C calcula eficientemente el número de primos truncados a la derecha para un número determinado de dígitos. Utiliza una tabla hash personalizada para verificaciones rápidas de primalidad y la biblioteca primesieve para la generación optimizada de primos. Un primo truncado a la derecha sigue siendo primo después de eliminar sucesivamente su dígito más a la derecha. El programa maneja entradas de 1 a 19 dígitos, informando el conteo de primos truncados a la derecha para cada longitud de dígito y el tiempo total de ejecución. Por ejemplo, para números de 8 dígitos, encuentra 5 primos y un total de 83 hasta 8 dígitos.

Desarrollo
1 2 74 75 76 78 80 81 82 214 215