<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Tu codigo cotidiano</title>
    <description>The latest articles on DEV Community by Tu codigo cotidiano (@tu_codigocotidiano_f173d).</description>
    <link>https://dev.to/tu_codigocotidiano_f173d</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3375057%2Ffa90e872-13fe-4a57-b3d6-e75515a50879.png</url>
      <title>DEV Community: Tu codigo cotidiano</title>
      <link>https://dev.to/tu_codigocotidiano_f173d</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/tu_codigocotidiano_f173d"/>
    <language>en</language>
    <item>
      <title>Python for Absolute Beginners: Start With One Line of Code</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Thu, 02 Jul 2026 17:03:39 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/why-python-is-the-language-of-the-moment-your-first-line-of-code-55ba</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/why-python-is-the-language-of-the-moment-your-first-line-of-code-55ba</guid>
      <description>&lt;p&gt;Many people want to learn programming, but they stop before writing their first line of code.&lt;/p&gt;

&lt;p&gt;Not because they are not capable.&lt;/p&gt;

&lt;p&gt;Because programming often feels too big at the beginning:&lt;/p&gt;

&lt;p&gt;artificial intelligence, data, automation, web development, frameworks, tools, installations, terminals, errors…&lt;/p&gt;

&lt;p&gt;So I wrote a beginner-friendly guide in Spanish with one simple goal:&lt;/p&gt;

&lt;p&gt;help someone understand why Python is so popular and write their first real line of code.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;&lt;span class="nf"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;Hola, mundo&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That line looks small, but it represents something powerful:&lt;/p&gt;

&lt;p&gt;you write an instruction, the computer reads it, and something happens on the screen.&lt;/p&gt;

&lt;p&gt;That is the first real connection with programming.&lt;/p&gt;

&lt;p&gt;In the guide, I explain visually and step by step:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;why Python is used in artificial intelligence&lt;/li&gt;
&lt;li&gt;why it is useful for data analysis&lt;/li&gt;
&lt;li&gt;how it helps with automation&lt;/li&gt;
&lt;li&gt;how it connects with web development&lt;/li&gt;
&lt;li&gt;why it is one of the best languages for beginners&lt;/li&gt;
&lt;li&gt;what &lt;code&gt;print("Hola, mundo")&lt;/code&gt; means&lt;/li&gt;
&lt;li&gt;how to try your first line without feeling overwhelmed&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to understand everything on day one.&lt;/p&gt;

&lt;p&gt;The goal is much simpler:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;“I can try this.”&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Programming does not start with knowing everything.&lt;/p&gt;

&lt;p&gt;It starts with curiosity, one simple instruction, and the confidence to keep going.&lt;/p&gt;

&lt;p&gt;I wrote this guide for people who are just starting and need a friendly first step.&lt;/p&gt;

&lt;p&gt;Full guide in Spanish:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/por-que-python-es-el-lenguaje-del-momento-tu-primera-linea-de-codigo/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/por-que-python-es-el-lenguaje-del-momento-tu-primera-linea-de-codigo/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What was the first line of code you ever wrote?&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fssttkejdzpzjuacqz9jz.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fssttkejdzpzjuacqz9jz.jpg" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>python</category>
      <category>beginners</category>
      <category>tutorial</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Build a Minimal Git in Rust: Objects, Hashes, Commits and Log</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Mon, 29 Jun 2026 14:01:56 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/build-a-minimal-git-in-rust-objects-hashes-commits-and-log-31i7</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/build-a-minimal-git-in-rust-objects-hashes-commits-and-log-31i7</guid>
      <description>&lt;h1&gt;
  
  
  I built a MiniGit in Rust to understand how Git works internally
&lt;/h1&gt;

&lt;p&gt;Git is one of those tools we use every day, but many times it feels like a black box.&lt;/p&gt;

&lt;p&gt;We know how to run:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git init
git commit
git log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;But what actually happens inside?&lt;/p&gt;

&lt;p&gt;I wrote a full Spanish tutorial where we build a small educational version of Git in Rust, step by step.&lt;/p&gt;

