Blog

Escribo sobre programación, música y otras cosas que me interesan.

La pila de MMORPG "Broke Indie Dev": ejecutar un MMO Godot + Rust por $0 al mes

31 de enero de 2026

Cómo creamos un backend de MMORPG escalable utilizando Oracle Cloud, GCP, IBM Cloud y decisiones arquitectónicas inteligentes, sin gastar un centavo.

BackendArquitcturaRedes
Saber más

CI/CD DIY para Rust en Oracle Cloud: La alternativa gratuita a las plataformas premium

28 de enero de 2026

Si ejecuta un microservicio de Rust en Oracle Cloud y le preocupan los costos de las plataformas empresariales de CI/CD como GitLab Premium, Jenkins o soluciones alojadas, tenemos buenas noticias. Puede implementar la integración y el despliegue continuos de nivel de producción con tres herramientas gratuitas: GitHub Actions , autenticación de clave SSH y systemd . Esta guía le muestra exactamente cómo construir un pipeline de CI/CD que compita con plataformas que cuestan cientos por mes, sin pagar absolutamente nada .

CI/CD
Saber más

La guía completa para la entrega de proyectos de aplicaciones web: desde el desarrollo hasta la entrega al cliente

3 de octubre de 2025

Como ingenieros de software, a menudo nos destacamos en la creación de aplicaciones sorprendentes, pero a veces tenemos dificultades con el aspecto comercial de la entrega al cliente. Esta guía completa cubre todo lo que necesitamos saber sobre cómo llevar nuestros proyectos de aplicaciones web desde su finalización hasta su entrega exitosa, garantizando al mismo tiempo pagos seguros y relaciones profesionales con los clientes.

Negocios
Saber más

5+ años de programación: lecciones críticas que todo ingeniero de software debería saber

2 de octubre de 2025

Después de más de una década en el desarrollo de software, hemos aprendido lecciones que cambiaron fundamentalmente la forma en que abordamos nuestro oficio. Nos llevó años descubrir estos conocimientos, pero los compartimos con ustedes hoy— porque creemos que todo ingeniero de software merece saber qué es lo que realmente importa más allá del código en sí.

Consejos
Saber más

Memoria y almacenamiento: bases para ingenieros de backend

30 de septiembre de 2025

La ingeniería de backend a menudo gira en torno a cómo se procesan, almacenan, recuperan y manipulan los datos. Para comprender verdaderamente las estructuras de datos y los algoritmos, es útil comprender el panorama subyacente del hardware y el sistema operativo: cómo interactúan la CPU, los registros, el caché, la RAM, el almacenamiento y el kernel para mover y administrar datos.

DSARustFoundamentals
Saber más

Comprender los mapas hash: el almacén indexado de los sistemas backend

29 de septiembre de 2025

Para los ingenieros de software backend, dominar la eficiencia del acceso a los datos es primordial. Entre las estructuras de datos principales que permiten una búsqueda rápida y un almacenamiento dinámico se encuentra el **Hash Map**. Este artículo profundiza en el funcionamiento interno de Hash Maps, utilizando una analogía de almacén, explicaciones técnicas del diseño de memoria de Rust y conocimientos a nivel de kernel para ofrecer una comprensión integral adecuada para aplicaciones backend del mundo real.

DSARust
Saber más

Listas vinculadas: cuadros dispersos con etiquetas de dirección

28 de septiembre de 2025

Las listas enlazadas en Rust son como una cadena de cajas esparcidas por el piso de un almacén, donde cada caja contiene no solo un producto sino también un puntero a la ubicación de la siguiente caja. Este diseño es ideal cuando los estantes del almacén no pueden ser físicamente contiguos pero aún así necesitan una secuencia ordenada. Este artículo explora listas enlazadas a través de la analogía del almacén, presenta ejemplos de Rust centrados en el diseño de la memoria e incluye un diagrama explicativo de Mermaid, diseñado para ingenieros de software.rust-unofficial.github+1

DSARust
Saber más

Vectores: Pasillos de almacén ampliables

28 de septiembre de 2025

Los vectores en Rust son como pasillos expandibles en un almacén—construidos para flexibilidad, acceso rápido y crecimiento dinámico. Este artículo ofrece una analogía profunda entre los vectores y la logística del almacén, incluye ejemplos precisos de código Rust y proporciona un **diagrama de sirena** para aclarar la estructura y el diseño de la memoria para los ingenieros.[^1][^2][^3]

DSARust
Saber más

Arrays como estantes de almacén

28 de septiembre de 2025

Piense en un almacén con una fila de estantes idénticos, cada ranura numerada y lo suficientemente grande como para contener un solo tipo de artículo. Una vez instalados estos estantes, la capacidad es fija — muy parecida a una matriz Rust, que tiene un tipo y un tamaño determinados en el momento de la compilación.

DSARust
Saber más

Estructuras de datos como almacenes: bajo la perspectiva de Rust

28 de septiembre de 2025

