Editor colaborativo perdía cambio por error de surrogates en emoji

Este artículo narra la historia de un bug particularmente insidioso que el autor descubrió mientras trabajaba en un editor colaborativo basado en TipTap y Yjs. El problema se manifestó de forma silenciosa: el editor dejaba de guardar cambios sin dar errores visibles, haciendo que el contenido del us

CodeMirror: Diseño simple para edición colaborativa

Este artículo del blog de Marijn Haverbeke explora el diseño de la estructura de datos para cambios de documentos y la función de edición colaborativa en la próxima versión de CodeMirror. El objetivo principal es explicar por qué se optó por una solución aparentemente simple: la transformación opera

Contador distribuido: desafío en Fly.io

Este artículo explora un desafío específico dentro de una serie sobre sistemas distribuidos en Fly.io: la construcción de un contador de crecimiento (grow-only counter) utilizando un servicio de almacenamiento clave-valor secuencialmente consistente (SeqKV) de Maelstrom. El objetivo es crear un cont

Nuevo sistema Git evita pérdida de historial

El desarrollador Bram Cohen, conocido por BitTorrent, ha propuesto una alternativa más segura a las funciones de 'rebase' y 'squash' de Git, los cuales son herramientas para combinar cambios en el control de versiones. La propuesta se centra en un sistema que recuerda el historial completo, evitando

Edición colaborativa: por qué descartaron Yjs

Este artículo de Moment.dev explora por qué el equipo decidió no utilizar Yjs, una biblioteca popular para edición colaborativa, a pesar de su amplia adopción. La primera parte de la serie ya había señalado problemas con la corrupción de documentos en algoritmos colaborativos, especialmente en escen

CRDT: Colaboración en tiempo real sin servidor

Este artículo introduce los CRDT (Tipos de Datos Replicados sin Conflicto), una herramienta poderosa para construir aplicaciones colaborativas en tiempo real sin depender de un servidor centralizado. Imagina Google Docs o Figma: todos los usuarios ven y editan el mismo documento simultáneamente, inc

Sistemas distribuidos: guía esencial para la computación moderna

Este texto, publicado originalmente en 2013, ofrece una introducción accesible a los sistemas distribuidos, un tema crucial en la era de la computación en la nube y el big data. La necesidad de estos sistemas surge cuando los problemas superan la capacidad de una sola máquina, ya sea por limitacione

SCM más sencillos: ¿alternativa a Git para la era IA?

El artículo explora una nueva aproximación a los sistemas de control de versiones (SCM), argumentando que los sistemas actuales, como Git, son excesivamente complejos y difíciles de manejar, especialmente con la proliferación de código generado por IA. Git, con su intrincada jerarquía de ramas, repo

Git en riesgo: LLMs desafían el control de versiones

El desarrollo de software está evolucionando rápidamente, y las herramientas tradicionales, como los IDEs, están perdiendo relevancia a medida que los desarrolladores pasan más tiempo explorando código y interactuando con modelos de lenguaje grandes (LLMs). El sistema de control de versiones Git, qu