&lt;p&gt;The project creates a &lt;code&gt;.minigit&lt;/code&gt; folder and implements the core ideas behind Git:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Reading files as exact bytes&lt;/li&gt;
&lt;li&gt;Creating blob objects&lt;/li&gt;
&lt;li&gt;Calculating SHA-1 hashes like Git&lt;/li&gt;
&lt;li&gt;Saving objects by hash&lt;/li&gt;
&lt;li&gt;Recovering content from objects&lt;/li&gt;
&lt;li&gt;Creating minimal commits&lt;/li&gt;
&lt;li&gt;Updating &lt;code&gt;refs/heads/main&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;Walking commit history with &lt;code&gt;log&lt;/code&gt;
&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;The goal is not to replace Git.&lt;br&gt;&lt;br&gt;
The goal is to open the black box and understand the model:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;file
  ↓
exact bytes
  ↓
blob object
  ↓
SHA-1
  ↓
.minigit/objects/&amp;lt;hash&amp;gt;
  ↓
commit
  ↓
refs/heads/main
  ↓
log
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;This tutorial is especially useful if you are learning Rust, Git internals, systems programming, or how content-addressed storage works.&lt;/p&gt;

&lt;p&gt;The article is in Spanish, but the code is simple and easy to follow.&lt;/p&gt;

&lt;p&gt;Read the full tutorial here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/tu-propio-git-minimo-en-rust-objetos-hashes-commits-y-log/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/tu-propio-git-minimo-en-rust-objetos-hashes-commits-y-log/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;I would love to know what you think, especially if you are also interested in building developer tools from scratch.&lt;/p&gt;

</description>
      <category>rust</category>
      <category>git</category>
      <category>tutorial</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Build an HTTP server from scratch in Rust — no frameworks, no dependencies</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Mon, 22 Jun 2026 15:37:47 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/build-an-http-server-from-scratch-in-rust-no-frameworks-no-dependencies-4np5</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/build-an-http-server-from-scratch-in-rust-no-frameworks-no-dependencies-4np5</guid>
      <description>&lt;p&gt;A web server does not start as a framework.&lt;/p&gt;

&lt;p&gt;Before Axum, Actix, Rocket, Express, Django or FastAPI, there is something much simpler:&lt;/p&gt;

&lt;p&gt;a program that opens a TCP port, accepts connections, reads bytes, interprets an HTTP request and writes back a response the browser can understand.&lt;/p&gt;

&lt;p&gt;I wrote a Spanish tutorial where we build that from scratch using only Rust’s standard library.&lt;/p&gt;

&lt;p&gt;The tutorial covers:&lt;/p&gt;

&lt;p&gt;TcpListener and TcpStream&lt;/p&gt;

&lt;p&gt;reading real HTTP requests from the browser&lt;/p&gt;

&lt;p&gt;building HTTP responses manually&lt;/p&gt;

&lt;p&gt;simple routing&lt;/p&gt;

&lt;p&gt;serving HTML files from public/&lt;/p&gt;

&lt;p&gt;handling 404 NOT FOUND&lt;/p&gt;

&lt;p&gt;handling 500 INTERNAL SERVER ERROR&lt;/p&gt;

&lt;p&gt;basic concurrency with std:🧵:spawn&lt;/p&gt;

&lt;p&gt;The main idea:&lt;/p&gt;

&lt;p&gt;HTTP is not magic. HTTP is formatted text traveling over TCP.&lt;/p&gt;

&lt;p&gt;If you are learning backend development, Rust, networking or just want to understand what web frameworks hide under the hood, this tutorial is for you.&lt;/p&gt;

&lt;p&gt;Tutorial here:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/servidor-http-desde-cero-sobre-tcp-en-rust-sin-frameworks-y-sin-dependencias/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/servidor-http-desde-cero-sobre-tcp-en-rust-sin-frameworks-y-sin-dependencias/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszysrwu9m3z77agt10r6.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fszysrwu9m3z77agt10r6.jpg" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>webdev</category>
      <category>http</category>
      <category>beginners</category>
    </item>
    <item>
      <title>View Transitions API: matemáticas de interpolación para transiciones entre páginas SPA</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Fri, 17 Apr 2026 00:30:33 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/view-transitions-api-matematicas-de-interpolacion-para-transiciones-entre-paginas-spa-24gn</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/view-transitions-api-matematicas-de-interpolacion-para-transiciones-entre-paginas-spa-24gn</guid>
      <description>&lt;p&gt;La mayoría de explicaciones sobre View Transitions API se quedan en la superficie: “sirve para animar páginas”. En este artículo propongo un enfoque más preciso y mucho más útil para desarrolladores frontend: entenderla como una interpolación entre estados visuales del DOM.&lt;/p&gt;

