Javier Valencia Javier Valencia

Blog personal de Javier Valencia

Ilustración retrofuturista de estética synthwave: tres hilos de neón con puntos de datos convergen en un candado grande y vuelven a separarse al otro lado, bajo el rótulo Send + Sync, con un sol a rayas a la izquierda

Concurrencia en Rust: Send, Sync y por qué el compilador te quita el miedo

4 de noviembre de 2026 · 8 min de lectura · 2 visitas

Durante años usé Go para todo lo que no hacía con Rails, y Go hizo de la concurrencia su argumento de venta: go f(), canales y sync.Mutex. Ahora ese hueco lo ocupa Rust, y lo interesante de sus hilos no es la sintaxis, sino que el compilador sabe cosas sobre ellos que el de Go ignora. Este es el último post de la serie. En Ownership en Rust asomaron Arc y Mutex, y en Borrowing en Rust vimos que la regla de «muchos lectores o un solo escritor» hace imposible escribir una carrera de datos. Hoy toca la maquinaria que...

Leer más →
Ilustración retrofuturista de estética synthwave: un cuaderno abierto de neón con renglones escritos y, encima, una corona de laurel brillante delante de un sol a rayas, entre tiendas de campaña y estandartes romanos en silueta en el horizonte

Las «Meditaciones» de Marco Aurelio antes de leerlas: el cuaderno de un emperador

3 de noviembre de 2026 · 11 min de lectura · 12 visitas

Los estoicos llevan un tiempo rondando por este blog. Primero fue Séneca y su carta sobre el miedo al futuro y el recuerdo del pasado; luego Epicteto, que se coló en el post sobre guardar silencio. Faltaba el más citado de todos: Marco Aurelio, el emperador que escribía para sí mismo en los campamentos del Danubio. Y tengo que empezar con la misma confesión que con El idiota: no he leído las Meditaciones. Así que antes de abrirlas he hecho lo de siempre: ir a las fuentes, ver quién era el que escribía y comprobar si las frases que circulan...

Ilustración retrofuturista de estética synthwave: un rombo de neón con un signo de interrogación del que salen dos flechas hacia dos cajas, una rotulada Ok y otra rotulada Err, delante de un sol a rayas

Option y Result en Rust: enums, pattern matching y errores sin nil

2 de noviembre de 2026 · 8 min de lectura · 11 visitas

Los dos primeros posts de esta serie, Ownership en Rust y Borrowing en Rust, iban de memoria: quién es dueño de cada valor y quién puede tocarlo. Este va de otra pregunta que en Rust también responde el compilador: qué pasa cuando un valor puede no estar o una operación puede fallar. Durante años usé Go para todo lo que no hacía con Rails, y en Go esas dos preguntas tienen la misma respuesta: nil. Un puntero que quizá no apunta a nada, un error que quizá no es nada, y un if err != nil detrás de cada llamada....

Ilustración retrofuturista de estética synthwave: una sartén agujereada llena de castañas sobre una hoguera, con columnas de humo que suben delante de un sol a rayas y montañas recortadas a ambos lados del horizonte

El tostón: castañas asadas en el campo por Todos los Santos en Málaga

31 de octubre de 2026 · 11 min de lectura · 32 visitas

Desde primeros de octubre, en el centro de Málaga uno se encuentra con el humo antes que con el puesto. Una columna gris que sale de un carrito con chimenea, un olor a cáscara quemada que se pega a la ropa y, detrás, alguien que remueve castañas en una sartén llena de agujeros. Es la señal más fiable de que el verano, por fin, se ha ido de esta costa. Y mañana es Todos los Santos, que este año cae en domingo. En buena parte de la provincia eso tiene un nombre: tostón. Salir al campo, hacer fuego, asar castañas...

Ilustración retrofuturista de estética synthwave: un círculo, un cuadrado y un triángulo de neón, cada uno con la misma clavija, encajan en un zócalo común con tres huecos idénticos, bajo el rótulo <T> y con un sol a rayas a la izquierda

Traits y genéricos en Rust: contratos explícitos, despacho estático y dinámico

30 de octubre de 2026 · 8 min de lectura · 30 visitas

En Ownership en Rust y Borrowing en Rust conté cómo decide Rust quién es dueño de cada valor y quién puede tocarlo mientras tanto. Por el camino aparecieron, sin presentarse, unas cuantas palabras raras: Copy, Clone, Drop, Send. Todas son traits, y hoy toca explicar qué son. Durante años usé Go para todo lo que no hacía con Rails, y la pieza equivalente allí es la interfaz: un conjunto de métodos que un tipo cumple sin declararlo. En Rust el contrato se firma con todas las letras, y esa diferencia arrastra todo lo demás: los genéricos, cuándo se paga una...