Artículos

  • Generales 0

    GATs en Rust: Generic Associated Types para abstracciones más potentes

    Los Generic Associated Types (GATs), estables desde Rust 1.65, permiten que los tipos asociados en un trait lleven lifetimes propios. La clave para expresar iteradores de streaming, colecciones que prestan sus elementos y parsers sin copias.

  • Generales 0

    Core Data en Swift: NSManagedObject, NSFetchRequest, NSPersistentContainer y migraciones

    Aprende a usar Core Data en Swift con NSPersistentContainer, NSManagedObject y NSFetchRequest. Ejemplos CRUD completos, trabajo en segundo plano con performBackgroundTask, migraciones ligeras y @FetchRequest para SwiftUI.

  • Generales 0

    Profiling en Rust: cargo-flamegraph, perf y benchmarks con Criterion

    Guía práctica de profiling en Rust: benchmarks estadísticos con Criterion.rs y BenchmarkId, flamegraphs de CPU con cargo-flamegraph, profiling de memoria heap con DHAT y verificación del assembly generado con cargo-asm. Con 4 ejemplos reales y antipatrones habituales.

  • Generales 0

    Combine avanzado en Swift: publishers propios, Scheduler, share(), multicast y error handling

    Aprende a crear publishers propios conformando el protocolo Publisher, a controlar el hilo de ejecución con Scheduler, a compartir suscripciones con share() y multicast(), y a manejar errores con mapError(), catch() y retry(). Con ejemplos reales de Swift.

  • Generales 0

    Configuración en Rust con config y figment: múltiples fuentes, entornos y validación

    Gestiona la configuración de tus aplicaciones Rust con los crates config y figment. Aprende a cargar valores desde ficheros TOML y variables de entorno, deserializar con serde a structs tipadas, organizar por entornos y validar con el crate validator.

  • Generales 0

    Combine en Swift: Publishers, Subscribers, operadores y sink/assign

    Aprende a usar Combine en Swift: publishers como Just, PassthroughSubject y CurrentValueSubject, suscripciones con sink y assign, operadores como map, filter y debounce, y un ejemplo real de buscador con debounce y URLSession.DataTaskPublisher.

  • Generales 0

    tracing en Rust: logging estructurado y async-aware con spans y eventos

    El crate tracing es la solución estándar en Rust para instrumentación async. A diferencia de log, los spans de tracing mantienen el contexto entre puntos .await. Aprende a usar #[instrument], campos estructurados y tracing_subscriber para producción.

  • Generales 0

    Interoperabilidad en Swift: C, Objective-C, bridging headers y Swift C++ interop

    Cómo usar código C y Objective-C desde Swift con el bridging header, @objc y @objcMembers. Módulos C con module.modulemap, punteros C con UnsafePointer y withUnsafeBytes, y la interoperabilidad C++ directa disponible desde Swift 5.9.

  • Generales 0

    Generics en Go en producción: Optional, Result, Set, filter/map/reduce y patrones reales

    Patrones reales con generics en Go: Optional y Result en lugar de punteros y type assertions, Set genérico con Union e Intersection, Filter/Map/Reduce sin boxing con benchmarks, qué no puedes hacer con type switch sobre T y cuándo elegir generics frente a interfaces.

  • Generales 0

    nom en Rust: parsing combinatorio para protocolos, formatos y lenguajes

    nom es la librería de parser combinators para Rust. Aprende a manejar IResult, construir parsers con tag(), digit1(), many1() y alt(), componer un parser de CSV con separated_list0() y leer protocolos binarios con le_u32() y be_u16(). Cuatro ejemplos progresivos desde cero.