&lt;p&gt;La guía recorre la idea desde cinco capas: modelo mental, base matemática intuitiva, pipeline interno del navegador, valor real en SPA y variables perceptuales como posición, escala, opacidad y easing. El objetivo no es solo mostrar una API bonita, sino ofrecer un criterio técnico para pensar continuidad visual en interfaces web.&lt;/p&gt;

&lt;p&gt;Artículo completo:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/view-transitions-api-matematicas-de-interpolacion-para-transiciones-entre-paginas-spa/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/view-transitions-api-matematicas-de-interpolacion-para-transiciones-entre-paginas-spa/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8dfamhfmupl82hqamufv.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8dfamhfmupl82hqamufv.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>css</category>
      <category>webdev</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Kubernetes: ¿realmente lo necesitas o solo estás agregando complejidad?</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Tue, 14 Apr 2026 13:39:02 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/kubernetes-realmente-lo-necesitas-o-solo-estas-agregando-complejidad-iha</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/kubernetes-realmente-lo-necesitas-o-solo-estas-agregando-complejidad-iha</guid>
      <description>&lt;p&gt;Publiqué un nuevo episodio en Tu código cotidiano sobre una de esas decisiones técnicas que muchas veces se toman por prestigio y no por necesidad real:&lt;/p&gt;

&lt;p&gt;usar Kubernetes.&lt;/p&gt;

&lt;p&gt;Kubernetes puede ser increíble cuando el problema lo justifica.&lt;br&gt;
Pero también puede convertirse en una capa enorme de complejidad operativa si tu sistema todavía no está en ese punto.&lt;/p&gt;

&lt;p&gt;En este episodio explico:&lt;/p&gt;

&lt;p&gt;qué hace Kubernetes de verdad&lt;br&gt;
por qué tanta gente lo adopta antes de tiempo&lt;br&gt;
cuándo sí vale la pena&lt;br&gt;
y cómo pensar la decisión desde costo operativo versus valor real&lt;/p&gt;

&lt;p&gt;Si trabajas en software, backend, infraestructura o despliegues, creo que este episodio te va a gustar porque intenta responder la pregunta sin humo y sin fanatismo.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí: &lt;a href="https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/kubernetes-solucion-escalable-o-exceso-de-ingenieria/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/kubernetes-solucion-escalable-o-exceso-de-ingenieria/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vnkd90oqp4biyd9qmcf.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F6vnkd90oqp4biyd9qmcf.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>kubernetes</category>
      <category>devops</category>
      <category>backend</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Construye una analítica web zero-tracking con JavaScript puro, Rust y SQLite</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Mon, 13 Apr 2026 13:26:08 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/construye-una-analitica-web-zero-tracking-con-javascript-puro-rust-y-sqlite-3kg6</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/construye-una-analitica-web-zero-tracking-con-javascript-puro-rust-y-sqlite-3kg6</guid>
      <description>&lt;p&gt;Publiqué una nueva guía en TuCodigoCotidiano sobre un tema que me parece cada vez más importante: cómo medir una web sin convertir la analítica en rastreo.&lt;/p&gt;

&lt;p&gt;Construí un sistema “zero-tracking” con JS puro y Rust que registra pageviews reales, persiste eventos en SQLite, soporta SPA y expone un dashboard mínimo.&lt;/p&gt;

&lt;p&gt;Sin cookies.&lt;br&gt;
Sin identificadores persistentes.&lt;br&gt;
Sin plataformas externas.&lt;br&gt;
Sin complejidad innecesaria.&lt;/p&gt;

&lt;p&gt;Me gusta este enfoque porque demuestra algo clave: muchas veces no necesitas saber quién es el usuario; necesitas entender qué ocurrió, en qué ruta ocurrió y cómo validarlo técnicamente.&lt;/p&gt;

&lt;p&gt;Te dejo la guía aquí:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/analitica-web-zero-tracking-construye-tu-propio-sistema-en-js-puro-y-rust-sin-cookies-ni-identificadores/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/analitica-web-zero-tracking-construye-tu-propio-sistema-en-js-puro-y-rust-sin-cookies-ni-identificadores/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdveyn0exuctsezil0l9z.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fdveyn0exuctsezil0l9z.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>javascript</category>
      <category>privacybydesign</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>Hacking ético: pensar como el atacante para defender mejor tu código</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Fri, 10 Apr 2026 15:15:50 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/hacking-etico-pensar-como-el-atacante-para-defender-mejor-tu-codigo-5gj5</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/hacking-etico-pensar-como-el-atacante-para-defender-mejor-tu-codigo-5gj5</guid>
      <description>&lt;p&gt;Publiqué un nuevo episodio en Tu código cotidiano sobre una idea clave para cualquiera que construya software:&lt;/p&gt;

