<?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.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>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>
    <item>
      <title>Stop Chasing Scroll with JavaScript: A Deep Dive into CSS Scroll-Driven Animations</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Thu, 02 Apr 2026 16:41:38 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/stop-chasing-scroll-with-javascript-a-deep-dive-into-css-scroll-driven-animations-4alg</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/stop-chasing-scroll-with-javascript-a-deep-dive-into-css-scroll-driven-animations-4alg</guid>
      <description>&lt;p&gt;I published a deep-dive guide about CSS scroll-driven animations and how they change the architectural layer where motion is controlled.&lt;/p&gt;

&lt;p&gt;This is not just about making parallax “look cooler”.&lt;br&gt;
It is about stopping the habit of chasing scroll with JavaScript and starting to model motion as a declarative timeline the browser can understand natively.&lt;/p&gt;

&lt;p&gt;In the guide I cover:&lt;/p&gt;

&lt;p&gt;scroll-timeline&lt;br&gt;
scroll()&lt;br&gt;
view()&lt;br&gt;
animation-range&lt;br&gt;
progressive enhancement&lt;br&gt;
production debugging&lt;br&gt;
when to use scroll() vs view()&lt;br&gt;
how to build parallax without JS&lt;/p&gt;

&lt;p&gt;Read it here:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/animaciones-vinculadas-al-scroll-la-api-scroll-timeline-para-efectos-parallax-sin-js/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/animaciones-vinculadas-al-scroll-la-api-scroll-timeline-para-efectos-parallax-sin-js/&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%2Fla9fp9ls3jxvvkzyfbxl.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%2Fla9fp9ls3jxvvkzyfbxl.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>performance</category>
      <category>ux</category>
    </item>
    <item>
      <title>Cables submarinos: la infraestructura invisible que sostiene internet</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Wed, 01 Apr 2026 14:22:18 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/cables-submarinos-la-infraestructura-invisible-que-sostiene-internet-5734</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/cables-submarinos-la-infraestructura-invisible-que-sostiene-internet-5734</guid>
      <description>&lt;p&gt;Acabo de publicar un nuevo episodio en Tu código cotidiano sobre uno de esos temas que cambian por completo la forma en que entendemos la red:&lt;/p&gt;

&lt;p&gt;los cables submarinos.&lt;/p&gt;

&lt;p&gt;Muchas veces hablamos de “la nube” como si internet fuera algo etéreo, abstracto o casi mágico. Pero una parte enorme del tráfico global viaja por una infraestructura física muy concreta: fibras ópticas tendidas bajo el mar que conectan continentes, centros de datos, mercados y sistemas completos.&lt;/p&gt;

&lt;p&gt;En este episodio explico, de forma clara y técnica:&lt;/p&gt;

&lt;p&gt;por qué los cables submarinos son esenciales para internet&lt;br&gt;
por qué no todo viaja por satélite&lt;br&gt;
cómo la red depende de rutas físicas reales&lt;br&gt;
qué papel juegan la capacidad, la latencia y la redundancia&lt;br&gt;
y por qué esta infraestructura también tiene una dimensión geopolítica y económica&lt;/p&gt;

&lt;p&gt;Es un episodio pensado para desarrolladores, gente de telecomunicaciones, curiosos de internet y cualquier persona que quiera entender mejor qué hay debajo de la experiencia digital cotidiana.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí:&lt;br&gt;
tucodigocotidiano.yarumaltech.com/escuchar-podcast/cables-submarinos-las-arterias-fisicas-e-invisibles-de-internet/&lt;/p&gt;

</description>
      <category>internet</category>
      <category>networking</category>
      <category>telecom</category>
      <category>infrastructure</category>
    </item>
    <item>
      <title>Service Workers: Caching Strategies and Offline Architecture (Cache First, Network First)</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Tue, 31 Mar 2026 14:39:17 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/service-workers-caching-strategies-and-offline-architecture-cache-first-network-first-586o</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/service-workers-caching-strategies-and-offline-architecture-cache-first-network-first-586o</guid>
      <description>&lt;p&gt;I just published a new technical guide on Service Workers, caching strategies, and offline architecture.&lt;/p&gt;

&lt;p&gt;This guide is written from an architectural perspective, not as a quick recipe. The main idea is simple: a Service Worker is not just a tool to cache files. It is a response policy layer between your app and the network.&lt;/p&gt;

