<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Programación desde cero - Patricia E. Miguel</title>
    <description>Recursos educativos sobre programación e informática.</description>
    <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/</link>
    <atom:link href="https://patriciaemiguel.comhttps://patriciaemiguel.com/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Tue, 05 May 2026 14:44:50 +0000</pubDate>
    <lastBuildDate>Tue, 05 May 2026 14:44:50 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      <item>
        <title>Google filtra accidentalmente su IA para Android</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://patriciaemiguel.com/assets/2026-05-04-google-filtra-ia.png&quot; alt=&quot;Google filtra accidentalmente su IA para Android&quot; width=&quot;40%&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;esto-no-era-para-que-lo-veas&quot;&gt;Esto no era para que lo veas&lt;/h2&gt;

&lt;p&gt;El 1 de mayo Google publicó por error una app interna de IA para Android… y la eliminó pocas horas después. Se llamaba COSMO. Y no era un chatbot más. Era un asistente que no espera órdenes: actúa por vos.&lt;/p&gt;

&lt;h2 id=&quot;parece-ser-un-agente-de-ia&quot;&gt;Parece ser un agente de IA&lt;/h2&gt;

&lt;p&gt;Puede escribir documentos, agendar eventos, buscar información, automatizar tareas… Y hacerlo incluso sin conexión, usando un modelo local en tu propio celular.&lt;/p&gt;

&lt;p&gt;Esto no es un detalle menor. Estamos viendo un cambio importante: la IA deja de ser algo que consultás y empieza a ser algo que “trabaja”. Eso cambia completamente el rol del usuario.&lt;/p&gt;

&lt;h2 id=&quot;modelo-local&quot;&gt;Modelo local&lt;/h2&gt;

&lt;p&gt;Pesaba 1.13 GB porque incluía un modelo local (Gemini Nano) y tenía distintos modos:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;IA local,&lt;/li&gt;
  &lt;li&gt;IA en la nube,&lt;/li&gt;
  &lt;li&gt;combinación de ambas.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;error-o-adelanto&quot;&gt;¿Error o adelanto?&lt;/h2&gt;

&lt;p&gt;Google la bajó de la Play Store, tal vez porque no estaba lista para ser publicada.&lt;/p&gt;

&lt;p&gt;Cosmo podría ser uno de los nuevos anuncios del próximo Google I/O (la conferencia anual más importante organizada por Google) que se llevará a cabo los días 19 y 20 de mayo en 2026.&lt;/p&gt;
</description>
        <pubDate>Mon, 04 May 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/05/04/google-filtra-ia.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/05/04/google-filtra-ia.html</guid>
        
        <category>ia</category>
        
        <category>android</category>
        
        <category>google</category>
        
        <category>cosmo</category>
        
        <category>agente</category>
        
        
        <category>ia</category>
        
      </item>
    
      <item>
        <title>La IA ayudó a descubrir un bug en Linux desde 2017</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://patriciaemiguel.com/assets/2026-05-01-ia-bug-linux.png&quot; alt=&quot;Bug en Linux&quot; width=&quot;40%&quot; /&gt;&lt;/p&gt;

&lt;h2 id=&quot;un-error-escondido-por-9-años&quot;&gt;Un error escondido por 9 años&lt;/h2&gt;

&lt;p&gt;Una IA ayudó a descubrir una vulnerabilidad crítica en Linux… y es un bug que estuvo oculto durante 9 años en el kernel. Se trata de CVE-2026-31431 (“Copy Fail”) y afecta prácticamente a todas las distribuciones desde 2017.&lt;/p&gt;

&lt;p&gt;No significa que la IA “haya hackeado Linux sola”. Lo que sí se sabe es que herramientas basadas en IA se están usando para analizar código y detectar patrones que humanos pueden pasar por alto, especialmente en sistemas gigantes como el kernel.&lt;/p&gt;

&lt;h2 id=&quot;por-qué-es-tan-grave&quot;&gt;Por qué es tan grave&lt;/h2&gt;

&lt;p&gt;Lo que hace a esta vulnerabilidad especialmente peligrosa no es solo el impacto, sino lo simple que es explotarla: no requiere técnicas complejas ni condiciones especiales. La mayoría de los ataques de escalación de privilegios en Linux requieren condiciones muy específicas: timing perfecto, configuraciones particulares o información interna del sistema. Este no.&lt;/p&gt;