&lt;p&gt;si no entiendes cómo podría romperse un sistema, te costará mucho protegerlo de verdad.&lt;/p&gt;

&lt;p&gt;Eso no significa promover daño.&lt;br&gt;
Significa adoptar una mentalidad de revisión más dura, más honesta y más útil.&lt;/p&gt;

&lt;p&gt;En este episodio explico:&lt;/p&gt;

&lt;p&gt;por qué pensar como atacante mejora la defensa&lt;br&gt;
cómo cambia la forma de ver una aplicación cuando piensas en superficie de ataque&lt;br&gt;
por qué las entradas, permisos, errores y decisiones de arquitectura importan tanto&lt;br&gt;
y cómo el hacking ético ayuda a escribir software más robusto&lt;/p&gt;

&lt;p&gt;Es un episodio pensado para desarrolladores, gente de backend, personas interesadas en seguridad y cualquiera que quiera mejorar su criterio técnico.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/hacking-etico-como-pensar-como-el-atacante-para-defender-tu-codigo/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/hacking-etico-como-pensar-como-el-atacante-para-defender-tu-codigo/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wbifsc2s66p4e60tk2y.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F3wbifsc2s66p4e60tk2y.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cybersecurity</category>
      <category>securecoding</category>
      <category>softwareengineering</category>
    </item>
    <item>
      <title>JavaScript Generators, Iterators, and function*: Pausing Execution Without Magic</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Thu, 09 Apr 2026 14:51:36 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/javascript-generators-iterators-and-function-pausing-execution-without-magic-56e3</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/javascript-generators-iterators-and-function-pausing-execution-without-magic-56e3</guid>
      <description>&lt;p&gt;Most explanations of function* stay at the syntax level. That’s the problem.&lt;/p&gt;

&lt;p&gt;In this article, I break down the real difference between iterables, iterators, and generators in JavaScript, then connect yield and next() to a much stronger mental model: finite state machines.&lt;/p&gt;

&lt;p&gt;You’ll see why generators are not automatic async behavior, not concurrency, and not “magic functions,” but a precise way to pause execution, preserve context, and resume a sequence on demand.&lt;/p&gt;

&lt;p&gt;If you want to understand generators beyond memorizing syntax, this guide is for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/generadores-function-e-iteradores-pausando-la-ejecucion-y-maquinas-de-estado-finito/#comments" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/generadores-function-e-iteradores-pausando-la-ejecucion-y-maquinas-de-estado-finito/#comments&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feagzk3yp5pidrf17mxhe.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Feagzk3yp5pidrf17mxhe.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>webdev</category>
      <category>programming</category>
      <category>frontend</category>
    </item>
    <item>
      <title>Concurrencia vs Paralelismo: no son lo mismo y esta diferencia importa de verdad</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Wed, 08 Apr 2026 15:42:36 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/concurrencia-vs-paralelismo-no-son-lo-mismo-y-esta-diferencia-importa-de-verdad-26a8</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/concurrencia-vs-paralelismo-no-son-lo-mismo-y-esta-diferencia-importa-de-verdad-26a8</guid>
      <description>&lt;p&gt;Publiqué un nuevo episodio en Tu código cotidiano sobre una de esas diferencias que parecen teóricas… hasta que empiezan a cambiar cómo diseñas software de verdad:&lt;/p&gt;

&lt;p&gt;concurrencia vs paralelismo.&lt;/p&gt;

&lt;p&gt;Mucha gente las usa como si fueran sinónimos, pero no lo son.&lt;/p&gt;

&lt;p&gt;En este episodio explico:&lt;/p&gt;

&lt;p&gt;por qué la concurrencia tiene más que ver con la organización de tareas&lt;br&gt;
por qué el paralelismo tiene que ver con ejecución simultánea real&lt;br&gt;
cómo se relacionan&lt;br&gt;
y por qué entender esta distinción mejora tu intuición sobre sistemas, rendimiento y arquitectura&lt;/p&gt;

