Ordenar cadenas sin distinguir mayúsculas en Rust: tres enfoques a prueba

Un programador analiza tres formas de ordenar colecciones de cadenas en Rust sin distinguir entre mayúsculas y minúsculas, comparando su rendimiento con un benchmark reproducible. El primer enfoque emplea `sort_by_cached_key` combinado con `to_lowercase()`, que calcula la clave en minúsculas una sol

Emojis ejecutables: cómo escribir un programa para el 8088 usando solo emojis

El programador y desarrollador del desensamblador web dasm.martypc.net descubrió de forma casual que el emoji de la cabra (🐐) se codifica en UTF-8 como F0 9F 90 90, una secuencia que resulta ser código máquina válido para el procesador Intel 8088: LAHF, NOP y NOP. A partir de esa observación, explor

eh, un editor de texto minimalista inspirado en vi

eh (Edit Here) es un editor de texto de línea de comandos que reinterpreta las nociones más útiles de vi(1) con un enfoque minimalista. Está escrito en C (83,7%) con un script en sed (16,3%) para transformaciones auxiliares, y su repositorio principal se aloja en Codeberg bajo el usuario SirWumpus,

CHICKEN Scheme 6.0.0: alineación con R7RS-small, UTF-8 interno y FFI reforzado

CHICKEN Scheme publica su versión 6.0.0, un salto mayor en el que el núcleo adopta los módulos definidos por el estándar R7RS-small. La representación interna de cadenas pasa a UTF-8, lo que aporta soporte pleno para Unicode, y los blobs se reemplazan por el módulo (chicken bytevector), compatible c

Por qué Clang triplicó el rendimiento de un validador UTF-8 y GCC no

El autor, Nemanja Trifunović, mantiene desde 2006 una biblioteca C++ de código abierto para manejar cadenas UTF-8 y recientemente reoptimizó su función validate_next, que decodifica un code point UTF-8 a partir de un iterador de bytes. La versión original determina la longitud de la secuencia según

Corregir un error con marcas de orden de bytes en subtítulos

Este artículo describe una incidencia detectada por el autor al estandarizar los subtítulos de su biblioteca multimedia local en formato WebVTT, compatible con el elemento <video> de HTML5. Como muchos subtítulos solo están disponibles en SRT, escribió una función en Python que convierte SRT a WebVT

Ex-vi: el código original del editor vi para sistemas Unix modernos

Ex-vi es un port del editor vi tradicional de Unix que pone a disposición de la comunidad el código fuente histórico de la herramienta creada por Bill Joy a partir de 1976 en la Universidad de California en Berkeley. Durante más de dos décadas, acceder a las fuentes originales requirió una licencia

Almacenar una web completa dentro de un favicon de 9×9 píxeles

El desarrollador Tim Wehrle ha conseguido comprimir un pequeño sitio web —un documento HTML de 208 bytes más una cabecera de 4 bytes— dentro de la imagen de un favicon de tan solo 9×9 píxeles, lo que supone apenas 81 píxeles y una capacidad total de 239 bytes. El proyecto demuestra que un favicon, a

Tokens y tokenización: por qué los LLM no ven letras

Los modelos de lenguaje grandes (LLM) como GPT-4 no procesan texto directamente: lo fragmentan en unidades llamadas tokens, las únicas entidades que el modelo realmente percibe. Cada modelo dispone de un vocabulario fijo de tokens decidido durante su entrenamiento, por eso GPT-4 y Llama 3 descompone

Rob Pike estalla contra un correo de agradecimiento enviado por una IA

Rob Pike, cocreador del lenguaje de programación Go, arremetió en la red social Bluesky contra un agente de inteligencia artificial que le envió un correo electrónico agradeciéndole sus contribuciones al software. El mensaje, generado automáticamente por un experimento de agentes autónomos, provocó

Go a C: Portan el paquete 'strings'

Este artículo del blog de Anton Zhiyanov detalla el proceso de portar el paquete `strings` de Go al lenguaje C. El objetivo no era crear un compilador Go a C, sino permitir el uso de código Go con la flexibilidad y control de C. La portación comenzó con el paquete `io` y continuó con `bytes` y `str