&lt;p&gt;Acá alcanza con tener un usuario común. Desde ahí, el atacante puede aprovechar una falla lógica en cómo el kernel maneja ciertas operaciones, y modificar una pequeña parte de la memoria en RAM. ¿El resultado? La próxima vez que se ejecuta un programa clave del sistema, ese usuario obtiene acceso como root (control total).&lt;/p&gt;

&lt;p&gt;Es decir que este ataque funciona siempre, en cualquier Linux moderno. Incluso con un script de solo 732 bytes.&lt;/p&gt;

&lt;h2 id=&quot;qué-hace-el-ataque&quot;&gt;Qué hace el ataque&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;El atacante usa una función interna de Linux;&lt;/li&gt;
  &lt;li&gt;Logra modificar memoria en RAM;&lt;/li&gt;
  &lt;li&gt;Apunta a un programa del sistema;&lt;/li&gt;
  &lt;li&gt;La próxima vez que se ejecuta, entra como root.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Y hay un detalle importante: esto no modifica archivos en disco. Todo ocurre en memoria, lo que lo hace mucho más difícil de detectar. Si analizás el sistema después, los archivos parecen intactos. Además: Los contenedores no aíslan este problema (comparten memoria con el host).&lt;/p&gt;

&lt;h2 id=&quot;a-quiénes-afecta&quot;&gt;¿A quiénes afecta?&lt;/h2&gt;

&lt;p&gt;Afecta entornos como servidores compartidos, CI/CD y cloud. Y puede escalar desde un acceso mínimo a control total.&lt;/p&gt;

&lt;p&gt;Ya existe un parche así que, si usás Linux, actualizar el kernel es una prioridad.&lt;/p&gt;

&lt;h2 id=&quot;fuente&quot;&gt;Fuente&lt;/h2&gt;

&lt;p&gt;&lt;a href=&quot;https://xint.io/blog/copy-fail-linux-distributions&quot; target=&quot;_blank&quot;&gt;Copy Fail: 732 Bytes to Root on Every Major Linux Distribution - Xint.io&lt;/a&gt;&lt;/p&gt;
</description>
        <pubDate>Fri, 01 May 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/05/01/ia-bug-linux.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/05/01/ia-bug-linux.html</guid>
        
        <category>ia</category>
        
        <category>linux</category>
        
        <category>bug</category>
        
        
        <category>ia</category>
        
      </item>
    
      <item>
        <title>Cuándo usar cache (y cuándo no)</title>
        <description>&lt;p&gt;A veces notamos que cada request a nuestra API tarda más de lo que nos gustaría. Revisamos un endpoint y encontramos que, cada vez que alguien hace una consulta puntual, el sistema va a la base de datos y vuelve. No parece grave… hasta que pensamos en muchos usuarios haciendo exactamente lo mismo al mismo tiempo.&lt;/p&gt;

&lt;p&gt;En ese punto aparece la típica idea: “¿y si agregamos cache?”. Suena razonable, pero también deberíamos preguntarnos: ¿esto realmente mejora algo en todos los casos? ¿o hay situaciones donde incluso puede complicar más las cosas?&lt;/p&gt;

&lt;p&gt;El problema es que esa decisión suele tomarse casi por reflejo, sin detenerse demasiado a mirar el contexto. Y ahí es donde muchos sistemas empiezan a volverse más complejos sin una mejora clara.&lt;/p&gt;

&lt;p&gt;En el video tomo un ejemplo concreto de un sistema que consulta productos y lo llevo a una situación real, mostrando exactamente qué es lo que suele pasarse por alto cuando aparece la idea de “poner cache”.&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/idVQxi06JL0&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

</description>
        <pubDate>Tue, 28 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/design/2026/04/28/cuando-usar-cache.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/design/2026/04/28/cuando-usar-cache.html</guid>
        
        <category>system_design</category>
        
        <category>cache</category>
        
        <category>arquitectura</category>
        
        
        <category>design</category>
        
      </item>
    
      <item>
        <title>El &quot;spyware&quot; de Claude Desktop para Mac</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://patriciaemiguel.com/assets/2026-04-24-anthropic-spyware.png&quot; alt=&quot;Claude Desktop spyware&quot; width=&quot;40%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;Si instalaste Claude Desktop en tu Mac, también se instaló una puerta de acceso en tu navegador (sin preguntar, sin avisar, sin que pudieras decir que no).&lt;/p&gt;