&lt;p&gt;Si trabajas con programación, sistemas distribuidos, rendimiento o simplemente quieres pensar mejor cómo se ejecuta el software, creo que este episodio te va a gustar.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/concurrencia-vs-paralelismo-no-son-lo-mismo-y-te-explicamos-por-que/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/concurrencia-vs-paralelismo-no-son-lo-mismo-y-te-explicamos-por-que/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2zow3c28meoblz59aph.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fy2zow3c28meoblz59aph.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>programming</category>
      <category>softwareengineering</category>
      <category>concurrency</category>
      <category>parallelism</category>
    </item>
    <item>
      <title>WebRTC y HTML: la arquitectura real detrás de una videollamada P2P</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Tue, 07 Apr 2026 18:47:29 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/webrtc-y-html-la-arquitectura-real-detras-de-una-videollamada-p2p-5gb1</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/webrtc-y-html-la-arquitectura-real-detras-de-una-videollamada-p2p-5gb1</guid>
      <description>&lt;p&gt;Muchísima gente aprende WebRTC con un modelo mental incompleto: creen que una videollamada es básicamente “poner dos videos y conectarlos”.&lt;/p&gt;

&lt;p&gt;Ese enfoque parece suficiente al principio, hasta que aparece la realidad:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la pantalla remota queda negra&lt;/li&gt;
&lt;li&gt;los peers no conectan&lt;/li&gt;
&lt;li&gt;ICE no completa&lt;/li&gt;
&lt;li&gt;el flujo local existe, pero el remoto nunca llega&lt;/li&gt;
&lt;li&gt;o HTML termina cargando una culpa que en realidad pertenece a signaling o conectividad&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;La idea clave es esta:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;WebRTC no empieza cuando ves el video. Empieza antes, en una fase de negociación y descubrimiento de conectividad.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  El error mental más común
&lt;/h2&gt;

&lt;p&gt;Confundir en un solo bloque cosas que viven en capas distintas:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;HTML&lt;/strong&gt; muestra el flujo&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;MediaStream&lt;/strong&gt; representa medios capturados o recibidos&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;RTCPeerConnection&lt;/strong&gt; negocia y transporta&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SDP&lt;/strong&gt; describe la sesión&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;ICE&lt;/strong&gt; busca rutas viables&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;STUN/TURN&lt;/strong&gt; ayudan a resolver conectividad en internet real&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Cuando eso no está claro, depurar una llamada se vuelve frustrante porque todo parece “problema de video”, cuando muchas veces el fallo ocurrió antes del render.&lt;/p&gt;

&lt;h2&gt;
  
  
  Tres ideas que cambian por completo cómo entiendes WebRTC
&lt;/h2&gt;

&lt;h3&gt;
  
  
  1. HTML no transmite el video
&lt;/h3&gt;

&lt;p&gt;El elemento &lt;code&gt;&amp;lt;video&amp;gt;&lt;/code&gt; no negocia la llamada ni descubre rutas de red.&lt;br&gt;&lt;br&gt;
Solo materializa en la interfaz un flujo que el navegador ya pudo capturar o recibir.&lt;/p&gt;

&lt;h3&gt;
  
  
  2. Una pantalla negra casi nunca significa “falló el video”
&lt;/h3&gt;

&lt;p&gt;Muchas veces significa que falló algo anterior:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;la oferta&lt;/li&gt;
&lt;li&gt;la respuesta&lt;/li&gt;
&lt;li&gt;los candidatos ICE&lt;/li&gt;
&lt;li&gt;la selección de ruta&lt;/li&gt;
&lt;li&gt;o la asociación final del stream al DOM&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  3. Peer-to-peer no significa “sin infraestructura”
&lt;/h3&gt;

&lt;p&gt;Aunque el medio pueda terminar fluyendo entre peers, antes suele hacer falta:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;signaling&lt;/li&gt;
&lt;li&gt;descubrimiento de conectividad&lt;/li&gt;
&lt;li&gt;y a veces TURN como relevo&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Entonces, ¿cómo conviene pensar WebRTC?
&lt;/h2&gt;

&lt;p&gt;No como “dos videos conectados”.&lt;/p&gt;

&lt;p&gt;Sino como una arquitectura con capas separadas:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;captura local
&lt;/li&gt;
&lt;li&gt;negociación
&lt;/li&gt;
&lt;li&gt;conectividad
&lt;/li&gt;
&lt;li&gt;transporte de medios
&lt;/li&gt;
&lt;li&gt;render en HTML
&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Ese cambio de modelo mental hace que WebRTC deje de parecer magia y empiece a verse como sistema.&lt;/p&gt;

&lt;h2&gt;
  
  
  Guía completa
&lt;/h2&gt;

