Artículos
-
Javascript
Canvas 2D en JavaScript: dibujar, transformar, animaciones con requestAnimationFrame
La API Canvas 2D de JavaScript permite dibujar, transformar y animar gráficos en el navegador sin dependencias. Este artículo cubre fillRect, arc, drawImage, save/restore, requestAnimationFrame con game loop, sprite animation y OffscreenCanvas con Web Workers.
-
Generales
Macros declarativas en Rust: macro_rules!, patrones y repetición
Aprende a escribir macros declarativas en Rust con macro_rules!. Cubre patrones como $x:expr e $i:ident, repetición con $(...)* y ejemplos reales: assert personalizado, constructor de structs, mapa! y un DSL de rutas. Incluye errores típicos y cómo depurar con cargo expand.
-
Python
Python 3.12 y 3.13: f-strings mejoradas, type aliases, @override y novedades clave
Python 3.12 resuelve las limitaciones históricas de las f-strings, añade sintaxis nativa para type aliases, el decorador @override para herencia segura y generics sin TypeVar. Python 3.13 suma un REPL mejorado, un JIT experimental y los primeros pasos hacia un modo sin GIL.
-
PHP
Constructor promotion y readonly en PHP 8: menos código para lo mismo
PHP 8 reduce el boilerplate en clases con constructor promotion, que convierte parámetros del constructor en propiedades automáticamente, y las propiedades readonly, que solo se pueden asignar una vez. Además, PHP 8.2 permite marcar clases enteras como readonly. Cuatro ejemplos prácticos con ...
-
Javascript
TypeScript con Vue 3: Composition API tipada, defineProps, defineEmits y ref
Aprende a usar TypeScript con Vue 3 en profundidad: defineProps y defineEmits con sintaxis de tipo puro, ref tipado, reactive, useTemplateRef, defineExpose e InjectionKey. Ejemplos reales con componentes completos y los errores más habituales.
-
Javascript
Performance API en JavaScript: performance.now, PerformanceObserver, Long Tasks y memoria
Aprende a usar la Performance API del navegador: performance.now para timestamps precisos, performance.mark y measure para rangos de código, PerformanceObserver para detectar Long Tasks, LCP, CLS, y calcular Web Vitals con JavaScript puro sin librerías externas.
-
Generales
reqwest en Rust: cliente HTTP asíncrono, GET/POST, headers, JSON y manejo de errores
Aprende a usar reqwest, el cliente HTTP asíncrono más usado en Rust. GET simple con reqwest::get(), Client con pool de conexiones y timeout, deserialización JSON con serde, POST con autenticación Bearer, descarga de ficheros y el error típico del feature json sin activar.
-
Python
match en Python 3.10: pattern matching estructural con case, guards y clases
Aprende a usar el match statement de Python 3.10 para pattern matching estructural: literales, secuencias, mappings, clases, guards con if y OR con |. Con cuatro ejemplos reales que cubren parseo de CLI, respuestas JSON y manejo de eventos.
-
C
C para sistemas embebidos: bare metal en microcontroladores ARM Cortex-M en 2026
Programación bare metal en C para ARM Cortex-M: startup code, linker scripts, volatile para registros hardware, CMSIS y flags de compilación para M4 con FPU.
-
PHP
Static en PHP: métodos y propiedades estáticas, self:: vs static::
Aprende a usar propiedades y métodos estáticos en PHP, la diferencia entre self:: y static:: con Late Static Binding, el patrón Singleton, fábricas estáticas con named constructors y cuándo evitar static para no complicar el testing.