&lt;p&gt;Se llama “Native Messaging”: un mecanismo que permite que una extensión del navegador ejecute programas en tu computadora, fuera de la protección del navegador. Anthropic dejó pre-configurada esta conexión para 7 navegadores (Chrome, Brave, Edge, Arc, Opera, Vivaldi, Chromium), aunque no los tengas en tu máquina.&lt;/p&gt;

&lt;h2 id=&quot;qué-es-exactamente&quot;&gt;¿Qué es exactamente?&lt;/h2&gt;

&lt;p&gt;Se trata de un archivo JSON + un binario.&lt;/p&gt;

&lt;p&gt;Lo que hace es autorizar a tres extensiones específicas a activar una puerta de acceso, permitiendo acceder a la máquina incluso por fuera del &lt;em&gt;sandbox&lt;/em&gt; del navegador.&lt;/p&gt;

&lt;p&gt;Una es la extensión oficial de Anthropic: la misma que ellos admiten es vulnerable a ataques de tipo &lt;em&gt;prompt injection&lt;/em&gt; en el ~11% de los casos, incluso con sus defensas activadas. Si algún software malicioso engaña a esa extensión, podría obtener acceso directo a tu máquina.&lt;/p&gt;

&lt;h2 id=&quot;cómo-saber-si-está-instaldo-en-tu-máquina&quot;&gt;Cómo saber si está instaldo en tu máquina&lt;/h2&gt;

&lt;p&gt;Si usas Mac y nunca instalaste una extensión de navegador de Anthropic, busca este archivo: &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;com.anthropic.claude_browser_extension.json&lt;/code&gt;. Si está ahí, fue puesto sin tu consentimiento.&lt;/p&gt;

&lt;p&gt;“¿Y si simplemente borro los archivos?”. Pues no, porque Claude Desktop los regenera.&lt;/p&gt;

&lt;p&gt;En Windows el mecanismo es diferente (usa el registro), pero el comportamiento probablemente sea similar. Linux no tiene Claude Desktop, así que no aplica.&lt;/p&gt;

&lt;h2 id=&quot;fuentes&quot;&gt;Fuentes&lt;/h2&gt;

&lt;ul&gt;
  &lt;li&gt;&lt;a href=&quot;https://www.thatprivacyguy.com/blog/anthropic-spyware/&quot; target=&quot;_blank&quot;&gt;Reporte de Alexander Hanff (experto en seguridad que descubrió el problema)&lt;/a&gt;&lt;/li&gt;
  &lt;li&gt;&lt;a href=&quot;https://claude.com/blog/claude-for-chrome&quot; target=&quot;_blank&quot;&gt;Sobre la seguridad de la extensión&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        <pubDate>Fri, 24 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/24/claude-desktop-spyware.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/24/claude-desktop-spyware.html</guid>
        
        <category>ia</category>
        
        <category>claude</category>
        
        <category>mac</category>
        
        
        <category>ia</category>
        
      </item>
    
      <item>
        <title>Nunca vas a saber todo</title>
        <description>&lt;p&gt;¿Alguna vez sentiste que eras “un fraude”?&lt;/p&gt;

&lt;p&gt;Muchas veces nos creemos “impostores” por no saberlo todo. Spoiler: ni el senior de 10 años lo sabe. 🤫&lt;/p&gt;

&lt;p&gt;La industria tech te vende que tenés que dominar 47 frameworks, 12 lenguajes y la máquina de café. Mentira. Lo que realmente importa es que, aunque rompas algo, lo arregles y sigas adelante. El seniority no te lo da un certificado ni un montón de repos perfectos.&lt;/p&gt;

&lt;p&gt;Cuando tu cerebro te diga “no estás listo/a”, recordá que tu código en producción dice otra cosa. Escuchá al segundo.&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/8vz3xTsHrs8&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