&lt;p&gt;Si quieres ver esta arquitectura explicada paso a paso, con el papel exacto de HTML, el handshake real, SDP, ICE, STUN/TURN y una separación clara entre interfaz, lógica del peer y señalización, aquí está la guía completa:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/webrtc-y-html-arquitectura-real-de-la-transmision-de-video-p2p/" rel="noopener noreferrer"&gt;Leer la guía completa&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webrtc</category>
      <category>html</category>
      <category>javascript</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Deception Mesh: construyendo un MVP de telemetría defensiva en Rust con honeypots HTTP/SSH</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Mon, 06 Apr 2026 14:44:34 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/deception-mesh-construyendo-un-mvp-de-telemetria-defensiva-en-rust-con-honeypots-httpssh-4jpm</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/deception-mesh-construyendo-un-mvp-de-telemetria-defensiva-en-rust-con-honeypots-httpssh-4jpm</guid>
      <description>&lt;p&gt;Acabo de publicar Deception Mesh, un proyecto open source en Rust orientado a capturar actividad sospechosa temprana usando sensores señuelo distribuidos.&lt;/p&gt;

&lt;p&gt;La motivación del proyecto nace de un problema muy concreto: muchas señales tempranas de reconocimiento o exploración ofensiva se pierden entre logs dispersos o carecen de contexto suficiente para triage. Un simple HEAD /login, una solicitud a /wp-login.php o un intento SSH inválido rara vez parecen “grandes eventos”, pero sí pueden ser el primer indicio útil.&lt;/p&gt;

&lt;p&gt;En este MVP trabajé sobre una arquitectura simple y reproducible:&lt;/p&gt;

&lt;p&gt;sensor agent con honeypots HTTP y SSH&lt;br&gt;
control plane con autenticación, RBAC y gestión multi-tenant&lt;br&gt;
persistencia en PostgreSQL&lt;br&gt;
severidad por reglas&lt;br&gt;
webhooks y exportación CSV&lt;br&gt;
quickstart y scripts E2E con Docker&lt;/p&gt;

&lt;p&gt;Algo importante para mí fue no sobreprometer: lo presento como un MVP funcional, documentado y honesto respecto a sus límites actuales de hardening.&lt;/p&gt;

&lt;p&gt;Si te interesa Rust, seguridad defensiva, telemetría operativa o diseño de sistemas reproducibles, aquí está la landing pública del proyecto:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/proyectos/deception-mesh/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/proyectos/deception-mesh/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonuetwf5bujuszo8rsy6.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fonuetwf5bujuszo8rsy6.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>rust</category>
      <category>cybersecurity</category>
      <category>opensource</category>
      <category>backend</category>
    </item>
    <item>
      <title>Adiós a la “Caja Negra”: Ejecutando IA en tu propia máquina</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Fri, 03 Apr 2026 16:33:40 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/adios-a-la-caja-negra-ejecutando-ia-en-tu-propia-maquina-26o6</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/adios-a-la-caja-negra-ejecutando-ia-en-tu-propia-maquina-26o6</guid>
      <description>&lt;p&gt;Publiqué un nuevo episodio en Tu código cotidiano sobre un cambio que me parece clave en esta etapa de la IA:&lt;/p&gt;

&lt;p&gt;dejar de ver los modelos como una caja negra remota y empezar a ejecutarlos localmente.&lt;/p&gt;

&lt;p&gt;Cuando corres IA en tu propia máquina, cambian varias cosas al mismo tiempo:&lt;/p&gt;

&lt;p&gt;privacidad&lt;br&gt;
latencia&lt;br&gt;
costos&lt;br&gt;
autonomía&lt;br&gt;
capacidad de experimentar de verdad con modelos, cuantización y hardware&lt;/p&gt;

&lt;p&gt;Este episodio busca aterrizar esa idea sin humo y sin misticismo.&lt;br&gt;
Menos “la IA como magia”.&lt;br&gt;
Más “la IA como sistema que puedes entender, operar y controlar”.&lt;/p&gt;

&lt;p&gt;Si te interesa la intersección entre modelos, infraestructura, rendimiento y soberanía tecnológica, creo que este episodio te va a gustar.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/adios-a-la-caja-negra-ejecutando-ia-en-tu-propia-maquina/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/adios-a-la-caja-negra-ejecutando-ia-en-tu-propia-maquina/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulanbx4cs4xq820m7yrt.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fulanbx4cs4xq820m7yrt.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>machinelearning</category>
      <category>llm</category>
      <category>opensource</category>
    </item>
  </channel>
</rss>