&lt;p&gt;Inside the guide, I cover:&lt;/p&gt;

&lt;p&gt;what a Service Worker really is&lt;br&gt;
how to think about install, activate, and fetch&lt;br&gt;
precaching and cache versioning&lt;br&gt;
the real differences between Cache First, Network First, and stale-while-revalidate&lt;br&gt;
hybrid architecture depending on resource type&lt;br&gt;
common implementation mistakes&lt;br&gt;
practical criteria to decide what should be cached and what should not&lt;/p&gt;

&lt;p&gt;The guide is aimed at developers who want to stop treating caching as a performance trick and start treating it as a product and resilience decision.&lt;/p&gt;

&lt;p&gt;Read it here:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/service-workers-estrategias-de-cache-y-arquitectura-offline-cache-first-network-first/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/service-workers-estrategias-de-cache-y-arquitectura-offline-cache-first-network-first/&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%2Ful7vh6q0hbdy5cyexc7s.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%2Ful7vh6q0hbdy5cyexc7s.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>javascript</category>
      <category>pwa</category>
      <category>serviceworkers</category>
    </item>
    <item>
      <title>Building a Perceptron from Scratch in Vanilla JS — No Libraries, Just Math</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Mon, 30 Mar 2026 13:59:17 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/building-a-perceptron-from-scratch-in-vanilla-js-no-libraries-just-math-dmi</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/building-a-perceptron-from-scratch-in-vanilla-js-no-libraries-just-math-dmi</guid>
      <description>&lt;p&gt;I just published a Spanish tutorial on building a perceptron from scratch in Vanilla JS, with no libraries.&lt;/p&gt;

&lt;p&gt;The goal is not just to “use AI”, but to understand the smallest possible neural unit as executable code:&lt;/p&gt;

&lt;p&gt;inputs → weighted sum → activation → error → weight update&lt;/p&gt;

&lt;p&gt;If you enjoy low-level explanations and code-first teaching, this one is for you.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/el-perceptron-desde-cero-escribe-la-matematica-de-una-red-neuronal-simple-en-vanilla-js-sin-librerias/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_tutoriales/el-perceptron-desde-cero-escribe-la-matematica-de-una-red-neuronal-simple-en-vanilla-js-sin-librerias/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>javascript</category>
      <category>machinelearning</category>
      <category>ai</category>
      <category>beginners</category>
    </item>
    <item>
      <title>Constraint Validation API: cómo diseñar formularios con menos JavaScript y mejor arquitectura</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Fri, 27 Mar 2026 17:52:33 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/constraint-validation-api-como-disenar-formularios-con-menos-javascript-y-mejor-arquitectura-3ko</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/constraint-validation-api-como-disenar-formularios-con-menos-javascript-y-mejor-arquitectura-3ko</guid>
      <description>&lt;p&gt;Muchos equipos siguen validando formularios como si HTML fuera solo una carcasa visual y toda la lógica tuviera que vivir en JavaScript.&lt;/p&gt;

&lt;p&gt;Pero el navegador ya trae una capa mucho más potente de lo que solemos reconocer: restricciones declarativas, estados de validez, mensajes nativos y una API para consultar el estado lógico del formulario.&lt;/p&gt;

&lt;p&gt;Acabo de publicar una guía sobre la Constraint Validation API con un enfoque menos superficial y más arquitectónico.&lt;/p&gt;

&lt;p&gt;En la guía explico:&lt;/p&gt;

&lt;p&gt;cómo pensar un formulario como sistema de restricciones&lt;br&gt;
cuándo usar checkValidity() y reportValidity()&lt;br&gt;
dónde empieza JavaScript de verdad&lt;br&gt;
por qué validar todo a mano suele ser una trampa&lt;/p&gt;

&lt;p&gt;La idea de fondo es simple: menos lógica duplicada, más semántica y mejor distribución de responsabilidades.&lt;/p&gt;

&lt;p&gt;Aquí está la guía completa:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/validacion-constraint-api-logica-matematica-de-formularios-sin-tocar-javascript/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/validacion-constraint-api-logica-matematica-de-formularios-sin-tocar-javascript/&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%2F5fqzaizbmiwkcqeirmjz.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%2F5fqzaizbmiwkcqeirmjz.png" alt=" " width="800" height="420"&gt;&lt;/a&gt;&lt;/p&gt;