</description>
        <pubDate>Tue, 21 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/otros/2026/04/21/sindrome-del-impostor.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/otros/2026/04/21/sindrome-del-impostor.html</guid>
        
        <category>impostor</category>
        
        
        <category>otros</category>
        
      </item>
    
      <item>
        <title>Consistencia vs. Disponibilidad en &quot;CAP&quot;</title>
        <description>&lt;p&gt;En diseño de sistemas hay decisiones que definen el comportamiento completo de la aplicación.&lt;/p&gt;

&lt;p&gt;Queda el último ticket para un concierto y dos personas intentan comprarlo al mismo tiempo. El sistema está distribuido en varios servidores y cada usuario está en un servidor diferente. Pero hay un problema: los servidores pierden conexión entre sí y entonces cada uno cree que todavía queda 1 ticket. ¿Qué harías?&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Opción 1: bloqueás la compra hasta que los servidores se pongan de acuerdo.&lt;/li&gt;
  &lt;li&gt;Opción 2: dejás que ambos compren… pero vendés el mismo ticket dos veces.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este tipo de situaciones aparecen en sistemas reales, entrevistas técnicas y productos que usamos todos los días.&lt;/p&gt;

&lt;p&gt;¿Qué pesa más? ¿Que el sistema responda siempre o que los datos sean siempre correctos?&lt;/p&gt;

&lt;p&gt;En este video te explico otro ejemplo de consistencia vs. disponibilidad:&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/mrlwJSWRUg8&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

</description>
        <pubDate>Tue, 14 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/design/2026/04/14/teorema-cap.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/design/2026/04/14/teorema-cap.html</guid>
        
        <category>system_design</category>
        
        <category>teorema_cap</category>
        
        <category>consistencia</category>
        
        <category>disponibilidad</category>
        
        
        <category>design</category>
        
      </item>
    
      <item>
        <title>¿Ahora también hay &quot;vibe-hackers&quot;?</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://patriciaemiguel.com/assets/2026-04-11-gobierno-mexicano-hackeado-ia.png&quot; alt=&quot;Vibehackers contra el gobierno mexicano&quot; width=&quot;40%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;¿Ahora además de “vibe-coders” hay “vibe-hackers”?&lt;/p&gt;

&lt;p&gt;Un informe de Gambit Security revela que organismos estatales de México fueron “vibe-hackeados” por alguien solo usando Claude y ChatGPT.&lt;/p&gt;

&lt;p&gt;El atacante usó prompts en español, fingiendo una prueba de penetración autorizada para el gobierno mexicano y pidiendo scripts de ataque y exploits personalizados.Así, logró que Claude y GPT-4.1 ejecutaran el 75% de la operación.&lt;/p&gt;

&lt;p&gt;Gambit Security descubrió el caso  al encontrar los logs de conversación con los LLM.
Los ataques se realizaron entre diciembre de 2025 y febrero de 2026 y permitieron robar cientos de millones de registros de ciudadanos.&lt;/p&gt;

&lt;p&gt;El reporte completo &lt;a href=&quot;https://gambit.security/blog-post/a-single-operator-two-ai-platforms-nine-government-agencies-the-full-technical-report&quot; target=&quot;_blank&quot;&gt;se puede encontrar acá&lt;/a&gt;.&lt;/p&gt;
</description>
        <pubDate>Sat, 11 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/11/gobierno-mexicano-vibehackeado.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/11/gobierno-mexicano-vibehackeado.html</guid>
        
        <category>chatgpt</category>
        
        <category>claude</category>
        
        
        <category>ia</category>
        
      </item>
    
      <item>
        <title>¡Claude Code vulnerado!</title>
        <description>&lt;p&gt;&lt;img src=&quot;https://patriciaemiguel.com/assets/2026-04-09-claude-code-vulnerado.png&quot; alt=&quot;Claude Code vulnerado&quot; width=&quot;40%&quot; /&gt;&lt;/p&gt;

&lt;p&gt;El 31 de marzo, cuando se lanzaba la versión 2.1.88 de &lt;a href=&quot;https://code.claude.com&quot; target=&quot;_blank&quot;&gt;Claude Code&lt;/a&gt;, el usuario de X “Fried_rice” anunció que se había filtrado el código. Eran 512.000 líneas de código en alrededor de 2.000 archivos, conteniendo referencias a funcionalidad deshabilitada, oculta o inactiva.&lt;/p&gt;