Cuando pensamos en estructuras de datos, a menudo resulta útil mapearlas a analogías del mundo real. Una analogía poderosa es la de un almacén. Un almacén almacena mercancías de formas específicas para optimizar la recuperación, la organización y el uso del espacio. De manera similar, las estructuras de datos organizan los datos en la memoria para equilibrar la eficiencia, los patrones de acceso y la flexibilidad. Este artículo explora cómo las estructuras de datos pueden considerarse como diferentes tipos de almacenes y utilizaremos ejemplos de Rust para conectar la analogía con diseños de memoria reales.

DSARust
Saber más

Cuándo deberías usar hilos?

25 de junio de 2025

Este artículo explora los escenarios en los que el uso de hilos puede mejorar el rendimiento y la capacidad de respuesta de la aplicación.

Backend
Saber más

Entendiendo Serde: Una Profundización en la Serialización y Deserialización de Rust

5 de junio de 2025

Serde es un marco poderoso en Rust para serializar y deserializar estructuras de datos. Este artículo explora sus características, casos de uso y mejores prácticas.

BackendRust
Saber más

Entendiendo el Layout de Memoria en Rust

4 de junio de 2025

Comprender el layout de memoria en Rust es clave para escribir código seguro, eficiente e idiomático. Este post explica cómo Rust gestiona la memoria, desde la pila y el heap hasta los punteros inteligentes y los trait objects.

Rust
Saber más

Normalización de Bases de Datos: 1NF, 2NF y 3NF

30 de mayo de 2025

La normalización de bases de datos es un concepto importante en el diseño de bases de datos que garantiza la integridad de los datos y reduce la redundancia.

BackendBases de Datos
Saber más

Programación Sincrónica vs Asincrónica

6 de julio de 2024

Una visión general de los paradigmas de programación sincrónica y asincrónica, sus diferencias y casos de uso.

Backend
Saber más

Comprendiendo el Modelo de Solicitud-Respuesta

5 de julio de 2024

Una visión general del modelo de solicitud-respuesta en el desarrollo web.

BackendArquitectura
Saber más

Balanceo de Carga en la Capa 4 vs Capa 7

5 de julio de 2024

Entender las diferencias entre el balanceo de carga en la Capa 4 y la Capa 7 es crucial para diseñar arquitecturas de red eficientes y escalables.

BackendRedes
Saber más

La Crónica de los Guardianes: Descifrando la Traducción de Direcciones de Red para Arquitectos Backend

26 de junio de 2024

El génesis de NAT radica en la escasez inherente de direcciones IP públicas. Con el crecimiento explosivo de Internet, la demanda de estos identificadores únicos ha superado con creces la oferta. NAT surgió como una solución, permitiendo que múltiples dispositivos dentro de una red privada compartan una única dirección IP pública, conservando efectivamente este recurso precioso.

BackendRedes
Saber más

El Alquimista de Redes: Descifrando el Control de Congestión TCP para Hechiceros Backend

24 de junio de 2024

Adentrate en las complejidades del control de congestión, la piedra angular de la transmisión de datos confiable. Únete a nuestro sabio mago mientras te guía a través de los principios de los algoritmos de inicio lento y evasión de congestión de TCP, revelando la magia detrás de una comunicación de red eficiente y estable.

BackendRedes
Saber más

La evolución más allá de la clásica solicitud-respuesta, encuestas largas

11 de febrero de 2024

Las encuestas largas redefinen cómo manejamos la comunicación casi en tiempo real en aplicaciones web, ofreciendo un enfoque refinado cuando los WebSockets o los eventos enviados por el servidor pueden ser excesivos. Como ingenieros de software, comprender el largo ciclo de vida del sondeo —desde la asignación de memoria hasta la E/S asistida por el kernel— nos permite diseñar sistemas más robustos y eficientes que escalan elegantemente en todas las condiciones de la red.

BackendNetworking
Saber más

Short Polling: un enfoque pragmático para solicitudes de larga duración y notificaciones asincrónicas

31 de enero de 2024

Las aplicaciones web exigen capacidad de respuesta, pero no todas las cargas de trabajo encajan perfectamente en el modelo clásico de solicitud-respuesta. Cuando las solicitudes implican tiempos de procesamiento prolongados o cuando queremos que el servidor active actualizaciones de forma asincrónica, los sondeos cortos nos ofrecen una solución pragmática y ampliamente aplicable.

BackendNetworking
Saber más

Push Model in Backend Systems

30 de enero de 2024

Una exploración del modelo de push en sistemas backend, sus beneficios y estrategias de implementación.

BackendArquitectura
Saber más

TLS: Entendiendo la Seguridad de la Capa de Transporte

23 de enero de 2024

La Seguridad de la Capa de Transporte (TLS) es un protocolo criptográfico diseñado para proporcionar comunicación segura a través de una red informática.

BackendSeguridad
Saber más

Sistema de Nombres de Dominio (DNS)

22 de enero de 2024

El Sistema de Nombres de Dominio (DNS) es un sistema de nombres jerárquico y descentralizado para computadoras, servicios o cualquier recurso conectado a Internet o a una red privada.

