Artículos
-
Generales
Kafka en Go con confluent-kafka-go: producer, consumer, grupos de consumo y offsets
Aprende a usar Apache Kafka en Go con confluent-kafka-go: cómo crear un producer, manejar el canal de eventos para confirmaciones de entrega, configurar consumers con grupos de consumo y gestionar offsets con commit manual para garantizar que no pierdes mensajes.
-
Javascript
Seguridad JavaScript: XSS, Content Security Policy, sanitización y DOMPurify
Aprende a proteger tu código JavaScript del lado del cliente contra XSS (reflected, stored y DOM-based), cómo usar DOMPurify para sanitizar HTML de usuario, Content Security Policy con nonces, Trusted Types en Chrome y por qué innerHTML mal usado es una puerta de entrada para atacantes.
-
Generales
Const generics en Rust: parámetros de tipo que son valores constantes
Los const generics, estables desde Rust 1.51, permiten usar valores constantes como parámetros genéricos. Aprende a crear structs con tamaño fijo, implementar traits para arrays de cualquier longitud y cuáles son los tipos válidos como const params.
-
Generales
URLSession con async/await en Swift: descargas, uploads, WebSocket y streaming
Aprende a usar URLSession con async/await en Swift: peticiones con data(from:), streaming con AsyncBytes, descargas a fichero, subidas, WebSocket con webSocketTask y sesiones ephemeral. Con el antipatrón más habitual y cómo cancelar tareas correctamente.
-
Python
subprocess en Python: run, Popen, communicate, pipes y ejecución de comandos del sistema
Aprende a usar el módulo subprocess de Python para ejecutar comandos del sistema: subprocess.run() con capture_output, check y timeout; subprocess.Popen con communicate() y poll(); shlex.split() y los peligros de shell=True con datos del usuario.
-
Javascript
Leer errores de TypeScript: entender mensajes complejos, pretty-ts-errors y técnicas de depuración
Cómo leer y entender los errores complejos de TypeScript: estrategia de lectura de abajo a arriba, @ts-expect-error para aislar, reveal_type, AssertEqual, la extensión pretty-ts-errors, el tipo Simplify para expandir tipos opacos y cómo resolver errores de tipos circulares.
-
Generales
cgo en Go: llamar a código C desde Go, importar librerías C y cuándo evitarlo
cgo permite llamar funciones C desde Go usando import C con un preámbulo de comentario. Aprende a convertir strings con C.CString, pasar structs, enlazar librerías con LDFLAGS y exportar funciones Go a C. Incluye el overhead real de cgo y cuándo evitarlo.
-
Javascript
Patrones de diseño en JavaScript: Factory, Strategy, Observer y Command con ES6+
Aprende a usar Factory, Strategy, Observer y Command con JavaScript moderno: centraliza la creación de objetos, pasa algoritmos como argumentos, construye sistemas de eventos con suscriptores y encapsula operaciones con soporte para deshacer. Ejemplos reales con ES6+.
-
Generales
Type-State Pattern en Rust: codificar estados válidos en el sistema de tipos
El type-state pattern en Rust usa parámetros de tipo genéricos y zero-sized types para que el compilador impida llamar a métodos en un estado incorrecto. Los errores son en compilación, no en runtime. Cuatro ejemplos con conexiones, builders, ficheros y peticiones HTTP.
-
Otros lenguajes
FoxPro sigue vivo décadas después: el software empresarial que Microsoft dejó atrás
Visual FoxPro lleva más de una década sin soporte oficial de Microsoft, pero miles de empresas siguen usando aplicaciones de facturación, inventario y gestión construidas sobre esta plataforma. Repasamos su historia, desde la rivalidad con dBASE hasta la compra por Microsoft en 1992 y el moti...