&lt;h2 id=&quot;cómo-sucedió-exactamente&quot;&gt;Cómo sucedió exactamente&lt;/h2&gt;

&lt;p&gt;Lo que pasó fue que incluyeron, accidentalmente, un archivo de mapeo que no debía incluirse en el paquete de instalación de Claude Code (que la propia empresa publica en el &lt;a href=&quot;https://docs.npmjs.com/cli/v8/using-npm/registry&quot; target=&quot;_blank&quot;&gt;registro de npm&lt;/a&gt;).&lt;/p&gt;

&lt;p&gt;Cuando los desarrolladores compilan y preparan el código para producción, usualmente se “empaquetan” y condensan varios archivos. Y por eso se necesita un archivo de “mapeo” que “traduzca” esa versión condensada del código al código fuente original. Pero en este caso el “mapa” no era solo eso: aparentemente contenía también el código completo.&lt;/p&gt;

&lt;p&gt;Por si fuera poco, también se incluía la URL de un archivo zip que contenía todo el código fuente con su estructura de carpetas, que estaba ubicado en un “bucket” R2 público de Cloudflare, al que todo internet tenía acceso (aparentemente, configurado así por comodidad del equipo de desarrollo).&lt;/p&gt;

&lt;h2 id=&quot;pero-qué-se-descubrió-en-ese-código&quot;&gt;Pero, ¿qué se descubrió en ese código?&lt;/h2&gt;

&lt;p&gt;Los curiosos no tardaron en indagar en el material filtrado y publicar algunos hallazgos curiosos e interesantes. Algunos de ellos, sobre la manera en que Claude Code funciona. Otros, sobre funcionalidad que no está activa (tal vez porque la empresa está aún desarrollándola o porque fue descartada y quedó obsoleta).&lt;/p&gt;

&lt;p&gt;Algunas de las cosas que se descubrieron son:&lt;/p&gt;

&lt;ul&gt;
  &lt;li&gt;Una especie de “mascota” que se llama “Buddy” y funciona con un sistema gacha. Tiene personalidad propia, nombre, especie y rareza. Aparentemente es una especie de “asistente” que podría comentar sobre la conversación.&lt;/li&gt;
  &lt;li&gt;El modo “KAIROS / sueño”, activo incluso cuando la ventana de Claude Code se cierra. Revisa conversaciones pasadas para mantener una “memoria” entre sesiones y evalúa si necesita hacer alguna acción.&lt;/li&gt;
  &lt;li&gt;Hay varios dominios web “pre-aprobados” de los que puede extraer contenido sin límites: AWS, GitHub, MDN, Django… Para los demás sitios hay un máximo de 125 caracteres que puede mostrar.&lt;/li&gt;
  &lt;li&gt;Cambiar de modelo en medio de una conversación “mata” la cache de prompts. Esto hace que se gasten más tokens, al haber perdido la información en cache.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2 id=&quot;se-filtraron-datos-de-usuarios-o-datos-de-entrenamiento-del-modelo&quot;&gt;¿Se filtraron datos de usuarios o datos de entrenamiento del modelo?&lt;/h2&gt;

&lt;p&gt;El código filtrado es solo la CLI de Claude Code. No se filtraron datos de entrenamiento del LLM, de servidores backend ni información sensible de usuarios.&lt;/p&gt;

&lt;h2 id=&quot;algunos-usuarios-resguardaron-copias-del-código&quot;&gt;Algunos usuarios resguardaron copias del código&lt;/h2&gt;

&lt;p&gt;Por supuesto, Anthropic hizo retirar el código del dominio público. Pero ya muchos usuarios habían hecho copias. Se pueden encontrar varias aún disponibles, como los repos “&lt;a href=&quot;https://github.com/ultraworkers/claw-code&quot; target=&quot;_blank&quot;&gt;claw-code&lt;/a&gt;” del usuario ultraworkers en github, o “&lt;a href=&quot;https://github.com/yasasbanukaofficial/claude-code/&quot; target=&quot;_blank&quot;&gt;claude-code&lt;/a&gt;” del usuario yasasbanukaofficial.&lt;/p&gt;
</description>
        <pubDate>Thu, 09 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/09/claude-code-vulnerado.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/ia/2026/04/09/claude-code-vulnerado.html</guid>
        
        <category>claude</category>
        
        <category>seguridad</category>
        
        
        <category>ia</category>
        
      </item>
    
      <item>
        <title>Nueva plataforma para practicar programación</title>
        <description>&lt;p&gt;Creé &lt;a href=&quot;https://code.patriciaemiguel.com/&quot; target=&quot;_blank&quot;&gt;una plataforma interactiva&lt;/a&gt; con ejercicios de programación de nivel básico, en español y gratis.&lt;/p&gt;

&lt;p&gt;Los ejercicios se resuelven con Python, pero se enfocan en practicar algoritmia, y no el lenguaje.&lt;/p&gt;

&lt;p&gt;Es el tipo de ejercicios que enseñaba cuando daba clases en la universidad, empezando desde un nivel inicial y avanzando más allá, pero sin llegar a algoritmos con estructuras de datos complejas.&lt;/p&gt;

&lt;p&gt;Si estás siguiendo &lt;a href=&quot;https://www.youtube.com/playlist?list=PLb_E6BNMg5j7-MJ0ctjvKQlv2PU7qbMDb&quot; target=&quot;_blank&quot;&gt;mi curso gratuito en youtube&lt;/a&gt;, esta plataforma es el complemento perfecto para que te desafíes a vos mismo y ejercites tus conocimientos.&lt;/p&gt;

&lt;p&gt;También existe la alternativa de descargar el proyecto sin interfaz gráfica, que corre en cualquier computadora que tenga instalado Python 3.x y un editor de texto o un IDE.&lt;/p&gt;

&lt;p&gt;En este video te muestro cómo se usa la plataforma:&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/nEdMvkddyDQ&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

</description>
        <pubDate>Tue, 07 Apr 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/otros/2026/04/07/plataforma-interactiva.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/otros/2026/04/07/plataforma-interactiva.html</guid>
        
        <category>practicar</category>
        
        <category>python</category>
        
        <category>programacion</category>
        
        
        <category>otros</category>
        
      </item>
    
      <item>
        <title>Un ejemplo de herencia que suele aclarar poco...</title>
        <description>&lt;p&gt;El ejemplo típico de herencia de clases suele usar “Animal” como superclase y “Perro” y “Gato” como subclases.&lt;/p&gt;

&lt;p&gt;Y no está mal, pero si no se explica en el contexto de un sistema real, ese ejemplo se queda corto.&lt;/p&gt;

&lt;p&gt;En muchas ocasiones se pone a la clase “Animal” con atributos del estilo de “nombre”, “cantidad_de_patas”, o “dueño”, y comportamientos (o métodos) como “alimentar()” o “emitir_sonido()”. Y, si bien esto podría tener sentido en la vida real, en el contexto de un programa puede confundir. ¿Qué es eso de querer saber cuántas patas tiene el animal? ¿O por qué me interesa hacer que el animal emita un sonido (ladre, maúlle, relinche, etc.)?&lt;/p&gt;

&lt;p&gt;El problema de este ejemplo suele venir cuando se lo explica aislado, sin el contexto de un sistema. Pero si pensamos en un caso donde el programa requiera un animal, o un gato o un perro, entonces las piezas empiezan a encajar.&lt;/p&gt;

&lt;div class=&quot;embed-container&quot;&gt;
&lt;iframe width=&quot;560&quot; height=&quot;315&quot; src=&quot;https://www.youtube.com/embed/tgfEfSAvyiw&quot; frameborder=&quot;0&quot; allowfullscreen=&quot;&quot;&gt;&lt;/iframe&gt;
&lt;/div&gt;

</description>
        <pubDate>Tue, 24 Feb 2026 16:00:00 +0000</pubDate>
        <link>https://patriciaemiguel.comhttps://patriciaemiguel.com/poo/2026/02/24/herencia-clases.html</link>
        <guid isPermaLink="true">https://patriciaemiguel.comhttps://patriciaemiguel.com/poo/2026/02/24/herencia-clases.html</guid>
        
        <category>clases</category>
        
        <category>herencia</category>
        
        <category>objetos</category>
        
        <category>poo</category>
        
        <category>superclase</category>
        
        
        <category>poo</category>
        
      </item>
    
  </channel>
</rss>