BackendRedes
Saber más

Crónica de los Arquitectos: Dominando la Ventana Deslizante de TCP para el Control de Flujo de Red

19 de enero de 2024

El control de flujo juega un papel crucial en la prevención de la congestión de datos y garantiza que los datos fluyan sin problemas entre el emisor y el receptor.

BackendRedes
Saber más

Descubriendo La Anatomía De Un Segmento Tcp: Un Profundo Desglose De La Transferencia De Datos Establecida

19 de enero de 2024

Para desglosar el funcionamiento de TCP, vamos a embarcarnos en una aventura en la anatomía de un segmento TCP, la unidad fundamental de transferencia de datos.

BackendRedes
Saber más

Protocolo de resolución de direcciones

11 de enero de 2024

Las direcciones IP son utilizadas por computadoras para identificar a otras en una red, mientras que las direcciones MAC son identificadores físicos asignados a tarjetas de red.

BackendRedes
Saber más

ICMP (Protocolo de Mensajes de Control de Internet)

9 de enero de 2024

Es un elemento fundamental para el diagnóstico de redes y la supervisión del rendimiento.

BackendRedes
Saber más

Navigiendo El Espacio de Red: Descodificando Direcciones Ip, Subredes Y El Puente Por Defecto

8 de enero de 2024

Una guía exhaustiva sobre los conceptos fundamentales de redes, incluyendo la dirección IP, la organización de subredes y el papel de los puentes por defecto en la comunicación de redes.

BackendRedes
Saber más

Navegando La Carretera Digital: Desvelando La Comunicación Host-To-Host.

4 de enero de 2024

Abraza tu mente para una exploración del mundo complejo de la comunicación host-to-host en el panorama digital.

BackendArquitectura
Saber más

El Arquitectura Cliente-Servidor Revolucionaria

4 de enero de 2024

Este modelo revolucionario es un concepto fundamental en el desarrollo de software moderno, ofreciendo una solución escalable, eficiente y mantenible para manejar aplicaciones de gran escala.

BackendArquitectura
Saber más

Procesamiento de Solicitudes HTTP

2 de enero de 2024

Viaje de una Solicitud HTTP: Desde Cliente hasta Servidor y de Nuevo

BackendKernelHTTP
Saber más

Sockets en AsyncIO

28 de octubre de 2023

Como usar Sockets en AsyncIO

PythonBackendConcurrenciaMultihilosMultiprocesamiento
Saber más

Futuros

25 de octubre de 2023

Explorando el mundo de Futuros, Tareas y Awaitables en Python

PythonAsyncIOProgramación AsíncronaRendimiento
Saber más

AsyncIO 3

25 de octubre de 2023

Programación asincrónica con asyncio es una poderosa herramienta para manejar tareas I/O-bound concurrentes.

PythonBackendConcurrenciaMultihilosMultiprocesamiento
Saber más

Corutinas y Tareas en Python

25 de octubre de 2023

Una guía completa para comprender corutinas y tareas en el modelo de programación asíncrona de Python. Aprende cómo implementar operaciones concurrentes de manera eficiente utilizando la sintaxis async/await, gestionar la ejecución a través del bucle de eventos y mejorar el rendimiento de la aplicación con ejemplos prácticos y mejores prácticas.

PythonAsyncIOProgramación AsíncronaRendimiento
Saber más

AsyncIO-2

24 de octubre de 2023

GIL explicado en detalle

PythonBackendConcurrenciaMultihilosMultiprocesamiento
Saber más

AsyncIO-1

23 de octubre de 2023

Explora los fundamentos de la concurrencia en Python a través de procesos y hilos. Aprende las diferencias, los casos de uso y las mejores prácticas para implementar multithreading y multiprocessing en tus aplicaciones.

PythonBackendConcurrenciaMultihilosMultiprocesamiento
Saber más

Hacking PythonAnywhere: Despliegue de Múltiples Apps (Sin ASGI)

12 de octubre de 2023

Despliegue de múltiples apps en PythonAnywhere es una necesidad común, pero puede ser complicado debido a la ausencia de soporte ASGI. En este guía, exploraremos una solución de trabajo para desplegar múltiples apps sin ASGI.

PythonDevOpsTruco
Saber más

Configuración de Python con Docker

4 de octubre de 2023

Docker es una herramienta muy útil para gestionar y ejecutar aplicaciones en contenedores. En este artículo, exploraremos algunas pautas para configurar Python con Docker.

BackendDocker
Saber más

Optimización del rendimiento de Beautiful Soup

31 de mayo de 2022

Beautiful Soup es una herramienta muy útil para la extracción de páginas web, pero puede ser lento cuando se trata de páginas grandes. En este artículo, exploraremos algunas pautas para optimizar el rendimiento de Beautiful Soup.

PythonBeautifulSoupWeb ScrapingRendimiento
Saber más

Guardando una Clase en un Archivo JSON

31 de mayo de 2022

¿Qué son las APIs y por qué son importantes en el desarrollo de software moderno?

PythonTruco
Saber más