</description>
      <category>html</category>
      <category>javascript</category>
      <category>frontend</category>
      <category>webdev</category>
    </item>
    <item>
      <title>Criptografía de extremo a extremo: las matemáticas que protegen nuestros secretos</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Thu, 26 Mar 2026 18:28:08 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/criptografia-de-extremo-a-extremo-las-matematicas-que-protegen-nuestros-secretos-24cl</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/criptografia-de-extremo-a-extremo-las-matematicas-que-protegen-nuestros-secretos-24cl</guid>
      <description>&lt;p&gt;Cada vez que envías un mensaje, haces una llamada o compartes información sensible, hay una pregunta silenciosa detrás de todo: ¿quién podría leer eso en el camino?&lt;/p&gt;

&lt;p&gt;Publiqué un nuevo episodio en Tu código cotidiano sobre un tema que sostiene gran parte de la privacidad digital moderna: la criptografía de extremo a extremo.&lt;/p&gt;

&lt;p&gt;En este episodio explicamos, de forma clara y técnica, ideas como:&lt;/p&gt;

&lt;p&gt;qué significa realmente “de extremo a extremo”&lt;br&gt;
por qué no es lo mismo cifrar en tránsito que cifrar contenido real&lt;br&gt;
cómo entran en juego las claves públicas y privadas&lt;br&gt;
por qué conceptos como Diffie-Hellman o forward secrecy importan tanto&lt;br&gt;
y por qué la privacidad no es lujo, sino infraestructura de libertad&lt;/p&gt;

&lt;p&gt;Es un episodio pensado para desarrolladores, curiosos de la tecnología, gente de seguridad y cualquier persona que quiera entender qué protege de verdad sus conversaciones digitales.&lt;/p&gt;

&lt;p&gt;🎧 Escúchalo aquí:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/criptografia-de-extremo-a-extremo-matematicas-que-protegen-nuestros-secretos/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/escuchar-podcast/criptografia-de-extremo-a-extremo-matematicas-que-protegen-nuestros-secretos/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>security</category>
      <category>cryptography</category>
      <category>privacy</category>
      <category>programming</category>
    </item>
    <item>
      <title>Why Native CSS Nesting Matters: Less Repetition, More Real Structure in Your CSS</title>
      <dc:creator>Tu codigo cotidiano</dc:creator>
      <pubDate>Wed, 25 Mar 2026 18:30:34 +0000</pubDate>
      <link>https://dev.to/tu_codigocotidiano_f173d/why-native-css-nesting-matters-less-repetition-more-real-structure-in-your-css-2f8l</link>
      <guid>https://dev.to/tu_codigocotidiano_f173d/why-native-css-nesting-matters-less-repetition-more-real-structure-in-your-css-2f8l</guid>
      <description>&lt;p&gt;For a long time, a lot of CSS friction came from repeating context over and over again.&lt;/p&gt;

&lt;p&gt;Component.&lt;br&gt;
Child.&lt;br&gt;
State.&lt;br&gt;
Variant.&lt;br&gt;
Pseudo-state.&lt;/p&gt;

&lt;p&gt;That is why CSS Nesting matters.&lt;/p&gt;

&lt;p&gt;Not because it saves a few lines.&lt;br&gt;
Because it helps CSS express structure more naturally.&lt;/p&gt;

&lt;p&gt;I published a practical guide about native CSS Nesting, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;when to use &lt;code&gt;&amp;amp;&lt;/code&gt;
&lt;/li&gt;
&lt;li&gt;when not to&lt;/li&gt;
&lt;li&gt;real component examples&lt;/li&gt;
&lt;li&gt;common mistakes&lt;/li&gt;
&lt;li&gt;architecture limits&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Read it here:&lt;br&gt;
&lt;a href="https://tucodigocotidiano.yarumaltech.com/leer_guias/css-nesting-nativo-menos-repeticion-mas-estructura-real-en-tu-css/" rel="noopener noreferrer"&gt;https://tucodigocotidiano.yarumaltech.com/leer_guias/css-nesting-nativo-menos-repeticion-mas-estructura-real-en-tu-css/&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  css #frontend #webdev #softwareengineering #tutorial
&lt;/h1&gt;

</description>
      <category>css</category>
      <category>frontend</category>
      <category>webdev</category>
      <category>softwareengineering</category>
    </item>
  </channel>
</rss>
