Noticias que mencionan UTF-8

ROX: Nuevo Lenguaje Busca Simplificar la Programación

Un nuevo lenguaje de programación llamado ROX ha sido desarrollado con el objetivo de priorizar la claridad sobre la comodidad. Creado por Taman-Islam y disponible en GitHub, ROX busca eliminar las complejidades inherentes a muchos lenguajes, como conversiones implícitas, operadores sobrecargados y

pdf-lib: JavaScript para Editar PDFs Directamente

Desarrolladores han lanzado 'pdf-lib', una nueva biblioteca de JavaScript que permite la modificación y manipulación de archivos PDF de manera robusta y compatible con diversos entornos, incluyendo navegadores web y Node.js. A diferencia de otras bibliotecas existentes, 'pdf-lib' destaca por su capa

Cómo se muestran las fuentes en pantalla: un proceso complejo

Este artículo explora el renderizado de fuentes desde cero, un proceso que a menudo se da por sentado pero que es sorprendentemente complejo. La renderización de fuentes implica mostrar texto en una pantalla, y presenta desafíos significativos, como escalar fuentes a diferentes tamaños manteniendo l

PostgreSQL: Consultas SQL asíncronas con pg_background

PostgreSQL ha incorporado una nueva funcionalidad llamada `pg_background` que permite la ejecución asíncrona de consultas SQL en procesos de trabajo en segundo plano dentro de la base de datos. Esto evita que las consultas de larga duración bloqueen las conexiones del cliente, mejorando la capacidad

Criptografía: Bibliotecas AES con fallas de seguridad

Dos populares bibliotecas de cifrado AES, aes-js y pyaes, han sido criticadas por Trail of Bits por incluir un Vector de Inicialización (IV) predeterminado en su API AES-CTR, lo que facilita la reutilización de claves/IV y crea vulnerabilidades de seguridad en miles de proyectos. Esta práctica, junt

C++ acelera reconocimiento de voz con modelo Parakeet

Un equipo de desarrolladores ha creado una implementación en C++ de los modelos de reconocimiento de voz Parakeet de Nvidia, ofreciendo una mejora significativa en la velocidad para su ejecución en dispositivos. El proyecto, alojado en GitHub, utiliza la biblioteca de tensores ligera axiom, que incl

Programación: ¿Siempre es más lento lo de bajo nivel?

Este artículo explora el concepto de "costos ocultos" en la programación, desafiando la idea de que los lenguajes de alto nivel son inherentemente menos eficientes que los lenguajes de bajo nivel como C o C++. El autor observa que los programadores de sistemas a menudo evitan lenguajes con recolecci

Lotus 1-2-3 renace: compatible con Excel

Un desarrollador ha revivido Lotus 1-2-3, una hoja de cálculo clásica de la era DOS, en un proyecto llamado 'l123'. Esta reimplementación moderna, escrita en Rust, busca replicar la experiencia de usuario original, incluyendo el panel de control de tres líneas, la navegación con teclado y los menús

Nev: el nuevo editor de texto une lo mejor de varios

Un nuevo editor de texto llamado Nev ha sido desarrollado por Nimaoth y está disponible en GitHub. Nev combina características de editores populares como Neovim, Helix y Zed, ofreciendo una experiencia de desarrollo impulsada por el teclado tanto en terminal como en interfaz gráfica. El editor inclu

Turbo Vision revive: Unicode y compatibilidad moderna

Un desarrollador ha revitalizado Turbo Vision, un marco clásico para interfaces de usuario basadas en texto, con una nueva versión que ofrece soporte Unicode y compatibilidad multiplataforma. El proyecto, iniciado a finales de 2018, busca replicar la funcionalidad del original mientras lo adapta a e

Mamba-Studio lanza TypedMemory para memoria off-heap type-safe en Java

Mamba-Studio ha lanzado TypedMemory, una nueva biblioteca Java experimental diseñada para simplificar la gestión de memoria off-heap mediante vistas fuertemente tipadas. La librería, construida sobre la API Java Foreign Function & Memory (FFM), permite mapear tipos record de Java directamente a memo

scrcpy 4.0 llega con soporte para SDL3 y funciones mejoradas

Genymobile ha lanzado scrcpy v4.0, una nueva versión major de su herramienta de código abierto que permite reflejar y controlar dispositivos Android desde un ordenador. Entre los cambios más relevantes destaca la migración desde SDL2 hacia SDL3, lo que aporta mayor soporte técnico y nuevas funcional

Presentan FreedomLang, nuevo lenguaje de sistemas sin dependencias externas

FreedomLang es un nuevo lenguaje de programación de sistemas que compila código nativo x86-64 sin dependencias de libc ni CRT. El lenguaje, actualmente en fase pre-1.0, utiliza compilación AOT (ahead-of-time) directa: Linux genera bytes de máquina ELF64, mientras macOS y Windows producen ensamblador

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

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ó

Fuentes Unicode y herramientas para el sistema X Window

El proyecto documenta una extensión completa al estándar ISO 10646-1/Unicode para las clásicas fuentes bitmap del sistema X Window. Todas las fuentes de la familia «-misc-fixed-*» —desde 5x7 hasta 10x20— se han reeditado con codificación ISO10646-1, de modo que cubren el conjunto de caracteres de la

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

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

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

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

UTF-8000: un sistema de codificación sin límites para caracteres

UTF-8000 es un sistema de codificación de caracteres que extiende el estándar UTF-8 para permitir la representación de caracteres de tamaño arbitrario, eliminando las restricciones de longitud impuestas por el estándar actual. A diferencia de UTF-8, que utiliza un máximo de cuatro bytes por unidad d

Mi plantilla base de HTML: la evolución del código repetido

Un desarrollador web repasa en este ensayo la evolución del boilerplate de HTML, es decir, el bloque de código repetido que acompaña a casi toda página web moderna. El texto arranca con los documentos mínimos que eran válidos en los orígenes del lenguaje y avanza hasta la estructura completa exigida

El cambio de u8 a char8_t rompe la compatibilidad en C++20

El estándar C++20 introduce una ruptura de compatibilidad hacia atrás al modificar el tipo de los literales de cadena con el prefijo u8. En las versiones anteriores, como C++17, estos literales se interpretaban como arrays de const char, mientras que en C++20 se convierten en arrays de const char8_t