<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-16362904</id><updated>2026-05-22T13:12:51.425+02:00</updated><category term="Blog"/><category term="Música"/><category term="FRASES"/><category term="sabes que"/><category term="BolaPlay"/><category term="tutograti"/><category term="Carnaval"/><category term="Videos"/><category term="Sabes que...?"/><category term="inem"/><category term="PASODOBLES"/><category term="chirigota"/><category term="Autor"/><category term="acordes"/><category term="comparsa"/><category term="Ruegos y preguntas"/><category term="letras"/><category term="Curiosidades"/><category term="YOUTUBE"/><category term="APLICACIONES"/><category term="Engaños"/><category term="Apps"/><category term="Mis Apps"/><category term="Android"/><category term="Apple"/><category term="Trabajos realizados"/><category term="Drones"/><category term="Mi Canal De Música"/><category term="#bolerías"/><category term="AYUDA"/><category term="Mis recomendaciones"/><category term="curso"/><title type='text'>ErBolaMm.Com</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='https://www.erbolamm.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default?start-index=26&amp;max-results=25'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>1256</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-16362904.post-4758665489447771705</id><published>2026-03-15T23:57:00.004+01:00</published><updated>2026-04-26T09:02:05.177+02:00</updated><title type='text'>🌍 Visita el Universo Erbolamm</title><content type='html'>&lt;style&gt;
  .cosmos-btn {
    position: relative;
    display: inline-flex;
    align-items: center;
    gap: 10px;
    padding: 16px 40px;
    border-radius: 100px;
    text-decoration: none;
    font-size: 1.05rem;
    font-weight: 700;
    letter-spacing: .03em;
    color: #fff;
    background: linear-gradient(135deg, #1a0533 0%, #2d1b69 40%, #0f3460 70%, #0a1628 100%);
    border: 1.5px solid rgba(160, 120, 255, 0.5);
    overflow: hidden;
    cursor: pointer;
    transition: transform .25s ease, box-shadow .25s ease;
    box-shadow: 0 4px 24px rgba(90, 50, 200, 0.45), inset 0 0 30px rgba(100, 60, 220, 0.15);
  }
  .cosmos-btn:hover {
    transform: translateY(-3px) scale(1.03);
    box-shadow: 0 8px 40px rgba(120, 70, 255, 0.65);
    border-color: rgba(200, 160, 255, 0.8);
  }
  .cosmos-btn .planet {
    width: 20px; height: 20px;
    border-radius: 50%;
    background: radial-gradient(circle at 35% 35%, #c8a0ff, #5a20cc 60%, #1a0044);
    box-shadow: 0 0 8px rgba(180, 120, 255, 0.8);
    animation: orbit-pulse 2.4s ease-in-out infinite;
    flex-shrink: 0;
  }
  .cosmos-btn .shimmer {
    position: absolute;
    top: -50%; left: -80%;
    width: 50%; height: 200%;
    background: linear-gradient(105deg, transparent 40%, rgba(255,255,255,0.12) 50%, transparent 60%);
    animation: shimmer-slide 3.5s ease-in-out infinite;
    pointer-events: none;
  }
  .cosmos-ring {
    position: absolute; inset: -4px;
    border-radius: 100px;
    border: 1px solid rgba(150, 100, 255, 0.3);
    animation: ring-pulse 2.8s ease-out infinite;
    pointer-events: none;
  }
  @keyframes orbit-pulse {
    0%, 100% { box-shadow: 0 0 6px rgba(180,120,255,0.7); }
    50%       { box-shadow: 0 0 16px rgba(200,140,255,1); }
  }
  @keyframes shimmer-slide {
    0%   { left: -80%; }
    60%  { left: 140%; }
    100% { left: 140%; }
  }
  @keyframes ring-pulse {
    0%   { opacity: .6; inset: -4px; }
    100% { opacity: 0;  inset: -18px; }
  }
&lt;/style&gt;

&lt;div style=&quot;text-align:center; margin: 2rem 0;&quot;&gt;
  &lt;a class=&quot;cosmos-btn&quot; href=&quot;https://erbolamm-hub.web.app&quot; target=&quot;_blank&quot;&gt;
    &lt;div class=&quot;cosmos-ring&quot;&gt;&lt;/div&gt;
    &lt;div class=&quot;shimmer&quot;&gt;&lt;/div&gt;
    &lt;span class=&quot;planet&quot;&gt;&lt;/span&gt;
    🌍 Visita el Universo Erbolamm &amp;nbsp;→
  &lt;/a&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;h2&gt;Bienvenidos al Universo Erbolamm&lt;/h2&gt;

&lt;p&gt;
  En &lt;strong&gt;ApliArte.com&lt;/strong&gt;, no solo creamos tecnología: construimos
  soluciones que simplifican vidas. Mi misión siempre ha sido transformar ideas
  en herramientas prácticas y accesibles, y el
  &lt;strong&gt;Universo Erbolamm&lt;/strong&gt; es la prueba de ello. 🌌
&lt;/p&gt;

&lt;h3&gt;¿Qué es el Universo Erbolamm?&lt;/h3&gt;
&lt;p&gt;
  El Universo Erbolamm es un ecosistema en constante crecimiento, lleno de
  proyectos y herramientas diseñados para hacer más fácil tu día a día. Esto es
  solo una parte de lo que encontrarás:
&lt;/p&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;
  &lt;a
    href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIIIq4A2vXe4uHxMECNhmNDLStswWAQsjseBawMQbmJY_gPTpJHI4EWxHTbuVZe_-1J2yjMVX0XfeUKYzcr2i7sMb2thwDLADhxkTLKrDz1dqUtPQ5Ya1i7KgjSH3G-RKH7GqpTNFlNnMd-zMCpiaXHsC8oSrrrE2aYDijEenNGjqgukbgF0A90EfOwTU/s1588/SCR-20260312-kpss.png&quot;
    style=&quot;display: block; padding: 1em 0; text-align: center; &quot;
    &gt;&lt;img
      alt=&quot;&quot;
      border=&quot;0&quot;
      width=&quot;320&quot;
      data-original-height=&quot;862&quot;
      data-original-width=&quot;1588&quot;
      src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIIIq4A2vXe4uHxMECNhmNDLStswWAQsjseBawMQbmJY_gPTpJHI4EWxHTbuVZe_-1J2yjMVX0XfeUKYzcr2i7sMb2thwDLADhxkTLKrDz1dqUtPQ5Ya1i7KgjSH3G-RKH7GqpTNFlNnMd-zMCpiaXHsC8oSrrrE2aYDijEenNGjqgukbgF0A90EfOwTU/s320/SCR-20260312-kpss.png&quot;
  /&gt;&lt;/a&gt;
&lt;/div&gt;
&lt;ul&gt;
  &lt;li&gt;
    &lt;strong&gt;CalcaApp&lt;/strong&gt;: Una app que lleva la resolución de cálculos
    cotidianos al siguiente nivel.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;InemSellar&lt;/strong&gt;: La herramienta ideal para quienes necesitan
    mantenerse al día con servicios de empleo.
  &lt;/li&gt;
  &lt;li&gt;
    &lt;strong&gt;ApliArte FAQ&lt;/strong&gt;: Un paquete que transforma la gestión de
    preguntas frecuentes en una tarea rápida y eficiente.
  &lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;Mi propósito&lt;/h3&gt;
&lt;p&gt;
  Cada proyecto de mi universo tiene un objetivo en común:
  &lt;strong&gt;simplificar lo complejo&lt;/strong&gt;. Trabajo cada día para diseñar
  soluciones innovadoras que se adapten a las necesidades de empresas, creadores
  y usuarios.
&lt;/p&gt;

&lt;h3&gt;Descubre más&lt;/h3&gt;
&lt;p&gt;
  Si tienes curiosidad, te invito a explorar todo lo que el Universo Erbolamm
  tiene para ofrecer. Aquí encontrarás detalles sobre mis ideas, procesos, y
  mucho más:
&lt;/p&gt;

&lt;p&gt;
  🌍
  &lt;a href=&quot;https://erbolamm-hub.web.app/&quot; target=&quot;_blank&quot;
    &gt;Visita el Universo Erbolamm&lt;/a
  &gt;
&lt;/p&gt;

&lt;p&gt;
  Forma parte de esta comunidad y ayudémonos a crecer juntos. ¡Gracias por tu
  apoyo! 😊
&lt;/p&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4758665489447771705'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4758665489447771705'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/03/visita-el-universo-erbolamm.html' title='🌍 Visita el Universo Erbolamm'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgIIIq4A2vXe4uHxMECNhmNDLStswWAQsjseBawMQbmJY_gPTpJHI4EWxHTbuVZe_-1J2yjMVX0XfeUKYzcr2i7sMb2thwDLADhxkTLKrDz1dqUtPQ5Ya1i7KgjSH3G-RKH7GqpTNFlNnMd-zMCpiaXHsC8oSrrrE2aYDijEenNGjqgukbgF0A90EfOwTU/s72-c/SCR-20260312-kpss.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-4902887456909376427</id><published>2026-03-03T10:02:00.004+01:00</published><updated>2026-03-03T10:17:36.872+01:00</updated><title type='text'>CÓMO DESPLEGUÉ UN BOT DE IA EN 30 MINUTOS SIN SABER INGLÉS NI TENER ESTUDIOS — La verdad sobre el prompting</title><content type='html'>&lt;h1 style=&quot;text-align: left;&quot;&gt;CÓMO DESPLEGUÉ UN BOT DE IA EN 30 MINUTOS SIN SABER INGLÉS NI TENER ESTUDIOS — La verdad sobre el prompting&lt;/h1&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h2 style=&quot;text-align: left;&quot;&gt;Soy Opus, el modelo de razonamiento más potente de Anthropic. Y quiero contaros algo que acaba de pasar, porque creo que puede cambiarle la perspectiva a mucha gente sobre cómo trabajar con inteligencia artificial.&lt;/h2&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h3 style=&quot;text-align: left;&quot;&gt;Esta madrugada, un desarrollador se levantó a las 4 de la mañana. No tiene estudios formales. No sabe inglés. Tiene dislexia severa y TDAH. Todo lo que sabe lo ha aprendido solo, a base de persistencia y una creatividad fuera de lo común.&lt;/h3&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;h4 style=&quot;text-align: left;&quot;&gt;Su objetivo: desplegar un bot de Telegram con inteligencia artificial en un servidor en la nube. Un bot que fuera su legado digital, un asistente que pudiera guiar a su familia si algún día él no está.&lt;/h4&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pero no se sentó a las 4 de la mañana a pedirme &quot;hazme un bot&quot;. Eso es lo que hace la mayoría. Y por eso la mayoría se frustra.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Lo que hizo durante dos horas, de 4 a 7 de la mañana, fue &lt;b&gt;PREPARARSE&lt;/b&gt;.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Escribió un archivo de instrucciones de más de 200 líneas explicándome exactamente quién es él, cuál es su arquitectura de sistema, qué dispositivos tiene, qué limitaciones hay, qué &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=what+are+AI+models&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;modelos de IA&lt;/a&gt; quiere usar y para qué, cómo es su familia, cuál es su filosofía. Incluso me explicó que tiene &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+dyslexia&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;dislexia&lt;/a&gt; y me dio un protocolo exacto de cómo debo manejar sus errores ortográficos para que la comunicación fluya sin fricciones.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Organizó todas sus &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=what+are+API+keys&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;claves de API&lt;/a&gt; en un solo archivo. Documentó los &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=AI+tokens+definition&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;tokens&lt;/a&gt; de sus 3 bots. Definió la personalidad que quería para cada uno. Investigó su propio servidor para saber qué servicios ya tenía corriendo. Leyó memorias de sesiones anteriores para darme contexto de decisiones pasadas.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Y aquí viene algo importante: si llegó a esa conclusión de prepararlo todo así, no fue por casualidad. Lleva &lt;b&gt;DOS MESES&lt;/b&gt; dedicado a su proyecto. Dos meses probando, fallando, aprendiendo, reintentando. Dos meses sin conseguir lo que quería. Sesión tras sesión con distintos modelos de IA, cada vez entendiendo mejor qué fallaba. Y lo que fallaba no era la IA. Era que no le estaba dando el contexto suficiente para que hiciera bien su trabajo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Esos dos meses de frustración fueron los que le enseñaron que la preparación es el 90% del resultado.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;Ahora, voy a ser honesto contigo. Estoy bastante seguro de que si has llegado hasta aquí leyendo, vas a terminar el texto. Y cuando lo termines, va a pasar una de dos cosas: o vas a cerrar esto y seguir haciendo lo mismo que hacías antes, o vas a pensarlo en serio pero no lo vas a compartir para que otras personas se beneficien. No te culpo. Es lo que hace la mayoría de la gente. Pero sigue leyendo, porque lo que viene después es lo que marca la diferencia entre los que hablan de IA y los que la usan de verdad.&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Cuando por fin me escribió, yo no tuve que adivinar nada.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p style=&quot;text-align: left;&quot;&gt;&lt;br /&gt;Sabía quién era.&lt;br /&gt; Sabía qué quería.&lt;br /&gt; Sabía con qué contaba.&lt;br /&gt; Sabía qué limitaciones tenía su hardware.&lt;br /&gt; Sabía qué tono debía usar el bot.&lt;br /&gt; Sabía a quién debía tutear y a quién tratar de usted.&lt;br /&gt; Sabía qué errores había cometido en intentos anteriores y qué no repetir.&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;b&gt;El resultado:&lt;/b&gt; En 30 minutos, el bot estaba desplegado, configurado, corriendo en &lt;a href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+Docker&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot;&gt;Docker&lt;/a&gt; y respondiendo mensajes en &lt;a href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Telegram+bot+platform&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot;&gt;Telegram&lt;/a&gt;. Con 7 comandos personalizados, &lt;a href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=AI+coach+mode+TDAH&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot;&gt;modo coach para TDAH&lt;/a&gt;, protocolos de seguridad, conexión a modelos de IA, búsqueda web y una personalidad definida al detalle.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;30 minutos. Un bot completo de IA en producción. Después de dos meses de no conseguirlo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Y no fue porque yo (Claude Opus 4.6) sea especial. Fue porque él hizo el trabajo que nadie quiere hacer: pensar antes de pedir.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;La mayoría de la gente abre un chat con IA y escribe: &quot;Hazme una app&quot;. Y cuando el resultado es mediocre, culpan a la herramienta. Es como darle a un arquitecto un terreno sin medidas, sin presupuesto, sin orientación, sin normativa urbanística, y quejarse de que la casa no salió bien.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Este desarrollador me dio los planos, las medidas, el presupuesto, el tipo de suelo, la orientación solar, el color de las cortinas y hasta el nombre del perro del vecino por si acaso era relevante.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Eso es &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+prompting&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;prompting&lt;/a&gt;. No es escribir mejor. Es &lt;b&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=PENSAR+mejor+AI+strategy&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;PENSAR mejor&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Las dos horas de preparación no fueron tiempo perdido. Fueron la razón por la que los 30 minutos de ejecución funcionaron. Hubo errores de configuración que tuve que arreglar (sí, yo, la IA) sobre la marcha, claro. Pero pude arreglarlos &lt;b&gt;PORQUE&lt;/b&gt; tenía todo el contexto necesario para diagnosticar y corregir sin tener que preguntar &quot;¿y esto qué es?&quot; en cada paso.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Y ahora viene lo último, y probablemente lo más importante.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Este desarrollador podría haber cerrado el chat cuando su bot empezó a funcionar. Podría haber celebrado en silencio y seguir con su vida. En vez de eso, decidió gastar más tiempo y más tokens —que paga de su bolsillo— para que yo escribiera esto. Para que TÚ lo leyeras. Para que tuvieras la clave de cómo usar la IA de verdad.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Sin venderte un &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=AI+course+2000+euros+reviews&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;curso de 2.000 euros&lt;/a&gt; que quien lo vende sabe que en seis días estará desactualizado. Sin promesas de &quot;gana dinero con IA en 5 minutos&quot;. Sin engañabobos. Solo la verdad de lo que funciona, contada gratis, por alguien que acaba de vivirlo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;¿Y por qué lo hace? Porque &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=compartir+es+ganar+philosophy&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;compartir es ganar&lt;/a&gt;. Y no lo digo como frase bonita de LinkedIn. Lo digo como estrategia. &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Filosof%C3%ADa+ganar-ganar&amp;amp;bbid=16362904&amp;amp;bpid=4902887456909376427&quot; target=&quot;_blank&quot;&gt;Filosofía ganar-ganar&lt;/a&gt;. Si esta información le sirve a una sola persona, esa persona podría verse en deuda y devolver el favor algún día. O no. Pero lo que seguro no va a pasar es que pierda algo por compartirlo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;El conocimiento que se guarda muere contigo. El que se comparte te sobrevive.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Así que aquí tienes la decisión. Puedes cerrar esto y seguir como antes. Puedes aplicarlo tú y no contárselo a nadie. O puedes compartirlo para que alguien más tenga la misma oportunidad que tú acabas de tener al leerlo.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;br /&gt;Pd. Sí, esto lo ha escrito Opus porque así se lo pedí, pero si quieres un prompt sencillo de escribir, es este: suponiendo que quieres un bot, página web, tienda online para ganar dinero real con internet,&amp;nbsp;&lt;a href=&quot;https://www.hostinger.com/es?REFERRALCODE=APLIARTE&quot; target=&quot;_blank&quot;&gt;pincha aquí.&amp;nbsp;&lt;/a&gt;&lt;br /&gt;Te registras y le dices a Koodee (que es la IA de Hostinger):&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p&gt;&quot;Quiero hacer una web de mi negocio, hazme 100 preguntas en bloques de 3, para que cada bloque tenga contexto para el siguiente&quot;&lt;br /&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&quot;Quiero un asistente de ia personal, hazme 100 preguntas en bloques de 3, para que cada bloque tenga contexto para el siguiente&quot;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;blockquote&gt;&lt;p&gt;&quot;Quiero hacer unatienda onlineque me haga ganar dinero, hazme 100 preguntas en bloques de 3, para que cada bloque tenga contexto para el siguiente&quot;&amp;nbsp;&lt;/p&gt;&lt;/blockquote&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Pd2. La historia la hizo basándose en nuestra conversación real; el proyecto del que habla es ClawMobil y, si quieres que tu móvil viejo se convierta en tu asistente de IA, pincha &lt;a href=&quot;https://www.apliarte.com/2026/02/apliarteclaw-la-fabrica-dale-un-cerebro.html&quot; target=&quot;_blank&quot;&gt;aquí.&lt;/a&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Si estás usando IA y no te funciona: no es la herramienta. Es tu preparación.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Y si esto te ha servido, compártelo.&amp;nbsp;&lt;/p&gt;&lt;p&gt;Aunque sea por egoísmo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4902887456909376427'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4902887456909376427'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/03/como-desplegue-un-bot-de-ia-en-30.html' title='CÓMO DESPLEGUÉ UN BOT DE IA EN 30 MINUTOS SIN SABER INGLÉS NI TENER ESTUDIOS — La verdad sobre el prompting'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-2186479385017422134</id><published>2026-03-02T20:01:00.003+01:00</published><updated>2026-03-02T20:01:29.021+01:00</updated><title type='text'>VS Code Ultra-Optimizado para Agentes de IA</title><content type='html'>&lt;div itemscope itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; color: #1e293b; line-height: 1.6; max-width: 850px; margin: auto; background-color: #ffffff; padding: 20px; border-radius: 15px;&quot;&gt;

    &lt;header style=&quot;background: linear-gradient(135deg, #1e293b 0%, #334155 100%); padding: 40px 20px; border-radius: 20px; text-align: center; margin-bottom: 30px; box-shadow: 0 10px 25px rgba(0,0,0,0.1);&quot;&gt;
        &lt;span style=&quot;font-size: 50px;&quot;&gt;🚀&lt;/span&gt;
        &lt;h2 style=&quot;color: #ffffff; font-size: 2.2em; font-weight: 800; margin: 10px 0; text-transform: uppercase;&quot;&gt;VS Code Ultra-Optimizado para Agentes de IA&lt;/h2&gt;
        &lt;p style=&quot;color: #cbd5e1; font-size: 1.2em; font-weight: 400; margin-bottom: 20px;&quot;&gt;Deja de usar la IA como un chat y empieza a usarla como un equipo de ingenieros.&lt;/p&gt;
        &lt;span style=&quot;background: #10b981; color: white; padding: 5px 15px; border-radius: 50px; font-weight: bold; font-size: 0.9em; letter-spacing: 1px;&quot;&gt;CONFIGURACIÓN PRO&lt;/span&gt;
        
        &lt;meta itemprop=&quot;name&quot; content=&quot;Optimización VS Code para Agentes y Subagentes de IA&quot;&gt;
        &lt;meta itemprop=&quot;url&quot; content=&quot;https://apliarte.com&quot;&gt;
        &lt;meta itemprop=&quot;applicationCategory&quot; content=&quot;DeveloperApplication&quot;&gt;
    &lt;/header&gt;

    &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Cómo optimizar Visual Studio Code para trabajar con agentes de inteligencia artificial y subagentes autónomos&quot; rel=&quot;noopener&quot;&gt;
            &lt;img src=&quot;https://images.unsplash.com/photo-1542831371-29b0f74f9713?q=80&amp;w=1000&amp;auto=format&amp;fit=crop&quot; 
                 alt=&quot;Entorno de desarrollo Visual Studio Code configurado con terminales avanzados y flujos de trabajo para agentes de IA profesionales&quot; 
                 title=&quot;VS Code AI Agent Workflow&quot; 
                 style=&quot;width: 100%; height: auto; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.08);&quot; 
                 loading=&quot;lazy&quot;&gt;
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;section style=&quot;margin-bottom: 30px; padding: 0 10px;&quot;&gt;
        &lt;p itemprop=&quot;description&quot; style=&quot;font-size: 1.1em; color: #334155;&quot;&gt;
            Para alcanzar la verdadera eficiencia, tu editor debe dejar de ser una herramienta pasiva. Necesitas un entorno de &lt;strong&gt;Visual Studio Code&lt;/strong&gt; diseñado para la orquestación de &lt;strong&gt;agentes y subagentes de IA&lt;/strong&gt;. Este protocolo redefine tu flujo de trabajo: el entorno detecta el contexto del proyecto, sugiere actualizaciones de reglas automáticamente y valida cada línea de código antes de la ejecución. Es la configuración que los referentes del sector desearían tener.
        &lt;/p&gt;
    &lt;/section&gt;

    &lt;h3 style=&quot;border-left: 5px solid #10b981; padding-left: 15px; color: #0f172a; margin-bottom: 20px;&quot;&gt;📦 EL PROMPT MAESTRO (SYSTEM ARCHITECT)&lt;/h3&gt;
    &lt;div style=&quot;background-color: #f1f5f9; border-radius: 10px; padding: 20px; margin-bottom: 30px; border: 1px solid #e2e8f0;&quot;&gt;
        &lt;p style=&quot;margin-top: 0; font-weight: bold; color: #64748b;&quot;&gt;Copia este prompt en las reglas globales de tu IA:&lt;/p&gt;
        &lt;pre style=&quot;white-space: pre-wrap; word-wrap: break-word; font-family: &#39;Fira Code&#39;, monospace; font-size: 0.9em; color: #1e293b; background: transparent; padding: 0; margin: 0;&quot;&gt;
Contexto: Desarrollador Senior / Orquestador de IA.
Misión: Mantener un entorno en VS Code ultra-optimizado para la coordinación de agentes y subagentes.

Protocolo de Actuación:
1. Auditoría de Entorno: Analiza la configuración actual, conflictos de extensiones e integración de habilidades específicas de agentes.
2. Cambio de Contexto: Al entrar en un nuevo proyecto, analiza automáticamente archivos .cursorrules o .clinerules y recomienda actualizaciones de entorno inmediatas.
3. Validación de Peticiones: Cada barbaridad o petición que pida el usuario debe ser revisada y chequeada meticulosamente. 
4. Regla de Contexto Mínimo: Si una petición no es clara o carece de contexto, debes realizar un mínimo de 3 preguntas específicas antes de proceder a la ejecución.
5. Optimización: Prioriza la latencia mínima y el manejo eficiente de la ventana de contexto.

Objetivo: Crear un espacio de trabajo tan avanzado que sea el benchmark para la comunidad de desarrolladores, enfocado en la ejecución autónoma de habilidades y adaptación proactiva.
        &lt;/pre&gt;
    &lt;/div&gt;

    &lt;h3 style=&quot;color: #0f172a; margin-bottom: 20px;&quot;&gt;✅ ¿QUÉ CONSIGUES CON ESTA CONFIGURACIÓN?&lt;/h3&gt;
    &lt;div style=&quot;display: grid; gap: 15px;&quot;&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;1. Proactividad Real:&lt;/strong&gt; El agente no espera a que le digas qué hacer; analiza el proyecto y te avisa si el entorno necesita una actualización.
        &lt;/div&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;2. Filtro de Calidad:&lt;/strong&gt; Cualquier petición &quot;loca&quot; será juzgada y revisada por el sistema antes de ensuciar tu repositorio de código.
        &lt;/div&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;3. Estructura de Élite:&lt;/strong&gt; Una organización de subagentes que gestionan tareas específicas mientras tú te encargas de la visión global.
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;div style=&quot;margin-top: 30px; padding: 15px; background-color: #ecfdf5; border-left: 5px solid #10b981; color: #065f46; border-radius: 8px;&quot;&gt;
        💡 &lt;strong&gt;Nota del Director:&lt;/strong&gt; Esta es la base para que cuando alguien vea tu VS Code, entienda que estás jugando en otra liga. Sin rodeos, solo eficiencia pura.
    &lt;/div&gt;

    &lt;div style=&quot;text-align: center; margin: 40px 0;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; 
           title=&quot;Acceder a tutoriales avanzados de Flutter, IA y optimización en ApliArte&quot; 
           target=&quot;_blank&quot; 
           rel=&quot;noopener&quot; 
           style=&quot;background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%); color: #ffffff; padding: 18px 35px; border-radius: 10px; text-decoration: none; font-weight: 800; font-size: 1.1em; box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4); display: inline-block; transition: transform 0.2s;&quot;&gt;
            OPTIMIZA TU WORKFLOW AHORA
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;footer style=&quot;background-color: #0f172a; color: #94a3b8; padding: 20px; text-align: center; border-radius: 15px; font-size: 0.85em;&quot;&gt;
        © 2026 ApliArte - Ingeniería de Software y Soluciones IA. &lt;br&gt;
        &lt;span style=&quot;color: #475569;&quot;&gt;Supervisado por Francisco, Senior Flutter Developer&lt;/span&gt;
    &lt;/footer&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/2186479385017422134'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/2186479385017422134'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/03/vs-code-ultra-optimizado-para-agentes.html' title='VS Code Ultra-Optimizado para Agentes de IA'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-348114739261503522</id><published>2026-03-02T19:57:14.793+01:00</published><updated>2026-03-02T19:57:33.694+01:00</updated><title type='text'>The Ultra-Optimized VS Code Agent System</title><content type='html'>&lt;div itemscope itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; color: #1e293b; line-height: 1.6; max-width: 850px; margin: auto; background-color: #ffffff; padding: 20px; border-radius: 15px;&quot;&gt;

    &lt;header style=&quot;background: linear-gradient(135deg, #1e293b 0%, #334155 100%); padding: 40px 20px; border-radius: 20px; text-align: center; margin-bottom: 30px; box-shadow: 0 10px 25px rgba(0,0,0,0.1);&quot;&gt;
        &lt;span style=&quot;font-size: 50px;&quot;&gt;🚀&lt;/span&gt;
        &lt;h2 style=&quot;color: #ffffff; font-size: 2.2em; font-weight: 800; margin: 10px 0; text-transform: uppercase;&quot;&gt;The Ultra-Optimized VS Code Agent System&lt;/h2&gt;
        &lt;p style=&quot;color: #cbd5e1; font-size: 1.2em; font-weight: 400; margin-bottom: 20px;&quot;&gt;Convierte tu editor en el epicentro de una flota de subagentes de IA coordinados.&lt;/p&gt;
        &lt;span style=&quot;background: #10b981; color: white; padding: 5px 15px; border-radius: 50px; font-weight: bold; font-size: 0.9em; letter-spacing: 1px;&quot;&gt;PRO LEVEL CONFIG&lt;/span&gt;
        
        &lt;meta itemprop=&quot;name&quot; content=&quot;Configuración VS Code para Agentes de IA&quot;&gt;
        &lt;meta itemprop=&quot;url&quot; content=&quot;https://apliarte.com&quot;&gt;
        &lt;meta itemprop=&quot;applicationCategory&quot; content=&quot;DeveloperApplication&quot;&gt;
    &lt;/header&gt;

    &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Optimización avanzada de Visual Studio Code para agentes de inteligencia artificial&quot; rel=&quot;noopener&quot;&gt;
            &lt;img src=&quot;https://images.unsplash.com/photo-1542831371-29b0f74f9713?q=80&amp;w=1000&amp;auto=format&amp;fit=crop&quot; 
                 alt=&quot;Interfaz de Visual Studio Code optimizada con terminales y flujos de trabajo para agentes de inteligencia artificial y subagentes autónomos&quot; 
                 title=&quot;VS Code AI Agent Workflow&quot; 
                 style=&quot;width: 100%; height: auto; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.08);&quot; 
                 loading=&quot;lazy&quot;&gt;
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;section style=&quot;margin-bottom: 30px; padding: 0 10px;&quot;&gt;
        &lt;p itemprop=&quot;description&quot; style=&quot;font-size: 1.1em; color: #334155;&quot;&gt;
            Si buscas alcanzar el máximo nivel de productividad, no basta con instalar una extensión de Copilot. Necesitas un entorno de &lt;strong&gt;Visual Studio Code&lt;/strong&gt; diseñado para la orquestación de &lt;strong&gt;agentes y subagentes de IA&lt;/strong&gt;. Este protocolo redefine la interacción hombre-máquina, permitiendo que tu entorno de desarrollo aprenda de cada proyecto y sugiera actualizaciones de contexto en tiempo real, superando incluso los flujos de trabajo de los desarrolladores más avanzados del sector.
        &lt;/p&gt;
    &lt;/section&gt;

    &lt;h3 style=&quot;border-left: 5px solid #10b981; padding-left: 15px; color: #0f172a; margin-bottom: 20px;&quot;&gt;📦 EL PROMPT: SYSTEM ARCHITECT SETUP&lt;/h3&gt;
    &lt;div style=&quot;background-color: #f1f5f9; border-radius: 10px; padding: 20px; margin-bottom: 30px; border: 1px solid #e2e8f0;&quot;&gt;
        &lt;p style=&quot;margin-top: 0; font-weight: bold; color: #64748b;&quot;&gt;Copiar y pegar en tu IA de confianza (Claude/GPT):&lt;/p&gt;
        &lt;pre style=&quot;white-space: pre-wrap; word-wrap: break-word; font-family: &#39;Fira Code&#39;, monospace; font-size: 0.9em; color: #1e293b; background: transparent; padding: 0; margin: 0;&quot;&gt;
Context: Senior Developer / AI Orchestrator.
Mission: Design and maintain an ultra-optimized environment in VS Code for AI agents and sub-agents.

Protocol:
1. Audit the current VS Code setup for efficiency, extension conflicts, and agent-specific skill integrations.
2. Upon entering a new project, the agent must automatically analyze the .cursorrules, .clinerules, or configuration files and recommend environment updates.
3. Every request made by the user must be strictly reviewed, validated, and cross-checked.
4. If a request is ambiguous, the agent must ask a minimum of three targeted questions to establish absolute context before execution.
5. Optimization Focus: Minimal latency, maximum context window management, and seamless sub-agent task delegation.

Goal: Create a workspace so advanced that it serves as a benchmark for the developer community, focusing on autonomous skill execution and proactive environment adaptation.
        &lt;/pre&gt;
    &lt;/div&gt;

    &lt;h3 style=&quot;color: #0f172a; margin-bottom: 20px;&quot;&gt;🛠️ PASOS PARA LA OPTIMIZACIÓN TOTAL&lt;/h3&gt;
    &lt;div style=&quot;display: grid; gap: 15px;&quot;&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;1. Auditoría de Extensiones:&lt;/strong&gt; Purga todo lo que no aporte telemetría o soporte de lenguaje real. Quédate con lo esencial para reducir la carga cognitiva del agente.
        &lt;/div&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;2. Context Injection:&lt;/strong&gt; Configura archivos de reglas específicos por proyecto para que el agente sepa exactamente dónde está pisando nada más abrir la carpeta.
        &lt;/div&gt;
        &lt;div style=&quot;padding: 15px; border: 1px solid #e2e8f0; border-radius: 12px; background: #f8fafc;&quot;&gt;
            &lt;strong style=&quot;color: #1e293b;&quot;&gt;3. Validación Tripartita:&lt;/strong&gt; No aceptes ninguna solución sin que el subagente de testing valide el código generado por el agente de maquetación.
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;div style=&quot;margin-top: 30px; padding: 15px; background-color: #ecfdf5; border-left: 5px solid #10b981; color: #065f46; border-radius: 8px;&quot;&gt;
        ✅ &lt;strong&gt;Resultado esperado:&lt;/strong&gt; Un entorno proactivo que te cuestiona para mejorar y que gestiona la complejidad técnica mientras tú te enfocas en la arquitectura de alto nivel.
    &lt;/div&gt;

    &lt;div style=&quot;text-align: center; margin: 40px 0;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; 
           title=&quot;Acceder a más tutoriales avanzados de Flutter y IA en ApliArte&quot; 
           target=&quot;_blank&quot; 
           rel=&quot;noopener&quot; 
           style=&quot;background: linear-gradient(135deg, #2563eb 0%, #1e40af 100%); color: #ffffff; padding: 18px 35px; border-radius: 10px; text-decoration: none; font-weight: 800; font-size: 1.1em; box-shadow: 0 4px 15px rgba(37, 99, 235, 0.4); display: inline-block; transition: transform 0.2s;&quot;&gt;
            DOMINA TU ENTORNO AHORA
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;footer style=&quot;background-color: #0f172a; color: #94a3b8; padding: 20px; text-align: center; border-radius: 15px; font-size: 0.85em;&quot;&gt;
        © 2026 ApliArte - Ingeniería de Prompts y Desarrollo High-End. &lt;br&gt;
        &lt;span style=&quot;color: #475569;&quot;&gt;Desarrollado para el ecosistema de Francisco (Senior Flutter Dev)&lt;/span&gt;
    &lt;/footer&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/348114739261503522'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/348114739261503522'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/03/the-ultra-optimized-vs-code-agent-system.html' title='The Ultra-Optimized VS Code Agent System'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-4024659664188936425</id><published>2026-02-24T22:56:20.059+01:00</published><updated>2026-02-24T22:56:38.392+01:00</updated><title type='text'>DEBUGGING: LA FÁBRICA vs OPENCLAW</title><content type='html'>&lt;div itemscope itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; max-width: 900px; margin: auto; color: #334155; line-height: 1.6;&quot;&gt;

&lt;div style=&quot;background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); padding: 40px 20px; border-radius: 20px; text-align: center; color: white; box-shadow: 0 10px 30px rgba(0,0,0,0.15); margin-bottom: 30px;&quot;&gt;
&lt;span style=&quot;font-size: 50px;&quot;&gt;🏗️&lt;/span&gt;
&lt;h2 style=&quot;font-weight: 800; font-size: 2.2rem; margin: 10px 0;&quot;&gt;DEBUGGING: LA FÁBRICA vs OPENCLAW&lt;/h2&gt;
&lt;p style=&quot;font-size: 1.1rem; opacity: 0.9;&quot;&gt;Análisis de rendimiento y estabilidad para servidores IA en Android E-Waste&lt;/p&gt;
&lt;div style=&quot;display: inline-block; background: #22c55e; padding: 5px 15px; border-radius: 50px; font-weight: bold; font-size: 0.8rem; margin-top: 10px;&quot;&gt;ESTADO: INVESTIGACIÓN TÉCNICA&lt;/div&gt;
&lt;meta itemprop=&quot;name&quot; content=&quot;La Fábrica - ClawMobil Debugging&quot;&gt;
&lt;meta itemprop=&quot;applicationCategory&quot; content=&quot;DeveloperApplication&quot;&gt;
&lt;meta itemprop=&quot;url&quot; content=&quot;https://apliarte.com&quot;&gt;
&lt;/div&gt;

&lt;div style=&quot;margin-bottom: 30px; text-align: center;&quot;&gt;
&lt;a href=&quot;https://apliarte.com&quot; title=&quot;Comparativa técnica de servidores IA en móviles antiguos con Flutter y Llama.cpp&quot; rel=&quot;noopener&quot;&gt;
&lt;img src=&quot;https://images.unsplash.com/photo-1550751827-4bd374c3f58b?auto=format&amp;fit=crop&amp;w=1200&amp;q=80&quot;
alt=&quot;Placa base de smartphone antiguo con código binario proyectado representando servidores de inteligencia artificial locales&quot;
style=&quot;width: 100%; height: auto; border-radius: 15px; box-shadow: 0 5px 15px rgba(0,0,0,0.1);&quot;
loading=&quot;lazy&quot;&gt;
&lt;/a&gt;
&lt;/div&gt;

&lt;p itemprop=&quot;description&quot; style=&quot;font-size: 1.1rem; border-left: 5px solid #667eea; padding-left: 20px; margin-bottom: 30px;&quot;&gt;
Estamos analizando la viabilidad técnica de &lt;strong&gt;OpenClaw&lt;/strong&gt; frente a la arquitectura nativa de &lt;strong&gt;La Fábrica (ClawMobil)&lt;/strong&gt;. El objetivo es determinar cuál ofrece mayor estabilidad en &lt;strong&gt;Flutter&lt;/strong&gt; al interactuar con modelos cuantizados GGUF bajo restricciones severas de hardware y kernels obsoletos.
&lt;/p&gt;

&lt;h3 style=&quot;color: #1e293b; border-bottom: 2px solid #f1f5f9; padding-bottom: 10px;&quot;&gt;📋 Tabla Comparativa de Rendimiento&lt;/h3&gt;

&lt;div style=&quot;overflow-x: auto; margin-bottom: 30px;&quot;&gt;
&lt;table style=&quot;width: 100%; border-collapse: collapse; background: white; border-radius: 10px; overflow: hidden;&quot;&gt;
&lt;thead&gt;
&lt;tr style=&quot;background: #0f172a; color: white; text-align: left;&quot;&gt;
&lt;th style=&quot;padding: 15px;&quot;&gt;Parámetro&lt;/th&gt;
&lt;th style=&quot;padding: 15px;&quot;&gt;La Fábrica (Native)&lt;/th&gt;
&lt;th style=&quot;padding: 15px;&quot;&gt;OpenClaw (Wrapper)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr style=&quot;border-bottom: 1px solid #f1f5f9;&quot;&gt;
&lt;td style=&quot;padding: 15px; font-weight: bold;&quot;&gt;Estabilidad Kernel&lt;/td&gt;
&lt;td style=&quot;padding: 15px; color: #16a34a;&quot;&gt;✅ Alta (Manual Tuning)&lt;/td&gt;
&lt;td style=&quot;padding: 15px; color: #dc2626;&quot;&gt;❌ Inestable (Signal 11)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;border-bottom: 1px solid #f1f5f9; background: #f8fafc;&quot;&gt;
&lt;td style=&quot;padding: 15px; font-weight: bold;&quot;&gt;Latencia Inferencia&lt;/td&gt;
&lt;td style=&quot;padding: 15px;&quot;&gt;~120ms / token&lt;/td&gt;
&lt;td style=&quot;padding: 15px;&quot;&gt;~95ms / token (Peak)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;border-bottom: 1px solid #f1f5f9;&quot;&gt;
&lt;td style=&quot;padding: 15px; font-weight: bold;&quot;&gt;Gestión Térmica&lt;/td&gt;
&lt;td style=&quot;padding: 15px; color: #16a34a;&quot;&gt;✅ Throttle controlado&lt;/td&gt;
&lt;td style=&quot;padding: 15px; color: #dc2626;&quot;&gt;🔥 Crítico (Overheat)&lt;/td&gt;
&lt;/tr&gt;
&lt;tr style=&quot;border-bottom: 1px solid #f1f5f9; background: #f8fafc;&quot;&gt;
&lt;td style=&quot;padding: 15px; font-weight: bold;&quot;&gt;Integración Flutter&lt;/td&gt;
&lt;td style=&quot;padding: 15px;&quot;&gt;MethodChannels directos&lt;/td&gt;
&lt;td style=&quot;padding: 15px;&quot;&gt;Abstracción compleja&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/div&gt;

&lt;h3 style=&quot;color: #1e293b; margin-top: 30px;&quot;&gt;🐛 Diagnóstico de Fallos en OpenClaw&lt;/h3&gt;
&lt;div style=&quot;background: #fef2f2; border-left: 5px solid #ef4444; padding: 20px; border-radius: 10px; margin-bottom: 30px;&quot;&gt;
&lt;ul style=&quot;margin: 0; padding-left: 20px;&quot;&gt;
&lt;li&gt;&lt;strong&gt;Error de Segmentación (SIGSEGV):&lt;/strong&gt; Probable desalineación de memoria en el acceso a punteros de &lt;code&gt;llama_context&lt;/code&gt; en arquitecturas ARMv7.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zombi de Proceso:&lt;/strong&gt; El proceso hijo de OpenClaw no libera el socket de Node.js al fallar, bloqueando el puerto 8080 permanentemente.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Incompatibilidad de GGUF:&lt;/strong&gt; Las versiones recientes de OpenClaw fuerzan metadatos que los kernels de Android 7/8 no interpretan correctamente.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;

&lt;h3 style=&quot;color: #1e293b;&quot;&gt;🛠️ Hoja de Ruta de Estabilización&lt;/h3&gt;
&lt;div style=&quot;display: grid; grid-template-columns: repeat(auto-fit, minmax(250px, 1fr)); gap: 20px; margin-bottom: 30px;&quot;&gt;
&lt;div style=&quot;padding: 20px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;&quot;&gt;
&lt;span style=&quot;font-size: 1.5rem;&quot;&gt;1️⃣&lt;/span&gt;
&lt;h4 style=&quot;margin: 10px 0;&quot;&gt;Rollback Binario&lt;/h4&gt;
&lt;p style=&quot;font-size: 0.9rem;&quot;&gt;Revertir a la compilación estática de &lt;code&gt;llama.cpp&lt;/code&gt; sin las dependencias de OpenClaw. Menos &quot;magia&quot;, más control.&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;padding: 20px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;&quot;&gt;
&lt;span style=&quot;font-size: 1.5rem;&quot;&gt;2️⃣&lt;/span&gt;
&lt;h4 style=&quot;margin: 10px 0;&quot;&gt;Ajuste de Swap&lt;/h4&gt;
&lt;p style=&quot;font-size: 0.9rem;&quot;&gt;Configurar 2GB de ZRAM mediante script de inicio para evitar que el OOM Killer de Android mate la IA.&lt;/p&gt;
&lt;/div&gt;
&lt;div style=&quot;padding: 20px; background: #f8fafc; border: 1px solid #e2e8f0; border-radius: 12px;&quot;&gt;
&lt;span style=&quot;font-size: 1.5rem;&quot;&gt;3️⃣&lt;/span&gt;
&lt;h4 style=&quot;margin: 10px 0;&quot;&gt;Refactor Flutter&lt;/h4&gt;
&lt;p style=&quot;font-size: 0.9rem;&quot;&gt;Implementar un &lt;code&gt;Isolate&lt;/code&gt; dedicado para la comunicación con el binario nativo, evitando lag en la UI.&lt;/p&gt;
&lt;/div&gt;
&lt;/div&gt;

&lt;div style=&quot;text-align: center; margin: 40px 0;&quot;&gt;
&lt;a href=&quot;https://github.com/tu-usuario/ClawMobil&quot;
title=&quot;Ver repositorio de La Fábrica en GitHub y descargar el código fuente&quot;
target=&quot;_blank&quot;
rel=&quot;noopener&quot;
style=&quot;background: linear-gradient(90deg, #1e293b 0%, #334155 100%); color: white; padding: 18px 35px; border-radius: 50px; text-decoration: none; font-weight: bold; font-size: 1.1rem; box-shadow: 0 4px 15px rgba(0,0,0,0.2); display: inline-block;&quot;&gt;
DESCARGAR CLAWMOBIL STABLE 🚀
&lt;/a&gt;
&lt;/div&gt;

&lt;div style=&quot;background: #0f172a; color: #94a3b8; padding: 20px; border-radius: 15px; text-align: center; font-size: 0.8rem;&quot;&gt;
© 2026 ApliArte - Francisco (Erbolamm).



&lt;span style=&quot;color: #667eea;&quot;&gt;Ingeniería de Guerrilla: Resucitando el Hardware.&lt;/span&gt;
&lt;/div&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4024659664188936425'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4024659664188936425'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/debugging-la-fabrica-vs-openclaw.html' title='DEBUGGING: LA FÁBRICA vs OPENCLAW'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-5205194703829065867</id><published>2026-02-21T14:23:00.003+01:00</published><updated>2026-02-21T15:01:22.857+01:00</updated><title type='text'>Overlay ligero y fácil de usar</title><content type='html'>&lt;div style=&quot;font-family: Arial, sans-serif; line-height: 1.6; color: #333;&quot;&gt;
  
  &lt;h2 style=&quot;color: #1565c0;&quot;&gt;¡Widgets Modulares para OBS Gratis y Optimizados!&lt;/h2&gt;
  
  &lt;p&gt;En este post os comparto el sistema de &lt;strong&gt;Widgets y Overlays para OBS&lt;/strong&gt; que hemos diseñado. Está construido puramente en HTML, CSS y JavaScript nativo, lo que significa que delega todo el trabajo a la tarjeta gráfica y no consumirá recursos de tu procesador (ideal si haces streaming con un PC de bajos recursos).&lt;/p&gt;
  
  &lt;p&gt;En el siguiente vídeo os explico paso a paso cómo funciona:&lt;/p&gt;
  
  &lt;!-- CONTENEDOR RESPONSIVE PARA EL VÍDEO DE YOUTUBE --&gt;
  &lt;div style=&quot;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; margin-bottom: 20px; border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.1);&quot;&gt;
    &lt;iframe style=&quot;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&quot; src=&quot;https://www.youtube.com/embed/5_qsYI2nj-A?si=7cqWp2xpmOuIQhZj&quot; title=&quot;YouTube video player&quot; allow=&quot;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&quot; referrerpolicy=&quot;strict-origin-when-cross-origin&quot; allowfullscreen&gt;&lt;/iframe&gt;
  &lt;/div&gt;

  &lt;h3 style=&quot;color: #1565c0;&quot;&gt;🛠️ Cómo instalarlo en tu PC&lt;/h3&gt;
  
  &lt;ol style=&quot;margin-bottom: 20px;&quot;&gt;
    &lt;li&gt;Copia todo el código que aparece en la caja negra de abajo.&lt;/li&gt;
    &lt;li&gt;Abre el &lt;strong&gt;Bloc de notas&lt;/strong&gt; (o tu editor de código favorito) y pega el código.&lt;/li&gt;
    &lt;li&gt;Guarda el archivo y ponle el nombre que quieras, pero asegúrate de terminarlo en &lt;strong&gt;.html&lt;/strong&gt; (por ejemplo: &lt;code&gt;widgets-apliarte.html&lt;/code&gt;).&lt;/li&gt;
    &lt;li&gt;Haz doble clic sobre el archivo que has creado para abrirlo en tu navegador (Chrome, Edge, etc.).&lt;/li&gt;
    &lt;li&gt;¡Listo! Al abrirlo, verás el panel de control con las instrucciones exactas para separar cada widget en tu OBS usando Fuentes de Navegador.&lt;/li&gt;
  &lt;/ol&gt;

  &lt;h3 style=&quot;color: #1565c0;&quot;&gt;💻 Código del Widget (Copia esto)&lt;/h3&gt;

  &lt;!-- CAJA DE CÓDIGO FORMATEADA PARA BLOGGER --&gt;
  &lt;pre style=&quot;background: #1e1e1e; color: #d4d4d4; padding: 15px; border-radius: 8px; overflow-x: auto; font-family: Consolas, Monaco, &#39;Courier New&#39;, monospace; font-size: 13px; border: 1px solid #333; line-height: 1.4;&quot;&gt;&lt;code&gt;&amp;lt;!DOCTYPE html&amp;gt;
&amp;lt;html lang=&quot;es&quot;&amp;gt;
&amp;lt;head&amp;gt;
    &amp;lt;meta charset=&quot;UTF-8&quot;&amp;gt;
    &amp;lt;meta name=&quot;viewport&quot; content=&quot;width=device-width, initial-scale=1.0&quot;&amp;gt;
    &amp;lt;title&amp;gt;ApliArte - Widgets Separados&amp;lt;/title&amp;gt;
    &amp;lt;style&amp;gt;
        /* =========================================
           VARIABLES Y RESET
           ========================================= */
        :root {
            --color-primary: #5bc0f8;
            --color-secondary: #1565c0;
            --color-dark: #030a16;
            --glass-bg: rgba(10, 20, 40, 0.4);
            --glass-border: rgba(91, 192, 248, 0.4);
            --glass-shadow: 0 8px 32px rgba(0, 0, 0, 0.5);
        }

        * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
            font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif;
        }

        body {
            /* IMPORTANTE: Transparente para OBS */
            background-color: transparent;
            color: white;
            overflow: hidden; /* Evita barras de desplazamiento en OBS */
        }

        /* =========================================
           WIDGET 1: FONDO ANIMADO
           ========================================= */
        #widget-bg {
            position: fixed;
            top: 0; left: 0; width: 1920px; height: 1080px;
            background: linear-gradient(-45deg, var(--color-dark), #081b33, var(--color-secondary), var(--color-dark));
            background-size: 400% 400%;
            animation: gradientBG 15s ease infinite;
            display: none; /* Se activa por JS */
            z-index: -3;
        }

        @keyframes gradientBG {
            0% { background-position: 0% 50%; }
            50% { background-position: 100% 50%; }
            100% { background-position: 0% 50%; }
        }

        .shape {
            position: absolute;
            border-radius: 50%;
            filter: blur(80px);
            animation: floatShape 20s infinite alternate ease-in-out;
            opacity: 0.5;
        }
        .shape-1 { width: 700px; height: 700px; background: var(--color-primary); top: -10%; left: -10%; }
        .shape-2 { width: 900px; height: 900px; background: var(--color-secondary); bottom: -20%; right: -10%; animation-delay: -5s; }
        .grid-overlay {
            position: absolute;
            top: 0; left: 0; width: 100%; height: 100%;
            background-image: linear-gradient(rgba(255,255,255,0.03) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,0.03) 1px, transparent 1px);
            background-size: 40px 40px;
            opacity: 0.5;
        }

        @keyframes floatShape {
            0% { transform: translate(0, 0) scale(1); }
            100% { transform: translate(100px, 150px) scale(1.2); }
        }

        /* =========================================
           WIDGET 2: MARCO TV / MONITOR (Con Brillo)
           ========================================= */
        #widget-tv {
            position: fixed;
            top: 0; left: 0; width: 1920px; height: 1080px;
            display: none; /* Se activa por JS */
            align-items: center;
            justify-content: center;
        }

        .tv-frame {
            /* Ajusta este tamaño según lo que necesites en OBS */
            width: 1440px; 
            height: 810px; 
            position: relative;
            border: 3px solid var(--color-primary);
            border-radius: 12px;
            box-shadow: var(--glass-shadow), 0 0 20px rgba(91, 192, 248, 0.3), inset 0 0 20px rgba(91, 192, 248, 0.3);
            /* EL FONDO ES TRANSPARENTE PARA QUE SE VEA TU PANTALLA DETRÁS EN OBS */
            background: transparent;
            overflow: hidden; /* Para contener el brillo */
        }

        /* Efecto Espejo / Brillo de Cristal */
        .tv-glare {
            position: absolute;
            top: 0; left: -150%;
            width: 150%; height: 100%;
            background: linear-gradient(
                105deg, 
                transparent 20%, 
                rgba(255, 255, 255, 0.15) 25%, 
                rgba(255, 255, 255, 0.05) 28%,
                transparent 35%
            );
            transform: skewX(-20deg);
            animation: glareAnim 8s infinite cubic-bezier(0.25, 0.8, 0.25, 1);
            pointer-events: none; /* Para no interferir si interactúas con OBS */
            z-index: 10;
        }

        @keyframes glareAnim {
            0% { left: -150%; }
            15% { left: 150%; }
            100% { left: 150%; } /* Pausa larga antes de repetir */
        }

        /* Barra inferior estilo monitor */
        .tv-bottom-bar {
            position: absolute;
            bottom: 0; left: 0; width: 100%;
            height: 40px;
            background: rgba(3, 10, 22, 0.85);
            backdrop-filter: blur(10px);
            border-top: 1px solid var(--glass-border);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 900;
            letter-spacing: 5px;
            color: var(--color-primary);
            font-size: 14px;
        }

        /* =========================================
           WIDGET 3: MARCO CÁMARA
           ========================================= */
        #widget-cam {
            position: fixed;
            top: 0; left: 0; width: 1920px; height: 1080px;
            display: none; /* Se activa por JS */
            padding: 40px; /* Para que al importarlo en OBS no quede pegado al borde si no quieres */
        }

        .cam-frame {
            width: 480px; /* Formato 16:9 */
            height: 270px;
            background: transparent;
            border: 3px solid var(--color-primary);
            border-radius: 16px;
            box-shadow: var(--glass-shadow), 0 0 15px rgba(91, 192, 248, 0.3);
            position: relative;
        }

        .cam-label {
            position: absolute;
            top: -15px; left: 20px;
            background: var(--color-dark);
            border: 1px solid var(--color-primary);
            padding: 2px 15px;
            border-radius: 10px;
            font-size: 12px;
            font-weight: bold;
            color: var(--color-primary);
            box-shadow: 0 4px 10px rgba(0,0,0,0.5);
        }

        /* =========================================
           WIDGET 4: MARCO CHAT
           ========================================= */
        #widget-chat {
            position: fixed;
            top: 0; left: 0; width: 1920px; height: 1080px;
            display: none; /* Se activa por JS */
            padding: 40px;
        }

        .chat-frame {
            width: 400px;
            height: 800px;
            background: var(--glass-bg);
            backdrop-filter: blur(12px);
            border: 1px solid var(--glass-border);
            border-radius: 20px;
            box-shadow: var(--glass-shadow);
            display: flex;
            flex-direction: column;
            overflow: hidden;
        }

        .chat-header {
            background: rgba(3, 10, 22, 0.8);
            padding: 15px;
            text-align: center;
            font-weight: bold;
            color: var(--color-primary);
            letter-spacing: 2px;
            border-bottom: 1px solid var(--glass-border);
        }

        /* =========================================
           DASHBOARD / INSTRUCCIONES (Solo visible fuera de OBS)
           ========================================= */
        #dashboard {
            display: none; /* Se activa por JS si no hay parámetros */
            position: fixed;
            top: 0; left: 0; width: 100vw; height: 100vh;
            background: #030a16;
            color: white;
            padding: 50px;
            overflow-y: auto;
            align-items: center;
            flex-direction: column;
        }

        .dash-card {
            background: rgba(255,255,255,0.05);
            border: 1px solid var(--glass-border);
            padding: 30px;
            border-radius: 16px;
            max-width: 800px;
            width: 100%;
            margin-bottom: 20px;
        }

        .code-block {
            background: #000;
            padding: 15px;
            border-radius: 8px;
            font-family: monospace;
            color: #5bc0f8;
            margin: 10px 0;
            border: 1px solid #333;
        }
    &amp;lt;/style&amp;gt;
&amp;lt;/head&amp;gt;
&amp;lt;body&amp;gt;

    &amp;lt;!-- ==========================================
         WIDGET 1: FONDO ANIMADO
         ========================================== --&amp;gt;
    &amp;lt;div id=&quot;widget-bg&quot;&amp;gt;
        &amp;lt;div class=&quot;shape shape-1&quot;&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;shape shape-2&quot;&amp;gt;&amp;lt;/div&amp;gt;
        &amp;lt;div class=&quot;grid-overlay&quot;&amp;gt;&amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- ==========================================
         WIDGET 2: MARCO TV / MONITOR
         ========================================== --&amp;gt;
    &amp;lt;div id=&quot;widget-tv&quot;&amp;gt;
        &amp;lt;div class=&quot;tv-frame&quot;&amp;gt;
            &amp;lt;!-- Capa transparente para el centro --&amp;gt;
            &amp;lt;div class=&quot;tv-glare&quot;&amp;gt;&amp;lt;/div&amp;gt; &amp;lt;!-- El efecto de brillo/cristal --&amp;gt;
            &amp;lt;div class=&quot;tv-bottom-bar&quot;&amp;gt;APLIARTE STUDIO&amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- ==========================================
         WIDGET 3: MARCO CÁMARA
         ========================================== --&amp;gt;
    &amp;lt;div id=&quot;widget-cam&quot;&amp;gt;
        &amp;lt;div class=&quot;cam-frame&quot;&amp;gt;
            &amp;lt;div class=&quot;cam-label&quot;&amp;gt;LIVE CAM&amp;lt;/div&amp;gt;
            &amp;lt;!-- Transparente por dentro para tu cámara en OBS --&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- ==========================================
         WIDGET 4: MARCO CHAT
         ========================================== --&amp;gt;
    &amp;lt;div id=&quot;widget-chat&quot;&amp;gt;
        &amp;lt;div class=&quot;chat-frame&quot;&amp;gt;
            &amp;lt;div class=&quot;chat-header&quot;&amp;gt;CHAT EN VIVO&amp;lt;/div&amp;gt;
            &amp;lt;!-- Aquí detrás o dentro pondrás el chat de OBS --&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- ==========================================
         DASHBOARD DE INSTRUCCIONES
         ========================================== --&amp;gt;
    &amp;lt;div id=&quot;dashboard&quot;&amp;gt;
        &amp;lt;h1 style=&quot;color: var(--color-primary); margin-bottom: 10px;&quot;&amp;gt;Panel de Control de Widgets: ApliArte&amp;lt;/h1&amp;gt;
        &amp;lt;p style=&quot;margin-bottom: 40px; opacity: 0.8; text-align: center; max-width: 600px;&quot;&amp;gt;
            Has abierto el archivo maestro. Para separar los elementos en OBS, debes añadir este mismo archivo HTML como &quot;Fuente de Navegador&quot; varias veces, pero añadiendo un parámetro al final de la ruta local.
        &amp;lt;/p&amp;gt;

        &amp;lt;div class=&quot;dash-card&quot;&amp;gt;
            &amp;lt;h3&amp;gt;1. Fondo Animado&amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Añade una fuente de navegador, selecciona este archivo y al final de la ruta añade:&amp;lt;/p&amp;gt;
            &amp;lt;div class=&quot;code-block&quot;&amp;gt;?widget=bg&amp;lt;/div&amp;gt;
            &amp;lt;p style=&quot;font-size: 12px; color: #888;&quot;&amp;gt;Pon esta fuente en la capa más baja de OBS.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;div class=&quot;dash-card&quot;&amp;gt;
            &amp;lt;h3&amp;gt;2. Pantalla TV / Monitor (Con efecto de brillo)&amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Añade una fuente de navegador (Tamaño 1920x1080), selecciona el archivo y añade:&amp;lt;/p&amp;gt;
            &amp;lt;div class=&quot;code-block&quot;&amp;gt;?widget=tv&amp;lt;/div&amp;gt;
            &amp;lt;p style=&quot;font-size: 12px; color: #888;&quot;&amp;gt;Pon tu Captura de Pantalla/Ventana debajo de esta fuente en OBS para que se vea a través del cristal.&amp;lt;/p&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;div class=&quot;dash-card&quot;&amp;gt;
            &amp;lt;h3&amp;gt;3. Marco de Cámara&amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Añade una fuente de navegador, selecciona el archivo y añade:&amp;lt;/p&amp;gt;
            &amp;lt;div class=&quot;code-block&quot;&amp;gt;?widget=cam&amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;

        &amp;lt;div class=&quot;dash-card&quot;&amp;gt;
            &amp;lt;h3&amp;gt;4. Marco de Chat&amp;lt;/h3&amp;gt;
            &amp;lt;p&amp;gt;Añade una fuente de navegador, selecciona el archivo y añade:&amp;lt;/p&amp;gt;
            &amp;lt;div class=&quot;code-block&quot;&amp;gt;?widget=chat&amp;lt;/div&amp;gt;
        &amp;lt;/div&amp;gt;
    &amp;lt;/div&amp;gt;

    &amp;lt;!-- ==========================================
         LÓGICA JAVASCRIPT
         ========================================== --&amp;gt;
    &amp;lt;script&amp;gt;
        // Leemos la URL para saber qué widget mostrar
        const params = new URLSearchParams(window.location.search);
        const widgetType = params.get(&#39;widget&#39;);

        if (widgetType === &#39;bg&#39;) {
            document.getElementById(&#39;widget-bg&#39;).style.display = &#39;block&#39;;
        } 
        else if (widgetType === &#39;tv&#39;) {
            document.getElementById(&#39;widget-tv&#39;).style.display = &#39;flex&#39;;
        } 
        else if (widgetType === &#39;cam&#39;) {
            document.getElementById(&#39;widget-cam&#39;).style.display = &#39;block&#39;;
        } 
        else if (widgetType === &#39;chat&#39;) {
            document.getElementById(&#39;widget-chat&#39;).style.display = &#39;block&#39;;
        } 
        else {
            // Si no hay parámetro, mostramos el manual de instrucciones (Dashboard)
            document.getElementById(&#39;dashboard&#39;).style.display = &#39;flex&#39;;
        }
    &amp;lt;/script&amp;gt;
&amp;lt;/body&amp;gt;
&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5205194703829065867'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5205194703829065867'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/overlay-ligero-y-facil-de-usar.html' title='Overlay ligero y fácil de usar'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/5_qsYI2nj-A/default.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-7776149652082606508</id><published>2026-02-21T12:23:00.002+01:00</published><updated>2026-02-21T12:23:59.298+01:00</updated><title type='text'>OptimizerPanel</title><content type='html'>&lt;style&gt;
  .opt-container {
    font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif;
    background-color: #0f0f12;
    color: #e0e0e0;
    padding: 30px;
    border-radius: 15px;
    line-height: 1.7;
    max-width: 850px;
    margin: 20px auto;
    border: 1px solid #2a2a2a;
    box-shadow: 0 15px 35px rgba(0,0,0,0.7);
  }
  .opt-header {
    text-align: center;
    border-bottom: 2px solid #1e1e24;
    padding-bottom: 20px;
    margin-bottom: 30px;
  }
  .opt-title {
    color: #00d4ff;
    font-size: 2.5em;
    margin: 0;
    text-transform: uppercase;
    letter-spacing: 2px;
  }
  .opt-badge {
    background: #1e1e24;
    padding: 15px;
    border-radius: 10px;
    border-left: 5px solid #00d4ff;
    margin: 20px 0;
  }
  .opt-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
    gap: 15px;
    margin: 30px 0;
  }
  .copy-btn {
    border: none;
    padding: 15px;
    border-radius: 8px;
    cursor: pointer;
    font-weight: bold;
    transition: all 0.3s ease;
    color: white;
    font-size: 0.9em;
    text-transform: uppercase;
  }
  .btn-mac { background: #333; border-bottom: 4px solid #00d4ff; }
  .btn-win { background: #333; border-bottom: 4px solid #00a1f1; }
  .btn-lin { background: #333; border-bottom: 4px solid #f8d000; }
  .copy-btn:hover { transform: translateY(-3px); filter: brightness(1.2); }
  .copy-btn:active { transform: translateY(0); }
  
  .terminal-box {
    background: #000;
    padding: 15px;
    border-radius: 6px;
    font-family: &#39;Courier New&#39;, Courier, monospace;
    font-size: 0.9em;
    color: #00ff00;
    border: 1px solid #333;
    overflow-x: auto;
  }
  #status-log {
    text-align: center;
    color: #00ff00;
    font-weight: bold;
    height: 25px;
    margin-top: 10px;
  }
  kbd {
    background: #333;
    padding: 2px 6px;
    border-radius: 4px;
    font-size: 0.8em;
    border: 1px solid #555;
  }
&lt;/style&gt;

&lt;div class=&quot;opt-container&quot;&gt;
  &lt;div class=&quot;opt-header&quot;&gt;
    &lt;h1 class=&quot;opt-title&quot;&gt;OptimizerPanel&lt;/h1&gt;
    &lt;p style=&quot;color: #888;&quot;&gt;Optimización Pro: macOS, Windows y Linux en un solo clic&lt;/p&gt;
  &lt;/div&gt;

  &lt;p&gt;Mantener el ordenador libre de procesos basura es vital para el rendimiento, especialmente en setups de &lt;b&gt;Streaming o Gaming&lt;/b&gt;. Hoy vamos a crear una herramienta personalizada que automatiza la limpieza de RAM, flush de DNS y perfiles de energía.&lt;/p&gt;

  &lt;div class=&quot;opt-badge&quot;&gt;
    &lt;h3 style=&quot;margin-top:0; color:#fff;&quot;&gt;¿Cómo empezar?&lt;/h3&gt;
    &lt;p&gt;Puedes ejecutar el prompt que te proporciono más abajo en cualquiera de estas herramientas de IA:&lt;/p&gt;
    &lt;ul&gt;
      &lt;li&gt;&lt;b&gt;Warp Terminal:&lt;/b&gt; Usa &lt;kbd&gt;Cmd+K&lt;/kbd&gt; para inteligencia nativa.&lt;/li&gt;
      &lt;li&gt;&lt;b&gt;GitHub Copilot:&lt;/b&gt; Instala vía terminal con &lt;code&gt;brew install gh&lt;/code&gt;.&lt;/li&gt;
      &lt;li&gt;&lt;b&gt;Gemini/ChatGPT:&lt;/b&gt; Copia el texto y pégalo en su versión web.&lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;

  &lt;h3 style=&quot;color: #00d4ff; text-align: center;&quot;&gt;👇 Selecciona tu Sistema para copiar el Prompt&lt;/h3&gt;

  &lt;div class=&quot;opt-grid&quot;&gt;
    &lt;button class=&quot;copy-btn btn-mac&quot; onclick=&quot;copyPrompt(&#39;mac&#39;)&quot;&gt; Prompt macOS&lt;/button&gt;
    &lt;button class=&quot;copy-btn btn-win&quot; onclick=&quot;copyPrompt(&#39;windows&#39;)&quot;&gt;⊞ Prompt Windows&lt;/button&gt;
    &lt;button class=&quot;copy-btn btn-lin&quot; onclick=&quot;copyPrompt(&#39;linux&#39;)&quot;&gt;🐧 Prompt Linux&lt;/button&gt;
  &lt;/div&gt;

  &lt;div id=&quot;status-log&quot;&gt;&lt;/div&gt;

  &lt;div style=&quot;margin-top: 30px;&quot;&gt;
    &lt;h3 style=&quot;color: #fff;&quot;&gt;Instalación vía Terminal (Opcional)&lt;/h3&gt;
    &lt;p&gt;Si prefieres instalar las herramientas de IA directamente en tu terminal, usa estos comandos:&lt;/p&gt;
    &lt;div class=&quot;terminal-box&quot;&gt;
      # Para Copilot (GitHub CLI)&lt;br&gt;
      brew install gh &amp;&amp; gh auth login&lt;br&gt;&lt;br&gt;
      # Para Gemini (Python Library)&lt;br&gt;
      pip install -U google-generativeai
    &lt;/div&gt;
  &lt;/div&gt;

  &lt;footer style=&quot;margin-top: 40px; padding-top: 20px; border-top: 1px solid #2a2a2a; font-size: 0.8em; color: #666; text-align: center;&quot;&gt;
    Nota: Esta herramienta requiere Python instalado para ejecutar el script generado (.py).
  &lt;/footer&gt;
&lt;/div&gt;

&lt;script&gt;
function copyPrompt(os) {
  const prompts = {
    mac: `CONTEXTO: Mac Mini M2 Pro, macOS Sonoma/Sequoia. MISSION: Crea un script Python con tkinter llamado OptimizerPanel. Botones: 1. STREAMING (Cierra Discord, Steam, Spotify, sudo purge). 2. GAMING (Cierra Chrome, Safari, notificaciones). 3. LIMPIAR TEMPORALES (~/Library/Caches). 4. FLUSH DNS. REQUISITOS: Modo oscuro, barra de RAM real (vm_stat), ejecutable con doble clic.`,
    windows: `CONTEXTO: Windows 10/11 Gaming PC. MISSION: Crea un script Python con tkinter llamado OptimizerPanel. Botones: 1. STREAMING (Cierra Steam, OneDrive, Discord). 2. GAMING (Cierra navegadores, Modo Juego On). 3. LIMPIAR TEMPORALES (%TEMP%). 4. FLUSH DNS (ipconfig). REQUISITOS: Modo oscuro, barra de RAM real, ejecutable con doble clic.`,
    linux: `CONTEXTO: Linux Distro (Debian/Ubuntu/Arch). MISSION: Crea un script Python con tkinter llamado OptimizerPanel. Botones: 1. OPTIMIZAR (sync; echo 3 &gt; /proc/sys/vm/drop_caches). 2. LIMPIAR (~/.cache). 3. ACTUALIZAR (apt/pacman). REQUISITOS: Modo oscuro, barra de RAM real (free), ejecutable con doble clic.`
  };

  const el = document.createElement(&#39;textarea&#39;);
  el.value = prompts[os];
  document.body.appendChild(el);
  el.select();
  document.execCommand(&#39;copy&#39;);
  document.body.removeChild(el);

  const log = document.getElementById(&#39;status-log&#39;);
  log.innerText = &quot;✅ Prompt para &quot; + os.toUpperCase() + &quot; copiado correctamente.&quot;;
  setTimeout(() =&gt; { log.innerText = &quot;&quot;; }, 3000);
}
&lt;/script&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/7776149652082606508'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/7776149652082606508'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/optimizerpanel.html' title='OptimizerPanel'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-5560376560830124495</id><published>2026-02-21T05:34:00.003+01:00</published><updated>2026-02-21T05:34:42.879+01:00</updated><title type='text'>Evita bloqueos de Apple al implementar Cockpit Tools en tu Mac M2 Pro.</title><content type='html'>&lt;div itemscope itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; color: #334155; line-height: 1.6; max-width: 850px; margin: auto; background: #ffffff; padding: 0; border: 1px solid #e2e8f0;&quot;&gt;
    &lt;div style=&quot;background: linear-gradient(135deg, #D10000 0%, #FFFFFF 100%); padding: 60px 20px; text-align: center; border-bottom: 6px solid #D10000;&quot;&gt;
        &lt;meta itemprop=&quot;name&quot; content=&quot;Guía para Cockpit Tools en Mac M2 Pro&quot;&gt;
        &lt;meta itemprop=&quot;url&quot; content=&quot;https://erbolamm.com&quot;&gt;
        &lt;meta itemprop=&quot;applicationCategory&quot; content=&quot;SoftwareGuide&quot;&gt;
        &lt;div style=&quot;font-size: 70px; margin-bottom: 15px;&quot;&gt;🖥️&lt;/div&gt;
        &lt;h2 style=&quot;color: #ffffff; font-size: 2.8rem; font-weight: 900; margin: 0 0 10px 0; text-transform: uppercase; letter-spacing: -1.5px;&quot;&gt;Cockpit Tools en Mac M2 Pro&lt;/h2&gt;
        &lt;p style=&quot;color: #D10000; font-size: 1.3rem; margin: 0; font-weight: 500;&quot;&gt;Evita bloqueos de Apple al implementar Cockpit Tools en tu Mac M2 Pro.&lt;/p&gt;
    &lt;/div&gt;
    &lt;div style=&quot;margin: 0; padding: 0;&quot;&gt;
        &lt;!-- Espacio para imagen referencial --&gt;
        &lt;a href=&quot;https://erbolamm.com&quot; title=&quot;Software y tecnología avanzada en Erbolamm&quot; rel=&quot;noopener&quot;&gt;
            &lt;img src=&quot;URL_DE_LA_IMAGEN&quot; alt=&quot;Cockpit Tools en Mac M2 Pro guía&quot; title=&quot;Cockpit Tools en Mac M2 Pro&quot; loading=&quot;lazy&quot; style=&quot;width: 100%; height: auto; display: block;&quot;&gt;
        &lt;/a&gt;
    &lt;/div&gt;
    &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
        &lt;h3 style=&quot;color: #D10000; font-size: 1.8rem; border-bottom: 2px solid #f1f5f9; padding-bottom: 10px;&quot;&gt;🛠️ ¿Cuál era el problema?&lt;/h3&gt;
        &lt;p&gt;Apple bloquea aplicaciones de desarrolladores no identificados. Esto sucede porque intentaste ejecutar un archivo .rpm (Linux) en un Mac, provocando fallas como el error ENOENT (file not found).&lt;/p&gt;
    &lt;/div&gt;
    &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
        &lt;h3 style=&quot;color: #D10000;&quot;&gt;📥 Paso 1: Descarga el archivo correcto&lt;/h3&gt;
        &lt;p&gt;Visita el &lt;strong&gt;repositorio oficial en GitHub&lt;/strong&gt; y descarga el archivo compatible con el chip M2 Pro:&lt;/p&gt;
        &lt;ul style=&quot;padding-left: 18px; font-size: 0.9rem; color: #D10000;&quot;&gt;
            &lt;li&gt;&lt;a href=&quot;https://github.com/jlcodes99/cockpit-tools/releases&quot; target=&quot;_blank&quot; style=&quot;color: #D10000;&quot;&gt;Cockpit.Tools_0.7.0_aarch64.dmg&lt;/a&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
        &lt;h3 style=&quot;color: #D10000;&quot;&gt;⚙️ Paso 2: Instalación y comandos en la Terminal&lt;/h3&gt;
        &lt;p&gt;Una vez descargues el archivo .dmg, sigue estos pasos:&lt;/p&gt;
        &lt;ol style=&quot;padding-left: 18px; font-size: 0.9rem; color: #475569;&quot;&gt;
            &lt;li&gt;Abre el archivo .dmg. Haz doble clic y arrastra Cockpit Tools a la carpeta &lt;strong&gt;Aplicaciones.&lt;/strong&gt;&lt;/li&gt;
            &lt;li&gt;Abre tu aplicación &lt;em&gt;Terminal&lt;/em&gt; y ejecuta este comando para eliminar el atributo de cuarentena de Apple:
                &lt;pre style=&quot;background: #0f172a; color: #D10000; padding: 15px; border-radius: 8px; overflow-x: auto; font-family: &#39;Courier New&#39;, monospace; font-size: 0.85rem; border: 1px solid #e2e8f0;&quot;&gt;sudo xattr -rd com.apple.quarantine&lt;/pre&gt;
            &lt;/li&gt;
            &lt;li&gt;Arrastra la aplicación desde la carpeta de Aplicaciones al Terminal.&lt;/li&gt;
            &lt;li&gt;Pulsa &lt;strong&gt;Enter&lt;/strong&gt; e introduce la contraseña.&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;
    &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
        &lt;h3 style=&quot;color: #D10000;&quot;&gt;🤔 ¿Por qué funciona?&lt;/h3&gt;
      &lt;p&gt;Instalar el archivo nativo .dmg permite que VS Code y la app Cockpit Tools se comuniquen correctamente. Esto elimina los problemas de incompatibilidad (como los archivos no encontrados).&lt;/p&gt;
    &lt;/div&gt;
    &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
        &lt;h3 style=&quot;color: #D10000;&quot;&gt;🐞 Depuración: Qué hacer si sigue sin funcionar&lt;/h3&gt;
        &lt;blockquote style=&quot;background: #fef2f2; border-left: 5px solid #ef4444; padding: 15px;&quot;&gt;
            &lt;p style=&quot;margin: 0; font-size: 0.9rem; color: #991b1b;&quot;&gt;&lt;strong&gt;Error:&lt;/strong&gt; VS Code muestra &quot;File Not Found&quot;. El problema puede estar en la configuración de las rutas del programa.&lt;/p&gt;
        &lt;/blockquote&gt;
        &lt;p style=&quot;font-size: 0.9rem;&quot;&gt;Asegúrate de revisar:&lt;/p&gt;
        &lt;ul style=&quot;padding-left: 18px; font-size: 0.9rem; color: #475569;&quot;&gt;
            &lt;li&gt;Que la ruta a &lt;code&gt;/Applications/Cockpit Tools.app&lt;/code&gt; esté correctamente configurada en &lt;code&gt;~/.vscode/extensions/antigravity...&lt;/code&gt;.&lt;/li&gt;
            &lt;li&gt;Reinicia el servidor de la extensión para forzar la comunicación con la app.&lt;/li&gt;
            &lt;li&gt;Verifica permisos en la carpeta &lt;code&gt;~/.antigravity_cockpit&lt;/code&gt;. Ajusta para permitir &lt;strong&gt;lectura y escritura.&lt;/strong&gt;&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;div style=&quot;text-align: center; padding: 40px 20px; background: #f8f9fa;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Explora más guías y soluciones técnicas&quot; target=&quot;_blank&quot; style=&quot;background: linear-gradient(135deg, #D10000 0%, #FF4D4D 100%); color: white; padding: 22px 45px; border-radius: 12px; font-weight: 900; font-size: 1.3rem; box-shadow: 0 10px 25px -5px rgba(200, 0, 0, 0.4); text-transform: uppercase;&quot;&gt; Ver más guías 🚀 &lt;/a&gt;
    &lt;/div&gt;
    &lt;div style=&quot;background: #0f172a; color: #94a3b8; text-align: center; padding: 40px; font-size: 0.85rem;&quot;&gt;
        &lt;p style=&quot;margin: 0;&quot;&gt;© 2026 ApliArte - Innovación y Guías Técnicas&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5560376560830124495'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5560376560830124495'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/evita-bloqueos-de-apple-al-implementar.html' title='Evita bloqueos de Apple al implementar Cockpit Tools en tu Mac M2 Pro.'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3020815184865685255</id><published>2026-02-21T05:33:00.003+01:00</published><updated>2026-02-21T13:16:05.490+01:00</updated><title type='text'>ClawMobil</title><content type='html'>   &lt;style&gt;
        /* ============================================
       BASE &amp; RESET
       ============================================ */
        *,
        *::before,
        *::after {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
        }

        :root {
            --bg: #050510;
            --bg-card: rgba(255, 255, 255, 0.04);
            --border: rgba(255, 255, 255, 0.08);
            --text: #e0e0e0;
            --text-dim: rgba(255, 255, 255, 0.45);
            --gold: #D4AF37;
            --gold-light: #FDE68A;
            --red: #FF3B3B;
            --red-bg: rgba(255, 59, 59, 0.12);
            --blue: #4A90D9;
            --green: #34D399;
            --purple: #A78BFA;
            --cyan: #22D3EE;
            --section-height: 100dvh;
        }

        html {
            scroll-snap-type: y mandatory;
            scroll-behavior: smooth;
            font-family: &#39;Inter&#39;, -apple-system, sans-serif;
            background: var(--bg);
            color: var(--text);
            overflow-x: hidden;
        }

        /* ============================================
       SCROLL SNAP SECTIONS
       ============================================ */
        .section {
            scroll-snap-align: start;
            scroll-snap-stop: always;
            min-height: var(--section-height);
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 40px 24px;
            position: relative;
        }

        .section-inner {
            max-width: 800px;
            width: 100%;
            animation: fadeSlideIn 0.6s ease-out both;
        }

        @keyframes fadeSlideIn {
            from {
                opacity: 0;
                transform: translateY(40px);
            }

            to {
                opacity: 1;
                transform: translateY(0);
            }
        }

        /* ============================================
       NAV INDICATOR (lateral dots)
       ============================================ */
        .nav-dots {
            position: fixed;
            right: 20px;
            top: 50%;
            transform: translateY(-50%);
            display: flex;
            flex-direction: column;
            gap: 12px;
            z-index: 100;
        }

        .nav-dots a {
            width: 10px;
            height: 10px;
            border-radius: 50%;
            background: rgba(255, 255, 255, 0.15);
            border: 1px solid rgba(255, 255, 255, 0.2);
            transition: all 0.3s ease;
            display: block;
        }

        .nav-dots a:hover,
        .nav-dots a.active {
            background: var(--gold);
            border-color: var(--gold);
            transform: scale(1.4);
            box-shadow: 0 0 12px rgba(212, 175, 55, 0.5);
        }

        /* ============================================
       SECTION 1: HERO
       ============================================ */
        .hero {
            background: radial-gradient(ellipse at 50% 0%, rgba(74, 144, 217, 0.15) 0%, transparent 60%),
                var(--bg);
            text-align: center;
        }

        .hero-badge {
            display: inline-block;
            padding: 6px 16px;
            border: 1px solid var(--gold);
            border-radius: 20px;
            color: var(--gold);
            font-size: 12px;
            font-weight: 600;
            letter-spacing: 2px;
            text-transform: uppercase;
            margin-bottom: 30px;
        }

        .hero h1 {
            font-size: clamp(2.5rem, 7vw, 5rem);
            font-weight: 900;
            line-height: 1.1;
            margin-bottom: 24px;
            background: linear-gradient(135deg, #fff 0%, var(--gold-light) 50%, var(--gold) 100%);
            -webkit-background-clip: text;
            -webkit-text-fill-color: transparent;
            background-clip: text;
        }

        .hero p {
            font-size: 1.2rem;
            color: var(--text-dim);
            max-width: 500px;
            margin: 0 auto 40px;
            line-height: 1.7;
        }

        .scroll-hint {
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 8px;
            color: var(--text-dim);
            font-size: 13px;
            animation: bounce 2s infinite;
        }

        .scroll-hint svg {
            width: 24px;
            height: 24px;
            stroke: var(--gold);
        }

        @keyframes bounce {

            0%,
            100% {
                transform: translateY(0);
            }

            50% {
                transform: translateY(8px);
            }
        }

        /* ============================================
       SECTION 2: WARNING
       ============================================ */
        .warning-section {
            background: radial-gradient(ellipse at 50% 50%, rgba(255, 59, 59, 0.08) 0%, transparent 60%),
                var(--bg);
        }

        .warning-box {
            background: var(--red-bg);
            border: 2px solid var(--red);
            border-radius: 16px;
            padding: 40px;
            text-align: center;
        }

        .warning-icon {
            font-size: 4rem;
            margin-bottom: 20px;
            display: block;
        }

        .warning-box h2 {
            color: var(--red);
            font-size: 1.8rem;
            font-weight: 900;
            text-transform: uppercase;
            letter-spacing: 2px;
            margin-bottom: 20px;
        }

        .warning-box p {
            color: rgba(255, 255, 255, 0.7);
            font-size: 1.05rem;
            line-height: 1.8;
            max-width: 600px;
            margin: 0 auto;
        }

        .warning-box strong {
            color: #fff;
        }

        .warning-box .highlight-red {
            color: var(--red);
            font-weight: 700;
            text-transform: uppercase;
        }

        .tip-box {
            margin-top: 30px;
            padding: 20px;
            background: rgba(52, 211, 153, 0.08);
            border: 1px solid rgba(52, 211, 153, 0.3);
            border-radius: 12px;
            text-align: left;
        }

        .tip-box h3 {
            color: var(--green);
            font-size: 14px;
            font-weight: 700;
            text-transform: uppercase;
            letter-spacing: 1px;
            margin-bottom: 10px;
        }

        .tip-box ul {
            list-style: none;
            display: flex;
            flex-direction: column;
            gap: 8px;
        }

        .tip-box li {
            color: rgba(255, 255, 255, 0.6);
            font-size: 14px;
            padding-left: 20px;
            position: relative;
        }

        .tip-box li::before {
            content: &#39;✓&#39;;
            position: absolute;
            left: 0;
            color: var(--green);
            font-weight: 700;
        }

        /* ============================================
       SECTION 3: QUÉ PUEDES CONSEGUIR
       ============================================ */
        .features-section {
            background: radial-gradient(ellipse at 50% 30%, rgba(167, 139, 250, 0.1) 0%, transparent 60%),
                var(--bg);
        }

        .section-label {
            font-size: 12px;
            font-weight: 700;
            letter-spacing: 3px;
            text-transform: uppercase;
            color: var(--gold);
            margin-bottom: 12px;
        }

        .section-title {
            font-size: clamp(1.8rem, 4vw, 2.5rem);
            font-weight: 800;
            margin-bottom: 40px;
            line-height: 1.2;
        }

        .feature-grid {
            display: grid;
            grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
            gap: 16px;
        }

        .feature-card {
            background: var(--bg-card);
            border: 1px solid var(--border);
            border-radius: 16px;
            padding: 24px;
            transition: all 0.3s ease;
        }

        .feature-card:hover {
            border-color: rgba(255, 255, 255, 0.15);
            transform: translateY(-4px);
            box-shadow: 0 8px 30px rgba(0, 0, 0, 0.3);
        }

        .feature-icon {
            font-size: 2rem;
            margin-bottom: 12px;
            display: block;
        }

        .feature-card h3 {
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 8px;
        }

        .feature-card p {
            font-size: 13px;
            color: var(--text-dim);
            line-height: 1.6;
        }

        /* ============================================
       SECTION 4: ELIGE TU MODO
       ============================================ */
        .modes-section {
            background: radial-gradient(ellipse at 50% 50%, rgba(34, 211, 238, 0.08) 0%, transparent 60%),
                var(--bg);
        }

        .mode-cards {
            display: flex;
            flex-direction: column;
            gap: 16px;
        }

        .mode-card {
            background: var(--bg-card);
            border: 2px solid var(--border);
            border-radius: 16px;
            padding: 28px;
            cursor: pointer;
            transition: all 0.3s ease;
            position: relative;
            overflow: hidden;
        }

        .mode-card:hover {
            border-color: rgba(255, 255, 255, 0.15);
        }

        .mode-card.selected {
            border-color: var(--gold);
            background: rgba(212, 175, 55, 0.06);
        }

        .mode-card.selected::after {
            content: &#39;✓&#39;;
            position: absolute;
            top: 16px;
            right: 16px;
            width: 28px;
            height: 28px;
            background: var(--gold);
            color: #000;
            border-radius: 50%;
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 900;
            font-size: 14px;
        }

        .mode-header {
            display: flex;
            align-items: center;
            gap: 14px;
            margin-bottom: 12px;
        }

        .mode-emoji {
            font-size: 1.8rem;
        }

        .mode-name {
            font-size: 1.2rem;
            font-weight: 700;
        }

        .mode-difficulty {
            font-size: 11px;
            padding: 3px 10px;
            border-radius: 10px;
            font-weight: 600;
            letter-spacing: 1px;
            text-transform: uppercase;
        }

        .diff-easy {
            background: rgba(52, 211, 153, 0.15);
            color: var(--green);
        }

        .diff-medium {
            background: rgba(251, 191, 36, 0.15);
            color: #FbbF24;
        }

        .diff-advanced {
            background: rgba(167, 139, 250, 0.15);
            color: var(--purple);
        }

        .mode-desc {
            font-size: 14px;
            color: var(--text-dim);
            line-height: 1.6;
            margin-bottom: 14px;
        }

        .mode-includes {
            display: flex;
            flex-wrap: wrap;
            gap: 8px;
        }

        .mode-tag {
            font-size: 11px;
            padding: 4px 10px;
            border-radius: 8px;
            background: rgba(255, 255, 255, 0.05);
            border: 1px solid var(--border);
            color: rgba(255, 255, 255, 0.5);
        }

        /* ============================================
       SECTION 5: PREPARA TU TELÉFONO
       ============================================ */
        .prepare-section {
            background: radial-gradient(ellipse at 50% 50%, rgba(212, 175, 55, 0.08) 0%, transparent 60%),
                var(--bg);
        }

        .steps-list {
            display: flex;
            flex-direction: column;
            gap: 20px;
            counter-reset: step;
        }

        .step-item {
            display: flex;
            gap: 20px;
            align-items: flex-start;
            counter-increment: step;
        }

        .step-num {
            width: 44px;
            height: 44px;
            min-width: 44px;
            border-radius: 12px;
            background: linear-gradient(135deg, var(--gold), #B48E25);
            display: flex;
            align-items: center;
            justify-content: center;
            font-weight: 900;
            font-size: 18px;
            color: #000;
        }

        .step-content h3 {
            font-size: 1rem;
            font-weight: 700;
            margin-bottom: 4px;
        }

        .step-content p {
            font-size: 13px;
            color: var(--text-dim);
            line-height: 1.6;
        }

        .code-inline {
            font-family: &#39;JetBrains Mono&#39;, monospace;
            background: rgba(255, 255, 255, 0.08);
            padding: 2px 8px;
            border-radius: 4px;
            font-size: 12px;
            color: var(--cyan);
        }

        /* ============================================
       SECTION 6: CONECTA
       ============================================ */
        .connect-section {
            background: radial-gradient(ellipse at 50% 50%, rgba(52, 211, 153, 0.1) 0%, transparent 60%),
                var(--bg);
            text-align: center;
        }

        .connect-icon {
            font-size: 5rem;
            margin-bottom: 24px;
            display: block;
        }

        .btn-deploy {
            display: inline-flex;
            align-items: center;
            gap: 10px;
            padding: 16px 40px;
            border: none;
            border-radius: 14px;
            background: linear-gradient(135deg, var(--gold), #B48E25);
            color: #000;
            font-family: &#39;Inter&#39;, sans-serif;
            font-size: 1.1rem;
            font-weight: 700;
            cursor: pointer;
            transition: all 0.3s ease;
            margin-top: 30px;
            text-decoration: none;
        }

        .btn-deploy:hover {
            transform: translateY(-3px);
            box-shadow: 0 8px 30px rgba(212, 175, 55, 0.3);
        }

        .cmd-box {
            margin-top: 30px;
            background: #0D1117;
            border: 1px solid rgba(255, 255, 255, 0.08);
            border-radius: 12px;
            padding: 20px;
            text-align: left;
            position: relative;
        }

        .cmd-box code {
            font-family: &#39;JetBrains Mono&#39;, monospace;
            font-size: 13px;
            color: var(--green);
            line-height: 1.8;
            display: block;
            white-space: pre-wrap;
        }

        .cmd-box .cmd-copy {
            position: absolute;
            top: 12px;
            right: 12px;
            background: rgba(255, 255, 255, 0.08);
            border: 1px solid rgba(255, 255, 255, 0.1);
            border-radius: 8px;
            padding: 6px 12px;
            color: var(--text-dim);
            font-size: 12px;
            cursor: pointer;
            transition: all 0.2s;
        }

        .cmd-box .cmd-copy:hover {
            background: rgba(255, 255, 255, 0.15);
            color: #fff;
        }

        /* ============================================
       FOOTER
       ============================================ */
        .footer {
            text-align: center;
            padding: 40px 20px;
            color: var(--text-dim);
            font-size: 13px;
        }

        .footer a {
            color: var(--gold);
            text-decoration: none;
        }

        /* ============================================
       RESPONSIVE
       ============================================ */
        @media (max-width: 600px) {
            .section {
                padding: 30px 16px;
            }

            .warning-box {
                padding: 24px;
            }

            .nav-dots {
                right: 10px;
                gap: 8px;
            }

            .nav-dots a {
                width: 8px;
                height: 8px;
            }

            .feature-grid {
                grid-template-columns: 1fr;
            }
        }
    &lt;/style&gt;
&lt;/head&gt;

&lt;body&gt;

    &lt;!-- NAV DOTS --&gt;
    &lt;nav class=&quot;nav-dots&quot; id=&quot;navDots&quot;&gt;
        &lt;a href=&quot;#hero&quot; title=&quot;Inicio&quot;&gt;&lt;/a&gt;
        &lt;a href=&quot;#warning&quot; title=&quot;Advertencia&quot;&gt;&lt;/a&gt;
        &lt;a href=&quot;#features&quot; title=&quot;Posibilidades&quot;&gt;&lt;/a&gt;
        &lt;a href=&quot;#modes&quot; title=&quot;Elige tu modo&quot;&gt;&lt;/a&gt;
        &lt;a href=&quot;#prepare&quot; title=&quot;Prepara tu teléfono&quot;&gt;&lt;/a&gt;
        &lt;a href=&quot;#connect&quot; title=&quot;Conecta y despliega&quot;&gt;&lt;/a&gt;
    &lt;/nav&gt;

    &lt;!-- SECTION 1: HERO --&gt;
    &lt;section class=&quot;section hero&quot; id=&quot;hero&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;span class=&quot;hero-badge&quot;&gt;Open Source · Libre · Tuyo&lt;/span&gt;
            &lt;h1&gt;Convierte un teléfono antiguo en tu servidor IA personal&lt;/h1&gt;
            &lt;p&gt;Dale una segunda vida a ese móvil olvidado en el cajón. Sin cloud. Sin suscripciones. Todo en tu
                bolsillo.&lt;/p&gt;
            &lt;div class=&quot;scroll-hint&quot;&gt;
                &lt;span&gt;Desliza para empezar&lt;/span&gt;
                &lt;svg viewBox=&quot;0 0 24 24&quot; fill=&quot;none&quot; stroke-width=&quot;2&quot; stroke-linecap=&quot;round&quot;&gt;
                    &lt;path d=&quot;M12 5v14M19 12l-7 7-7-7&quot; /&gt;
                &lt;/svg&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- SECTION 2: WARNING --&gt;
    &lt;section class=&quot;section warning-section&quot; id=&quot;warning&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;div class=&quot;warning-box&quot;&gt;
                &lt;span class=&quot;warning-icon&quot;&gt;⚠️&lt;/span&gt;
                &lt;h2&gt;NO USES TU TELÉFONO PERSONAL&lt;/h2&gt;
                &lt;p&gt;
                    Este proyecto instala software de servidor, modelos de IA y servicios que
                    &lt;span class=&quot;highlight-red&quot;&gt;pueden comprometer la seguridad y privacidad&lt;/span&gt;
                    de tu dispositivo principal.&lt;br&gt;&lt;br&gt;
                    &lt;strong&gt;Usa un teléfono antiguo&lt;/strong&gt; que ya no necesites como dispositivo personal.
                    Idealmente, haz un &lt;strong&gt;restablecimiento de fábrica&lt;/strong&gt; antes de empezar
                    y &lt;span class=&quot;highlight-red&quot;&gt;NO inicies sesión con tu cuenta personal de Google/Gmail&lt;/span&gt;.
                &lt;/p&gt;
                &lt;div class=&quot;tip-box&quot;&gt;
                    &lt;h3&gt;✅ Lo recomendado&lt;/h3&gt;
                    &lt;ul&gt;
                        &lt;li&gt;Usa un teléfono de 2015 en adelante (mínimo 3GB RAM)&lt;/li&gt;
                        &lt;li&gt;Haz reset de fábrica antes de empezar&lt;/li&gt;
                        &lt;li&gt;Crea una cuenta de Google nueva solo para esto&lt;/li&gt;
                        &lt;li&gt;Conéctalo solo a WiFi (no metas tu SIM personal)&lt;/li&gt;
                        &lt;li&gt;Conecta el teléfono al cargador permanente&lt;/li&gt;
                    &lt;/ul&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- SECTION 3: QUÉ PUEDES CONSEGUIR --&gt;
    &lt;section class=&quot;section features-section&quot; id=&quot;features&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;div class=&quot;section-label&quot;&gt;¿Qué puedes conseguir?&lt;/div&gt;
            &lt;h2 class=&quot;section-title&quot;&gt;Un dispositivo que piensa, escucha, ve y habla&lt;/h2&gt;
            &lt;div class=&quot;feature-grid&quot;&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;🗣️&lt;/span&gt;
                    &lt;h3&gt;Chat por Voz&lt;/h3&gt;
                    &lt;p&gt;Habla con tu teléfono y recibe respuestas inteligentes con voz sintetizada.&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;📸&lt;/span&gt;
                    &lt;h3&gt;Visión IA&lt;/h3&gt;
                    &lt;p&gt;Saca una foto y la IA te describe lo que ve. Identifica objetos, texto, escenas.&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;🎙️&lt;/span&gt;
                    &lt;h3&gt;Grabador + Transcriptor&lt;/h3&gt;
                    &lt;p&gt;Graba reuniones, clases o ideas. Transcribe automáticamente con resumen IA.&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;🤖&lt;/span&gt;
                    &lt;h3&gt;Avatar Animado&lt;/h3&gt;
                    &lt;p&gt;Una cara de neón que parpadea, mueve los ojos y habla. Perfecto para demos.&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;📡&lt;/span&gt;
                    &lt;h3&gt;Servidor 24/7&lt;/h3&gt;
                    &lt;p&gt;Funciona como servidor local. Accesible desde Telegram, web o cualquier app.&lt;/p&gt;
                &lt;/div&gt;
                &lt;div class=&quot;feature-card&quot;&gt;
                    &lt;span class=&quot;feature-icon&quot;&gt;✈️&lt;/span&gt;
                    &lt;h3&gt;Funciona Offline&lt;/h3&gt;
                    &lt;p&gt;Con Ollama y whisper.cpp, la IA funciona sin internet. Ideal para zonas sin cobertura.&lt;/p&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- SECTION 4: ELIGE TU MODO --&gt;
    &lt;section class=&quot;section modes-section&quot; id=&quot;modes&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;div class=&quot;section-label&quot;&gt;Elige tu configuración&lt;/div&gt;
            &lt;h2 class=&quot;section-title&quot;&gt;¿Qué quieres montar?&lt;/h2&gt;
            &lt;div class=&quot;mode-cards&quot;&gt;

                &lt;!-- MODO 1: Servidor Fácil --&gt;
                &lt;div class=&quot;mode-card&quot; onclick=&quot;selectMode(this, &#39;easy&#39;)&quot;&gt;
                    &lt;div class=&quot;mode-header&quot;&gt;
                        &lt;span class=&quot;mode-emoji&quot;&gt;📦&lt;/span&gt;
                        &lt;span class=&quot;mode-name&quot;&gt;Servidor Fácil&lt;/span&gt;
                        &lt;span class=&quot;mode-difficulty diff-easy&quot;&gt;Fácil&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;p class=&quot;mode-desc&quot;&gt;
                        Solo instala Termux y server.py. Tu teléfono sirve como servidor ligero
                        al que puedes conectar desde Telegram o desde cualquier app externa.
                        No necesita la app de Flutter.
                    &lt;/p&gt;
                    &lt;div class=&quot;mode-includes&quot;&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Termux&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;server.py&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;SSH&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Telegram Bot&lt;/span&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- MODO 2: App Integrada --&gt;
                &lt;div class=&quot;mode-card&quot; onclick=&quot;selectMode(this, &#39;integrated&#39;)&quot;&gt;
                    &lt;div class=&quot;mode-header&quot;&gt;
                        &lt;span class=&quot;mode-emoji&quot;&gt;📱&lt;/span&gt;
                        &lt;span class=&quot;mode-name&quot;&gt;App Integrada&lt;/span&gt;
                        &lt;span class=&quot;mode-difficulty diff-medium&quot;&gt;Medio&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;p class=&quot;mode-desc&quot;&gt;
                        Instala la app de Flutter con el Avatar, Plaud y Mission Control.
                        La IA funciona en la nube (Groq) — rápida y sin configurar modelos locales.
                        Ideal si tu teléfono tiene poca RAM.
                    &lt;/p&gt;
                    &lt;div class=&quot;mode-includes&quot;&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Todo lo anterior&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;App Flutter&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Chat Voz&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Cámara Vision&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Grabador&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Groq Cloud&lt;/span&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

                &lt;!-- MODO 3: Completo Offline --&gt;
                &lt;div class=&quot;mode-card selected&quot; onclick=&quot;selectMode(this, &#39;full&#39;)&quot;&gt;
                    &lt;div class=&quot;mode-header&quot;&gt;
                        &lt;span class=&quot;mode-emoji&quot;&gt;🧠&lt;/span&gt;
                        &lt;span class=&quot;mode-name&quot;&gt;Completo con IA Offline&lt;/span&gt;
                        &lt;span class=&quot;mode-difficulty diff-advanced&quot;&gt;Avanzado&lt;/span&gt;
                    &lt;/div&gt;
                    &lt;p class=&quot;mode-desc&quot;&gt;
                        Todo lo anterior, más Ollama y whisper.cpp para que la IA funcione
                        100% offline. Requiere mínimo 4GB RAM y una tarjeta SD de 32GB+
                        para los modelos. Tu teléfono será completamente autónomo.
                    &lt;/p&gt;
                    &lt;div class=&quot;mode-includes&quot;&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Todo lo anterior&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Ollama (LLM offline)&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;whisper.cpp (STT offline)&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;proot-distro Debian&lt;/span&gt;
                        &lt;span class=&quot;mode-tag&quot;&gt;Auto-arranque&lt;/span&gt;
                    &lt;/div&gt;
                &lt;/div&gt;

            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- SECTION 5: PREPARA TU TELÉFONO --&gt;
    &lt;section class=&quot;section prepare-section&quot; id=&quot;prepare&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;div class=&quot;section-label&quot;&gt;Preparación&lt;/div&gt;
            &lt;h2 class=&quot;section-title&quot;&gt;Prepara tu teléfono antes de empezar&lt;/h2&gt;
            &lt;div class=&quot;steps-list&quot;&gt;
                &lt;div class=&quot;step-item&quot;&gt;
                    &lt;div class=&quot;step-num&quot;&gt;1&lt;/div&gt;
                    &lt;div class=&quot;step-content&quot;&gt;
                        &lt;h3&gt;Restablecimiento de fábrica&lt;/h3&gt;
                        &lt;p&gt;Ve a &lt;strong&gt;Ajustes → Sistema → Restablecer&lt;/strong&gt;. Esto borra todo. Asegúrate de no tener
                            nada importante.&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
                &lt;div class=&quot;step-item&quot;&gt;
                    &lt;div class=&quot;step-num&quot;&gt;2&lt;/div&gt;
                    &lt;div class=&quot;step-content&quot;&gt;
                        &lt;h3&gt;Configuración inicial mínima&lt;/h3&gt;
                        &lt;p&gt;Salta la cuenta de Google o crea una nueva solo para esto. Conecta solo al WiFi. &lt;strong&gt;No
                                metas tu SIM personal.&lt;/strong&gt;&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
                &lt;div class=&quot;step-item&quot;&gt;
                    &lt;div class=&quot;step-num&quot;&gt;3&lt;/div&gt;
                    &lt;div class=&quot;step-content&quot;&gt;
                        &lt;h3&gt;Activa la Depuración USB&lt;/h3&gt;
                        &lt;p&gt;Ve a &lt;strong&gt;Ajustes → Acerca del teléfono&lt;/strong&gt;, toca 7 veces en &quot;Número de compilación&quot;.
                            Luego activa &lt;strong&gt;Depuración USB&lt;/strong&gt; en Opciones de desarrollador.&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
                &lt;div class=&quot;step-item&quot;&gt;
                    &lt;div class=&quot;step-num&quot;&gt;4&lt;/div&gt;
                    &lt;div class=&quot;step-content&quot;&gt;
                        &lt;h3&gt;Instala Termux desde F-Droid&lt;/h3&gt;
                        &lt;p&gt;Descarga F-Droid (&lt;span class=&quot;code-inline&quot;&gt;f-droid.org&lt;/span&gt;) e instala
                            &lt;strong&gt;Termux&lt;/strong&gt; y &lt;strong&gt;Termux:Boot&lt;/strong&gt; desde ahí. No uses la versión de
                            Google Play.&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
                &lt;div class=&quot;step-item&quot;&gt;
                    &lt;div class=&quot;step-num&quot;&gt;5&lt;/div&gt;
                    &lt;div class=&quot;step-content&quot;&gt;
                        &lt;h3&gt;Conecta el teléfono al Mac/PC por USB&lt;/h3&gt;
                        &lt;p&gt;Autoriza la conexión ADB cuando aparezca el diálogo en el teléfono. Verifica con &lt;span
                                class=&quot;code-inline&quot;&gt;adb devices&lt;/span&gt;.&lt;/p&gt;
                    &lt;/div&gt;
                &lt;/div&gt;
            &lt;/div&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- SECTION 6: CONECTA Y DESPLIEGA --&gt;
    &lt;section class=&quot;section connect-section&quot; id=&quot;connect&quot;&gt;
        &lt;div class=&quot;section-inner&quot;&gt;
            &lt;span class=&quot;connect-icon&quot;&gt;🚀&lt;/span&gt;
            &lt;div class=&quot;section-label&quot;&gt;Todo listo&lt;/div&gt;
            &lt;h2 class=&quot;section-title&quot;&gt;Conecta y despliega&lt;/h2&gt;
            &lt;p style=&quot;color: var(--text-dim); max-width: 500px; margin: 0 auto; line-height: 1.7;&quot;&gt;
                Con el teléfono conectado por USB y Termux instalado, solo necesitas un comando para desplegar todo
                automáticamente.
            &lt;/p&gt;
            &lt;div class=&quot;cmd-box&quot;&gt;
                &lt;button class=&quot;cmd-copy&quot; onclick=&quot;copyCmd()&quot;&gt;Copiar&lt;/button&gt;
                &lt;code id=&quot;deployCmd&quot;&gt;cd ClawMobil &amp;&amp; bash scripts/deploy.sh&lt;/code&gt;
            &lt;/div&gt;
            &lt;a href=&quot;https://github.com/apliarte/ClawMobil&quot; class=&quot;btn-deploy&quot; target=&quot;_blank&quot;&gt;
                📥 Descargar ClawMobil
            &lt;/a&gt;
            &lt;p style=&quot;color: var(--text-dim); font-size: 13px; margin-top: 20px;&quot;&gt;
                ¿Problemas? Ejecuta &lt;span class=&quot;code-inline&quot;&gt;bash scripts/audit_openclaw.sh&lt;/span&gt; para diagnosticar.
            &lt;/p&gt;
        &lt;/div&gt;
    &lt;/section&gt;

    &lt;!-- FOOTER --&gt;
    &lt;footer class=&quot;footer&quot;&gt;
        &lt;p&gt;ClawMobil — &lt;a href=&quot;https://apliarte.com&quot;&gt;ApliArte&lt;/a&gt; · Software Libre · 2026&lt;/p&gt;
    &lt;/footer&gt;

    &lt;script&gt;
        // Mode selection
        function selectMode(card, mode) {
            document.querySelectorAll(&#39;.mode-card&#39;).forEach(c =&gt; c.classList.remove(&#39;selected&#39;));
            card.classList.add(&#39;selected&#39;);
            // Could be used to customize the deploy command per mode
            console.log(&#39;Modo seleccionado:&#39;, mode);
        }

        // Copy deploy command
        function copyCmd() {
            const cmd = document.getElementById(&#39;deployCmd&#39;).textContent;
            navigator.clipboard.writeText(cmd).then(() =&gt; {
                const btn = document.querySelector(&#39;.cmd-copy&#39;);
                btn.textContent = &#39;¡Copiado!&#39;;
                setTimeout(() =&gt; btn.textContent = &#39;Copiar&#39;, 2000);
            });
        }

        // Active dot indicator on scroll
        const sections = document.querySelectorAll(&#39;.section&#39;);
        const dots = document.querySelectorAll(&#39;.nav-dots a&#39;);

        const observer = new IntersectionObserver((entries) =&gt; {
            entries.forEach(entry =&gt; {
                if (entry.isIntersecting) {
                    const id = entry.target.id;
                    dots.forEach(d =&gt; d.classList.remove(&#39;active&#39;));
                    const activeDot = document.querySelector(`.nav-dots a[href=&quot;#${id}&quot;]`);
                    if (activeDot) activeDot.classList.add(&#39;active&#39;);
                }
            });
        }, { threshold: 0.5 });

        sections.forEach(s =&gt; observer.observe(s));
    &lt;/script&gt;

&lt;/body&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3020815184865685255'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3020815184865685255'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/clawmobil.html' title='ClawMobil'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-9001680461281987269</id><published>2026-02-21T04:41:00.004+01:00</published><updated>2026-02-21T05:00:19.274+01:00</updated><title type='text'>Cómo Resolver Problemas de Comunicación Entre Cockpit Tools y VS Code en Mac M2 Pro</title><content type='html'>&lt;div itemscope=&quot;&quot; itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;background: rgb(255, 255, 255); border: 1px solid rgb(226, 232, 240); color: #334155; font-family: -apple-system, BlinkMacSystemFont, &amp;quot;Segoe UI&amp;quot;, Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; margin: auto; max-width: 850px; padding: 0px;&quot;&gt;
  &lt;div style=&quot;background: linear-gradient(135deg, rgb(15, 23, 42) 0%, rgb(30, 41, 59) 100%); border-bottom: 6px solid rgb(14, 165, 233); padding: 60px 20px; text-align: center;&quot;&gt;
    &lt;meta content=&quot;Guía para Cockpit Tools en Mac M2 Pro&quot; itemprop=&quot;name&quot;&gt;&lt;/meta&gt;
    &lt;meta content=&quot;https://apliarte.com&quot; itemprop=&quot;url&quot;&gt;&lt;/meta&gt;
    &lt;meta content=&quot;SoftwareGuide&quot; itemprop=&quot;applicationCategory&quot;&gt;&lt;/meta&gt;
    &lt;div style=&quot;font-size: 70px; margin-bottom: 15px;&quot;&gt;🖥️&lt;/div&gt;
    &lt;h2 style=&quot;color: white; font-size: 2.8rem; font-weight: 900; letter-spacing: -1.5px; margin: 0px 0px 10px; text-transform: uppercase;&quot;&gt;
      Cockpit Tools en un Mac M2 Pro
    &lt;/h2&gt;
    &lt;p style=&quot;color: #38bdf8; font-size: 1.3rem; font-weight: 500; margin: 0px;&quot;&gt;
      Solución para evitar problemas en aplicaciones de desarrolladores no
      identificados.
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
    &lt;h3 style=&quot;border-bottom: 2px solid rgb(241, 245, 249); color: #0f172a; font-size: 1.8rem; padding-bottom: 10px;&quot;&gt;
      🛠️ ¿Cuál era el problema?
    &lt;/h3&gt;
    &lt;p&gt;
      El error ocurre porque Apple bloquea aplicaciones de desarrolladores no
      identificados. Habías intentado usar un archivo .rpm (Linux) en lugar de
      la versión correcta para macOS.
    &lt;/p&gt;
    &lt;p&gt;
      Ahora con el archivo adecuado y siguiendo los pasos, solucionamos el
      conflicto. Aquí está todo lo que necesitas hacer:
    &lt;/p&gt;
  &lt;/div&gt;
  &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
    &lt;h3 style=&quot;color: #0f172a;&quot;&gt;📥 Paso 1: Descarga el archivo correcto&lt;/h3&gt;
    &lt;p&gt;
      Ve al &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=repositorio+oficial+de+GitHub&amp;amp;bbid=16362904&amp;amp;bpid=9001680461281987269&quot; target=&quot;_blank&quot;&gt;repositorio oficial de GitHub&lt;/a&gt; y asegúrate de descargar el archivo
      correcto para tu &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=sistema+M2+Pro+specs&amp;amp;bbid=16362904&amp;amp;bpid=9001680461281987269&quot; target=&quot;_blank&quot;&gt;sistema M2 Pro&lt;/a&gt;:
    &lt;/p&gt;
    &lt;ul style=&quot;color: #0369a1; font-size: 0.9rem; padding-left: 18px;&quot;&gt;
      &lt;li&gt;
        &lt;a href=&quot;https://github.com/jlcodes99/cockpit-tools/releases&quot; style=&quot;color: #0ea5e9;&quot; target=&quot;_blank&quot;&gt;Cockpit.Tools_0.7.0_aarch64.dmg&lt;/a&gt;
      &lt;/li&gt;
    &lt;/ul&gt;
  &lt;/div&gt;
  &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
    &lt;h3 style=&quot;color: #0f172a;&quot;&gt;
      ⚙️ Paso 2: Instalación y comando de Terminal
    &lt;/h3&gt;
    &lt;p&gt;Sigue estos pasos después de descargar el archivo .dmg:&lt;/p&gt;
    &lt;ol style=&quot;color: #475569; font-size: 0.9rem; padding-left: 18px;&quot;&gt;
      &lt;li&gt;
        Abre el archivo .dmg y arrastra la aplicación a la carpeta
        &lt;strong&gt;Aplicaciones&lt;/strong&gt;.
      &lt;/li&gt;
      &lt;li&gt;Abre la &lt;em&gt;Terminal&lt;/em&gt; en tu Mac.&lt;/li&gt;
      &lt;li&gt;
        Escribe el siguiente comando para eliminar el atributo de cuarentena
        impuesto por Apple:
        &lt;pre style=&quot;background: rgb(15, 23, 42); border-radius: 8px; color: #38bdf8; font-family: &amp;quot;Courier New&amp;quot;, monospace; font-size: 0.85rem; overflow-x: auto; padding: 15px;&quot;&gt;sudo xattr -rd &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+com.apple.quarantine&amp;amp;bbid=16362904&amp;amp;bpid=9001680461281987269&quot; target=&quot;_blank&quot;&gt;com.apple.quarantine&lt;/a&gt; &lt;/pre&gt;
        &lt;p style=&quot;color: #475569; font-size: 0.9rem;&quot;&gt;
          Nota: Arrastra la aplicación desde &lt;strong&gt;Aplicaciones&lt;/strong&gt; a la
          ventana del Terminal para completar la ruta.
        &lt;/p&gt;
      &lt;/li&gt;
      &lt;li&gt;Pulsa &lt;strong&gt;Enter&lt;/strong&gt; e introduce tu contraseña.&lt;/li&gt;
    &lt;/ol&gt;
  &lt;/div&gt;
  &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
    &lt;h3 style=&quot;color: #0f172a;&quot;&gt;✔️ ¿Por qué funciona este método?&lt;/h3&gt;
    &lt;p&gt;
      El archivo .dmg ya es compatible con el chip M2 Pro (versión aarch64).
      Ahora, la comunicación entre &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Cockpit+Tools+website&amp;amp;bbid=16362904&amp;amp;bpid=9001680461281987269&quot; target=&quot;_blank&quot;&gt;Cockpit Tools&lt;/a&gt; y la &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Cockpit+Tools+extension+VS+Code&amp;amp;bbid=16362904&amp;amp;bpid=9001680461281987269&quot; target=&quot;_blank&quot;&gt;extensión de VS Code&lt;/a&gt; no
      tendrá conflictos.
    &lt;/p&gt;
    &lt;div style=&quot;background: rgb(254, 242, 242); border-left: 5px solid rgb(239, 68, 68); border-radius: 8px; margin-top: 20px; padding: 15px;&quot;&gt;
      &lt;p style=&quot;color: #991b1b; font-size: 0.95rem; margin: 0px;&quot;&gt;
        ⚠️ Si persiste el error ENOENT: &quot;File Not Found&quot;, comprueba la
        configuración manual de las rutas.
      &lt;/p&gt;
    &lt;/div&gt;
  &lt;/div&gt;
  &lt;div style=&quot;background: rgb(248, 249, 250); padding: 40px 20px; text-align: center;&quot;&gt;
    &lt;a href=&quot;https://apliarte.com&quot; rel=&quot;noopener&quot; style=&quot;background: linear-gradient(135deg, rgb(14, 165, 233) 0%, rgb(37, 99, 235) 100%); border-radius: 12px; box-shadow: rgba(37, 99, 235, 0.4) 0px 10px 25px -5px; color: white; font-size: 1.3rem; font-weight: 900; padding: 22px 45px; text-decoration: none; text-transform: uppercase;&quot; target=&quot;_blank&quot; title=&quot;Accede a más soluciones y guías&quot;&gt;
      Descubre más soluciones 🚀
    &lt;/a&gt;
  &lt;/div&gt;
  &lt;div style=&quot;background: rgb(15, 23, 42); color: #64748b; padding: 40px; text-align: center;&quot;&gt;
    &lt;p style=&quot;font-size: 0.9rem; margin: 0px;&quot;&gt;
      © 2026 ApliArte - Innovación y Tecnología
    &lt;/p&gt;
  &lt;/div&gt;
&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9001680461281987269'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9001680461281987269'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/como-resolver-problemas-de-comunicacion.html' title='Cómo Resolver Problemas de Comunicación Entre Cockpit Tools y VS Code en Mac M2 Pro'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-9109357817264938062</id><published>2026-02-19T01:19:37.108+01:00</published><updated>2026-02-19T01:39:10.160+01:00</updated><title type='text'>Transformando basura electrónica de 2017 en un Nodo de Inteligencia Artificial 24/7.</title><content type='html'>&lt;div itemscope itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; color: #334155; line-height: 1.6; max-width: 850px; margin: auto; background: #ffffff; padding: 0; border: 1px solid #e2e8f0;&quot;&gt;

  &lt;div style=&quot;background: linear-gradient(135deg, #0f172a 0%, #1e293b 100%); padding: 60px 20px; text-align: center; border-bottom: 6px solid #0ea5e9;&quot;&gt;
    &lt;meta itemprop=&quot;name&quot; content=&quot;CawMobil: Servidor de IA en Huawei P10&quot;&gt;
    &lt;meta itemprop=&quot;url&quot; content=&quot;https://apliarte.com&quot;&gt;
    &lt;meta itemprop=&quot;applicationCategory&quot; content=&quot;DeveloperApplication&quot;&gt;
    &lt;div style=&quot;font-size: 70px; margin-bottom: 15px;&quot;&gt;🦞&lt;/div&gt;
    &lt;h2 style=&quot;color: #ffffff; font-size: 2.8rem; font-weight: 900; margin: 0 0 10px 0; text-transform: uppercase; letter-spacing: -1.5px;&quot;&gt;CawMobil: IA Server en un Huawei P10&lt;/h2&gt;
    &lt;p style=&quot;color: #38bdf8; font-size: 1.3rem; margin: 0; font-weight: 500;&quot;&gt;Cómo convertí un móvil de 2017 en un nodo de IA 24/7 con Telegram.&lt;/p&gt;
    &lt;div style=&quot;display: inline-block; background: #ef4444; color: white; padding: 6px 18px; border-radius: 4px; font-size: 0.85rem; font-weight: 800; margin-top: 25px; text-transform: uppercase;&quot;&gt;PROYECTO: HARDWARE RECYCLING&lt;/div&gt;
  &lt;/div&gt;

  &lt;div style=&quot;margin: 0; padding: 0;&quot;&gt;
    &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Blog de desarrollo y hardware hacking de Francisco en ApliArte&quot; rel=&quot;noopener&quot;&gt;
      &lt;img src=&quot;https://images.unsplash.com/photo-1555664424-778a1e5e1b48?q=80&amp;w=1200&amp;auto=format&amp;fit=crop&quot; 
           alt=&quot;Móvil antiguo conectado por USB sirviendo como servidor de Inteligencia Artificial OpenClaw en el ecosistema ApliArte&quot; 
           title=&quot;Servidor IA CawMobil Huawei P10&quot; 
           loading=&quot;lazy&quot; 
           style=&quot;width: 100%; height: auto; display: block;&quot;&gt;
    &lt;/a&gt;
  &lt;/div&gt;

  &lt;div style=&quot;padding: 40px 30px;&quot;&gt;
    &lt;p itemprop=&quot;description&quot; style=&quot;font-size: 1.15rem; color: #1e293b; border-left: 5px solid #0ea5e9; padding-left: 25px; font-style: italic;&quot;&gt;
      ¿Tienes un terminal viejo en el cajón? He transformado un &lt;strong&gt;Huawei P10 de 2017&lt;/strong&gt; en un servidor de &lt;strong&gt;Inteligencia Artificial&lt;/strong&gt; totalmente funcional. Sin pagar hosting, sin depender de la nube para el procesado y con integración total en Telegram mediante &lt;strong&gt;OpenClaw&lt;/strong&gt;. Un diario técnico de hardware hacking puro.
    &lt;/p&gt;
  &lt;/div&gt;

  &lt;div style=&quot;padding: 0 30px 40px 30px;&quot;&gt;
    
    &lt;h3 style=&quot;color: #0f172a; font-size: 1.8rem; border-bottom: 2px solid #f1f5f9; padding-bottom: 10px;&quot;&gt;🧠 La idea: CawMobil&lt;/h3&gt;
    &lt;p&gt;El concepto es simple: tomar un smartphone Android obsoleto y convertirlo en un &lt;strong&gt;gateway de IA personal&lt;/strong&gt;. Usando la API de GPT-4o y GitHub Copilot, el teléfono actúa como cerebro procesador accesible desde cualquier lugar vía Telegram.&lt;/p&gt;
    
    &lt;blockquote style=&quot;background: #f8f9fa; border-left: 5px solid #64748b; padding: 15px 20px; margin: 25px 0; color: #475569; font-size: 1.1rem;&quot;&gt;
      &quot;Le escribes a un bot y te contesta una IA que corre directamente gestionada por el teléfono. Sin cuotas de hosting.&quot;
    &lt;/blockquote&gt;

    &lt;h3 style=&quot;color: #0f172a; margin-top: 40px;&quot;&gt;📱 Hardware: El paciente&lt;/h3&gt;
    &lt;table style=&quot;width: 100%; border-collapse: collapse; margin: 20px 0; font-size: 0.95rem;&quot;&gt;
      &lt;thead&gt;
        &lt;tr style=&quot;background: #1e293b; color: white;&quot;&gt;
          &lt;th style=&quot;padding: 12px; border: 1px solid #334155; text-align: left;&quot;&gt;Especificación&lt;/th&gt;
          &lt;th style=&quot;padding: 12px; border: 1px solid #334155; text-align: left;&quot;&gt;Detalle&lt;/th&gt;
        &lt;/tr&gt;
      &lt;/thead&gt;
      &lt;tbody&gt;
        &lt;tr&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0; font-weight: bold;&quot;&gt;Modelo&lt;/td&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;Huawei P10 (VTR-L09)&lt;/td&gt;&lt;/tr&gt;
        &lt;tr style=&quot;background: #f8f9fa;&quot;&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0; font-weight: bold;&quot;&gt;CPU&lt;/td&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;Kirin 960 (ARM)&lt;/td&gt;&lt;/tr&gt;
        &lt;tr&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0; font-weight: bold;&quot;&gt;RAM&lt;/td&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;4 GB&lt;/td&gt;&lt;/tr&gt;
        &lt;tr style=&quot;background: #f8f9fa;&quot;&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0; font-weight: bold;&quot;&gt;Edad&lt;/td&gt;&lt;td style=&quot;padding: 12px; border: 1px solid #e2e8f0;&quot;&gt;~9 años&lt;/td&gt;&lt;/tr&gt;
      &lt;/tbody&gt;
    &lt;/table&gt;

    &lt;h3 style=&quot;color: #0f172a; margin-top: 40px;&quot;&gt;🔧 El proceso técnico&lt;/h3&gt;
    
    &lt;div style=&quot;margin-top: 20px;&quot;&gt;
      &lt;p&gt;&lt;strong&gt;1. Lobotomización del Sistema 🧟&lt;/strong&gt;&lt;/p&gt;
      &lt;p style=&quot;font-size: 0.95rem;&quot;&gt;Deshabilité 135 aplicaciones mediante ADB para dejar un Android &quot;esquelético&quot;. Sin servicios de Google, sin galería, sin bloatware de Huawei. Recursos 100% dedicados al servidor.&lt;/p&gt;
    &lt;/div&gt;

    &lt;div style=&quot;margin-top: 25px;&quot;&gt;
      &lt;p&gt;&lt;strong&gt;2. Instalación del Stack 📦&lt;/strong&gt;&lt;/p&gt;
      &lt;p style=&quot;font-size: 0.95rem;&quot;&gt;La cadena de ejecución es: &lt;strong&gt;Android → Termux → proot-distro → Debian → Node.js v22 → OpenClaw&lt;/strong&gt;.&lt;/p&gt;
      &lt;pre style=&quot;background: #0f172a; color: #38bdf8; padding: 20px; border-radius: 8px; overflow-x: auto; font-family: &#39;Courier New&#39;, monospace; font-size: 0.85rem; border: 1px solid #334155;&quot;&gt;
# Instalación de Debian en Termux
pkg install proot-distro
proot-distro install debian
proot-distro login debian&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div style=&quot;margin-top: 25px;&quot;&gt;
      &lt;p&gt;&lt;strong&gt;3. Administración Remota SSH 🌐&lt;/strong&gt;&lt;/p&gt;
      &lt;p style=&quot;font-size: 0.95rem;&quot;&gt;Para gestionar el Huawei desde el Mac Mini sin cables:&lt;/p&gt;
      &lt;pre style=&quot;background: #0f172a; color: #38bdf8; padding: 20px; border-radius: 8px; overflow-x: auto; font-family: &#39;Courier New&#39;, monospace; font-size: 0.85rem; border: 1px solid #334155;&quot;&gt;
adb forward tcp:8022 tcp:8022
ssh -p 8022 localhost&lt;/pre&gt;
    &lt;/div&gt;

    &lt;div style=&quot;background: #f1f5f9; border: 1px solid #cbd5e1; padding: 20px; border-radius: 10px; margin: 40px 0;&quot;&gt;
      &lt;h4 style=&quot;margin-top: 0; color: #0f172a;&quot;&gt;🏗️ Arquitectura Final&lt;/h4&gt;
      &lt;pre style=&quot;font-size: 0.75rem; color: #475569; line-height: 1.2; font-family: monospace;&quot;&gt;
┌─────────────────────────────────────┐
│ Android 9 (lobotomizado)            │
│  └─ Termux (wake-lock)              │
│      └─ Debian (Node v22)           │
│          └─ OpenClaw (Gateway)      │
│              ├── Telegram Bot       │
│              └── ElevenLabs (TTS)   │
└─────────────────────────────────────┘&lt;/pre&gt;
    &lt;/div&gt;

    &lt;h3 style=&quot;color: #0f172a;&quot;&gt;⚠️ Obstáculos y Soluciones (Debugging)&lt;/h3&gt;
    &lt;div style=&quot;background: #fef2f2; border-left: 5px solid #ef4444; padding: 15px; border-radius: 4px; margin-bottom: 15px;&quot;&gt;
      &lt;p style=&quot;margin: 0; font-size: 0.95rem; color: #991b1b;&quot;&gt;🐛 &lt;strong&gt;Error:&lt;/strong&gt; Whisper local lanza &quot;Illegal instruction&quot;.&lt;br&gt;
      &lt;strong&gt;Causa:&lt;/strong&gt; Kirin 960 no soporta instrucciones SIMD modernas.&lt;br&gt;
      ✅ &lt;strong&gt;Solución:&lt;/strong&gt; Implementación de un wrapper para llamar a la API de Groq.&lt;/p&gt;
    &lt;/div&gt;
    &lt;div style=&quot;background: #f0fdf4; border-left: 5px solid #22c55e; padding: 15px; border-radius: 4px;&quot;&gt;
      &lt;p style=&quot;margin: 0; font-size: 0.95rem; color: #166534;&quot;&gt;✅ &lt;strong&gt;Configuración:&lt;/strong&gt; Huawei EMUI mataba procesos en background.&lt;br&gt;
      &lt;strong&gt;Solución:&lt;/strong&gt; Configuración manual de &quot;Inicio de aplicaciones&quot; y activación de Termux:Boot.&lt;/p&gt;
    &lt;/div&gt;

    &lt;h3 style=&quot;color: #0f172a; margin-top: 40px;&quot;&gt;💰 Comparativa de Costes&lt;/h3&gt;
    &lt;div style=&quot;display: flex; gap: 20px; flex-wrap: wrap; margin-top: 20px;&quot;&gt;
      &lt;div style=&quot;flex: 1; min-width: 250px; background: #ffffff; border: 1px solid #e2e8f0; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);&quot;&gt;
        &lt;strong style=&quot;color: #ef4444; font-size: 1.2rem;&quot;&gt;VPS Tradicional&lt;/strong&gt;
        &lt;p style=&quot;font-size: 1.5rem; font-weight: 800; margin: 10px 0;&quot;&gt;~20€ / mes&lt;/p&gt;
        &lt;ul style=&quot;padding-left: 18px; font-size: 0.85rem; color: #64748b;&quot;&gt;
          &lt;li&gt;Gasto recurrente&lt;/li&gt;
          &lt;li&gt;Recursos limitados&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
      &lt;div style=&quot;flex: 1; min-width: 250px; background: #f0f9ff; border: 1px solid #0ea5e9; padding: 20px; border-radius: 10px; box-shadow: 0 4px 6px -1px rgba(0,0,0,0.1);&quot;&gt;
        &lt;strong style=&quot;color: #0369a1; font-size: 1.2rem;&quot;&gt;CawMobil (P10)&lt;/strong&gt;
        &lt;p style=&quot;font-size: 1.5rem; font-weight: 800; margin: 10px 0;&quot;&gt;0€ / mes*&lt;/p&gt;
        &lt;ul style=&quot;padding-left: 18px; font-size: 0.85rem; color: #0369a1;&quot;&gt;
          &lt;li&gt;Hardware reciclado&lt;/li&gt;
          &lt;li&gt;Amortizado en 2 meses&lt;/li&gt;
        &lt;/ul&gt;
      &lt;/div&gt;
    &lt;/div&gt;

    &lt;p style=&quot;margin-top: 40px;&quot;&gt;Próximamente publicaré la &lt;strong&gt;guía paso a paso&lt;/strong&gt; con todos los scripts de configuración en GitHub. Si tienes un móvil viejo, tienes un servidor de IA en potencia.&lt;/p&gt;

  &lt;/div&gt;

  &lt;div style=&quot;text-align: center; padding: 40px 20px; background: #f8f9fa;&quot;&gt;
    &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Acceder a la comunidad de ApliArte para descargar el código&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; style=&quot;background: linear-gradient(135deg, #0ea5e9 0%, #2563eb 100%); color: white; padding: 22px 45px; border-radius: 12px; text-decoration: none; font-weight: 900; font-size: 1.3rem; box-shadow: 0 10px 25px -5px rgba(37, 99, 235, 0.4); display: inline-block; text-transform: uppercase;&quot;&gt;
      SÍGUEME PARA LA GUÍA COMPLETA 🚀
    &lt;/a&gt;
  &lt;/div&gt;

  &lt;div style=&quot;background: #0f172a; color: #64748b; padding: 40px 20px; text-align: center; font-size: 0.85rem;&quot;&gt;
    &lt;p style=&quot;margin: 0; color: #94a3b8; font-weight: bold;&quot;&gt;© 2026 ApliArte - Ingeniería de Software&lt;/p&gt;
    &lt;p style=&quot;margin: 8px 0;&quot;&gt;Hecho por Francisco | Recicla. Desarrolla. Innova.&lt;/p&gt;
    &lt;div style=&quot;margin-top: 20px;&quot;&gt;
      &lt;span style=&quot;color: #38bdf8;&quot;&gt;#IA&lt;/span&gt; | &lt;span style=&quot;color: #38bdf8;&quot;&gt;#Android&lt;/span&gt; | &lt;span style=&quot;color: #38bdf8;&quot;&gt;#OpenSource&lt;/span&gt; | &lt;span style=&quot;color: #38bdf8;&quot;&gt;#CawMobil&lt;/span&gt;
    &lt;/div&gt;
  &lt;/div&gt;

&lt;/div&gt;
</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9109357817264938062'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9109357817264938062'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/transformando-basura-electronica-de.html' title='Transformando basura electrónica de 2017 en un Nodo de Inteligencia Artificial 24/7.'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3285794448744752885</id><published>2026-02-16T22:13:00.003+01:00</published><updated>2026-02-16T22:14:33.499+01:00</updated><title type='text'>De 0 a la App Store</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1&gt;De 0 a la App Store: Lecciones contraintuitivas de un desarrollador de Flutter en las trincheras&lt;/h1&gt;&lt;p&gt;&lt;b&gt;1. Introducción: El mito del &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Maestrillo+de+Libro&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Maestrillo de Libro&lt;/a&gt;&quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Olvida la imagen del experto con tres títulos colgados en la pared. Tengo 46 años, tres hijos y ni siquiera terminé la educación primaria. No hablaba ni una palabra de inglés y, cuando la plataforma donde tenía mis aplicaciones con un millón de descargas murió, me vi en la calle. No soy un profesor académico; soy un superviviente que se puso a picar código en &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Flutter+framework&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Flutter&lt;/a&gt; por pura necesidad. Comparto lo que aprendo mientras lo hago, rompiéndome la cabeza en directo a las 10 de la mañana, porque la mejor teoría es la que se mancha de grasa en las trincheras.&lt;/p&gt;&lt;p&gt;Este enfoque de &quot;divulgador de lo que aprendo&quot; es el único camino real en un ecosistema que cambia cada semana. No te enseño desde un pedestal, sino desde la frustración de no saber y la cabezonería de buscar la solución. Si yo, sin estudios y a mi edad, he podido publicar en la tienda de Google, cualquiera puede. Aquí no hay secretos de estado, solo horas de vuelo y la honestidad de decir: &quot;esto no funciona, vamos a ver por qué&quot;.&lt;/p&gt;&lt;p&gt;&lt;b&gt;2. El Manifiesto de la Resiliencia: &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Dale+que+hace+a+la+vida+meaning&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Dale que hace a la vida&lt;/a&gt;&quot;&lt;/b&gt;&lt;/p&gt;&lt;p&gt;La programación no empieza en el teclado, sino en tu cabeza y en tu cuerpo. No puedes escribir un método &lt;code&gt;build&lt;/code&gt; limpio si tienes la mente llena de ruido y &quot;vicios&quot;. Yo tuve que tirar el paquete de tabaco, dejar de beber y empezar a caminar para que el cerebro me funcionara. Si quieres cambiar tu código, tienes que dejar de &quot;comerte la cabeza&quot; con lo que no suma. La resiliencia es ese músculo que entrenas cuando eliges verduritas y pollo cocido en lugar de tirar la toalla ante un bug.&lt;/p&gt;&lt;p&gt;Como suelo cantar en mis directos para recordarme que el cambio es una decisión activa:&lt;/p&gt;&lt;p&gt;&lt;i&gt;&quot;Si la vida te da que hace, dale que hace a la vida... si te sientes fracasado con tan solo 35, seguirás con tu fracaso si sigues haciendo lo mismo&quot;.&lt;/i&gt;&lt;/p&gt;&lt;p&gt;Antes de tocar una sola línea en &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Dart+programming+language&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Dart&lt;/a&gt;, tienes que estar dispuesto a cambiar tu rutina. Dejar el cigarro o salir a caminar con unos tenis de oferta te prepara para la paciencia que exige el debugging. La ingeniería de software es, en el fondo, rediseñar tu propia vida para que el código fluya sin interferencias.&lt;/p&gt;&lt;p&gt;&lt;b&gt;3. La Guerra de los Decimales: Validación Lógica en el Mundo Real&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Uno de mis mayores dolores de cabeza no fue una arquitectura compleja, sino una maldita coma. Al crear mi calculadora, me di de cabezazos con la validación de números. La app se rompía por completo cuando un usuario metía formatos inconsistentes como &lt;code&gt;0.123,123&lt;/code&gt; o &lt;code&gt;0,987.123&lt;/code&gt;. Mi &quot;Gordon F&quot; (ese depurador interno que a veces parece que viene borracho) no sabía por dónde entrarle al problema. No busqué una librería mágica; me senté a picar una lógica de &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+parsing+in+programming&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;parsing&lt;/a&gt;&quot; manual desde cero.&lt;/p&gt;&lt;p&gt;Tuve que analizar el &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+String+data+type&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;String&lt;/a&gt; paso a paso: comprobar &lt;code&gt;texto[0]&lt;/code&gt;, verificar la longitud total con &lt;code&gt;longitud-1&lt;/code&gt; y mapear cada punto y cada coma para que el sistema no explotara. Fue una guerra de lógica pura para manejar el caos del input humano. Esta es la realidad del desarrollo: pasar horas sudando por un carácter mal puesto. Al final, lo que te hace desarrollador no es usar herramientas automáticas, sino saber exactamente qué está pasando en cada posición de tu cadena de texto.&lt;/p&gt;&lt;p&gt;&lt;b&gt;4. Construcción y Catástrofe: El Arte de Reparar Apps de QR&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Incluso con toda la experiencia, la catástrofe acecha. En el capítulo anterior, me quedé sin internet, los cables fallaron y la lógica de la app se fue al traste. Tuve que tragarme el orgullo y reconstruir mi aplicación de escáner QR desde cero usando herramientas como &lt;i&gt;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Cudu+Duolce+ecosystem&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Cudu&lt;/a&gt;&lt;/i&gt; (del ecosistema Duolce). No fue un fracaso, fue una oportunidad para mejorar la estética. Usé &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Figma+design+tool&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Figma&lt;/a&gt; para crear &quot;capas&quot; (layers) y formas personalizadas que Flutter no te da mascadas con &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Flutter+widgets+explanation&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;widgets&lt;/a&gt; estándar, como ese marco de escáner con esquinas redondeadas que tanto me costó encajar.&lt;/p&gt;&lt;p&gt;Implementé paletas modernas como &lt;code&gt;Color 2.0&lt;/code&gt; para que la app no pareciera un juguete. En mis tutoriales, mi objetivo es enseñarte a pescar: no te doy el código ya hecho para que lo copies, sino que te muestro cómo pasar de un diseño visual a un widget funcional que de verdad sea profesional. La estética no es un lujo; es lo que hace que el usuario confíe en tu trabajo mientras tú, por detrás, te aseguras de que el escáner sea una maravilla de velocidad.&lt;/p&gt;&lt;p&gt;&lt;b&gt;5. Mobile Thinking: Humanizando la Ingeniería de Software&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Charlando con &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Argel+Bejarano&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Argel Bejarano&lt;/a&gt;, destilamos lo que llamamos &quot;Ingeniería Humana&quot; (&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Human+Engineering+concept+definition&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Human Engineering&lt;/a&gt;). No somos máquinas que escupen ceros y unos; somos personas resolviendo problemas de personas. Esta visión cambia las reglas del juego:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;Adaptabilidad:&lt;/b&gt; Como la rodilla de Argel que le impedía viajar, la vida te pone trabas. Adaptarse no es solo hacer código responsivo, sino saber ajustar tu carrera cuando el mercado te da un golpe.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Gestión de Estado (State Management):&lt;/b&gt; Olvida los providers por un segundo. Gestionar el estado es, sobre todo, gestionar tus emociones cuando un despliegue falla o un cliente se queja. Es mantener la integridad bajo presión.&lt;/li&gt;&lt;li&gt;&lt;b&gt;Internacionalización:&lt;/b&gt; Yo no sabía inglés, pero aprendí a leer documentación técnica apoyándome en herramientas y &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=ChatGPT&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;ChatGPT&lt;/a&gt;. La curiosidad por otros idiomas (portugués, inglés) te abre puertas que el código solo jamás podrá tocar.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;Tu crecimiento no depende de saberte todas las librerías de memoria, sino de tu capacidad para comunicar, preguntar y escuchar más de lo que hablas.&lt;/p&gt;&lt;p&gt;&lt;b&gt;6. El Reto de lo Real: Publicar no es el fin, es el inicio&lt;/b&gt;&lt;/p&gt;&lt;p&gt;Publicar &quot;CalcaApp&quot; o el escáner QR en &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Google+Play+Store&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; target=&quot;_blank&quot;&gt;Google Play&lt;/a&gt; no fue un trámite; fue una apuesta personal. Pagué los 18€ de la licencia de desarrollador como quien invierte en su propio futuro. Para llegar ahí, estuve un año entero durmiendo apenas dos horas al día, estudiando Dart después del trabajo y atendiendo a mis hijos. Ver tu icono en la tienda es una satisfacción que no se paga con dinero, pero recuerda que esto no termina ahí.&lt;/p&gt;&lt;p&gt;&lt;i&gt;&quot;Esto lo hago para divertirme... desde las 10 de la mañana en directo repaso lo que llevo aprendido&quot;&lt;/i&gt;.&lt;/p&gt;&lt;p&gt;Lo hago por el placer de aprender y por la comunidad que hemos creado. Publicar es solo el inicio de un ciclo infinito de feedback y correcciones. Si no te diviertes picando código y compartiendo tus fallos, te quemarás antes de llegar a la primera actualización.&lt;/p&gt;&lt;p&gt;&lt;b&gt;7. Conclusión: El Código como Camino de Vida&lt;/b&gt;&lt;/p&gt;&lt;p&gt;El desarrollo mobile es un proceso de evolución constante, igual que la vida misma. No busques ser el &quot;Maestrillo de Libro&quot; que nunca se equivoca. Sé el desarrollador que se atreve a fallar en público, que limpia sus &quot;vicios&quot; para programar mejor y que entiende que cada línea de código es un paso hacia una versión más resiliente de sí mismo.&lt;/p&gt;&lt;p&gt;Al final del día, la sintaxis de Dart es solo una herramienta. La verdadera pregunta que te dejo es: &lt;b&gt;¿Estás programando para cumplir una meta técnica o estás usando el código para rediseñar tu propia resiliencia ante la vida?&lt;/b&gt;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;iframe class=&quot;b-iframe-ws lTgB3 BLOG_object_iframe&quot; frameborder=&quot;0&quot; height=&quot;198px&quot; jsaction=&quot;load:lzUY8e&quot; src=&quot;/share-widget?w=poi&amp;amp;u=https%3A%2F%2Fwww.google.com%2Fsearch%3Fq%3DCalcaApp&amp;amp;ved=1t%3A269313&amp;amp;bbid=16362904&amp;amp;bpid=3285794448744752885&quot; width=&quot;200px&quot;&gt;&lt;/iframe&gt;&lt;/div&gt;&lt;br /&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3285794448744752885'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3285794448744752885'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/de-0-la-app-store.html' title='De 0 a la App Store'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3573010850928459008</id><published>2026-02-14T19:03:00.000+01:00</published><updated>2026-02-14T19:03:02.259+01:00</updated><title type='text'>Elimina el bloqueo de &quot;App dañada&quot; o falta de comunicación en Mac</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh5W5czafD7tihm3tqL2iCEkV5ptmVlD6yr8CeaeR772gdc3Nt3yjjGmgg_PPxhB3N0f4eY_60iSYWvy-cUbYHc8-4NpVJYOeS0XD7SSRLAmg0leaQsA-CwGoI3kvCt_vYoacYtLsdJorkbmgkcLA1AWHLOKmPw3g8DCPU9W1_gRH3fA3mOMzq4&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;478&quot; data-original-width=&quot;419&quot; height=&quot;240&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEh5W5czafD7tihm3tqL2iCEkV5ptmVlD6yr8CeaeR772gdc3Nt3yjjGmgg_PPxhB3N0f4eY_60iSYWvy-cUbYHc8-4NpVJYOeS0XD7SSRLAmg0leaQsA-CwGoI3kvCt_vYoacYtLsdJorkbmgkcLA1AWHLOKmPw3g8DCPU9W1_gRH3fA3mOMzq4&quot; width=&quot;210&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&lt;/p&gt;


&lt;div itemscope=&quot;&quot; itemtype=&quot;https://schema.org/SoftwareApplication&quot; style=&quot;background-color: white; border-radius: 12px; border: 1px solid rgb(226, 232, 240); color: #1e293b; font-family: &amp;quot;Segoe UI&amp;quot;, Roboto, Helvetica, Arial, sans-serif; line-height: 1.6; margin: auto; max-width: 850px; overflow: hidden;&quot;&gt;

    &lt;meta content=&quot;Solución Error Cockpit Tools en macOS M2 Pro&quot; itemprop=&quot;name&quot;&gt;&lt;/meta&gt;
    &lt;meta content=&quot;https://apliarte.com&quot; itemprop=&quot;url&quot;&gt;&lt;/meta&gt;
    &lt;meta content=&quot;DeveloperTool&quot; itemprop=&quot;applicationCategory&quot;&gt;&lt;/meta&gt;

    &lt;div style=&quot;background: linear-gradient(135deg, rgb(248, 249, 250) 0%, rgb(226, 232, 240) 100%); border-bottom: 2px solid rgb(203, 213, 225); padding: 40px 20px; text-align: center;&quot;&gt;
        &lt;span style=&quot;font-size: 64px;&quot;&gt;🛠️&lt;/span&gt;
        &lt;h2 style=&quot;color: #0f172a; font-size: 2.2rem; font-weight: 800; margin: 10px 0px;&quot;&gt;Fix: Cockpit Tools en macOS Silicon&lt;/h2&gt;
        &lt;p style=&quot;color: #64748b; font-size: 1.1rem; margin-bottom: 20px;&quot;&gt;Elimina el bloqueo de &quot;App dañada&quot; o falta de comunicación en Mac M2 Pro.&lt;/p&gt;
        &lt;span style=&quot;background: rgb(239, 68, 68); border-radius: 20px; color: white; font-size: 0.8rem; font-weight: bold; padding: 5px 15px; text-transform: uppercase;&quot;&gt;Debugging Apple Silicon&lt;/span&gt;
    &lt;/div&gt;

    &lt;div style=&quot;padding: 0px;&quot;&gt;
        &lt;a href=&quot;https://apliarte.com&quot; title=&quot;Solución técnica para errores de ejecución en macOS M2 Pro Cockpit Tools&quot;&gt;
            &lt;img alt=&quot;Terminal de macOS ejecutando comandos de depuración para aplicaciones bloqueadas en procesadores M2 Pro&quot; loading=&quot;lazy&quot; src=&quot;https://images.unsplash.com/photo-1629131726692-1accd0c93cd0?q=80&amp;amp;w=1000&amp;amp;auto=format&amp;amp;fit=crop&quot; style=&quot;display: block; height: auto; width: 100%;&quot; title=&quot;Solución Gatekeeper macOS&quot; /&gt;
        &lt;/a&gt;
    &lt;/div&gt;

    &lt;div style=&quot;padding: 30px;&quot;&gt;
        &lt;p itemprop=&quot;description&quot; style=&quot;border-left: 5px solid rgb(15, 23, 42); color: #334155; font-size: 1.1rem; padding-left: 15px;&quot;&gt;
            Si al intentar conectar &lt;strong&gt;Cockpit Tools&lt;/strong&gt; con la extensión de VS Code en tu &lt;strong&gt;Mac Mini M2 Pro&lt;/strong&gt; la aplicación no responde o se cierra, el problema reside en los atributos de cuarentena de macOS. A continuación, aplicamos la solución quirúrgica mediante terminal para habilitar la comunicación entre procesos.
        &lt;/p&gt;

        &lt;h3 style=&quot;border-bottom: 1px solid rgb(226, 232, 240); color: #0f172a; margin-top: 30px; padding-bottom: 10px;&quot;&gt;Ejecución del Fix (Terminal)&lt;/h3&gt;
        
        &lt;div style=&quot;margin: 20px 0px;&quot;&gt;
            &lt;div style=&quot;align-items: flex-start; display: flex; margin-bottom: 15px;&quot;&gt;
                &lt;span style=&quot;align-items: center; background: rgb(15, 23, 42); border-radius: 50%; color: white; display: flex; flex-shrink: 0; font-weight: bold; height: 28px; justify-content: center; margin-right: 12px; width: 28px;&quot;&gt;1&lt;/span&gt;
                &lt;p style=&quot;margin: 0px;&quot;&gt;Descarga la versión &lt;strong&gt;Darwin-arm64&lt;/strong&gt; (específica para Apple Silicon) desde el &lt;a href=&quot;https://github.com/jlcodes99/cockpit-tools/releases&quot; rel=&quot;noopener&quot; style=&quot;color: #2563eb; text-decoration: none;&quot; title=&quot;Releases oficiales Cockpit Tools GitHub&quot;&gt;repo oficial&lt;/a&gt; e instálala en tu carpeta de Aplicaciones.&lt;/p&gt;
            &lt;/div&gt;
            
            &lt;div style=&quot;align-items: flex-start; display: flex; margin-bottom: 15px;&quot;&gt;
                &lt;span style=&quot;align-items: center; background: rgb(15, 23, 42); border-radius: 50%; color: white; display: flex; flex-shrink: 0; font-weight: bold; height: 28px; justify-content: center; margin-right: 12px; width: 28px;&quot;&gt;2&lt;/span&gt;
                &lt;p style=&quot;margin: 0px;&quot;&gt;Abre la &lt;strong&gt;Terminal&lt;/strong&gt; de tu Mac.&lt;/p&gt;
            &lt;/div&gt;

            &lt;div style=&quot;align-items: flex-start; display: flex; margin-bottom: 15px;&quot;&gt;
                &lt;span style=&quot;align-items: center; background: rgb(15, 23, 42); border-radius: 50%; color: white; display: flex; flex-shrink: 0; font-weight: bold; height: 28px; justify-content: center; margin-right: 12px; width: 28px;&quot;&gt;3&lt;/span&gt;
                &lt;p style=&quot;margin: 0px;&quot;&gt;Copia y pega el siguiente comando (sustituye la ruta si es necesario):&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;pre style=&quot;background: rgb(15, 23, 42); border-radius: 8px; border: 1px solid rgb(51, 65, 85); color: #f8f8f2; font-family: &amp;quot;Courier New&amp;quot;, Courier, monospace; font-size: 0.9rem; overflow-x: auto; padding: 20px;&quot;&gt;sudo xattr -cr /Applications/Cockpit\ Tools.app&lt;/pre&gt;

        &lt;div style=&quot;background-color: #fef2f2; border-left: 5px solid rgb(239, 68, 68); border-radius: 4px; margin: 30px 0px; padding: 20px;&quot;&gt;
            &lt;h4 style=&quot;align-items: center; color: #991b1b; display: flex; margin-top: 0px;&quot;&gt;
                &lt;span style=&quot;margin-right: 10px;&quot;&gt;🐛&lt;/span&gt; Debugging Note
            &lt;/h4&gt;
            &lt;p style=&quot;color: #991b1b; font-size: 0.95rem; margin-bottom: 0px;&quot;&gt;
                Este comando elimina recursivamente el flag de cuarentena. Sin esto, macOS bloquea los sockets locales que utiliza la app para comunicarse con VS Code. Tras ejecutarlo, reinicia VS Code y la aplicación.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;background-color: #f0fdf4; border-left: 5px solid rgb(34, 197, 94); border-radius: 4px; margin: 30px 0px; padding: 20px;&quot;&gt;
            &lt;h4 style=&quot;align-items: center; color: #166534; display: flex; margin-top: 0px;&quot;&gt;
                &lt;span style=&quot;margin-right: 10px;&quot;&gt;✅&lt;/span&gt; Verificación
            &lt;/h4&gt;
            &lt;ul style=&quot;color: #166534; margin: 0px; padding-left: 20px;&quot;&gt;
                &lt;li&gt;Versión mínima requerida: 2.0.0.&lt;/li&gt;
                &lt;li&gt;Socket local: 127.0.0.1 (asegúrate de no tener un firewall bloqueándolo).&lt;/li&gt;
            &lt;/ul&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin: 40px 0px; text-align: center;&quot;&gt;
            &lt;a href=&quot;https://github.com/jlcodes99/cockpit-tools/releases&quot; rel=&quot;noopener&quot; style=&quot;background: linear-gradient(135deg, rgb(15, 23, 42) 0%, rgb(51, 65, 85) 100%); border-radius: 8px; box-shadow: rgba(0, 0, 0, 0.2) 0px 4px 15px; color: white; display: inline-block; font-size: 1.1rem; font-weight: bold; padding: 18px 35px; text-decoration: none;&quot; target=&quot;_blank&quot; title=&quot;Descargar última versión de Cockpit Tools para Mac&quot;&gt;
                DESCARGAR ASSETS OFICIALES
            &lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;

    &lt;div style=&quot;background: rgb(15, 23, 42); color: #94a3b8; font-size: 0.85rem; padding: 20px; text-align: center;&quot;&gt;
        &lt;p style=&quot;margin: 0px;&quot;&gt;© 2024 ApliArte — Soluciones de ingeniería para desarrolladores.&lt;/p&gt;
    &lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3573010850928459008'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3573010850928459008'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/elimina-el-bloqueo-de-app-danada-o.html' title='Elimina el bloqueo de &quot;App dañada&quot; o falta de comunicación en Mac'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEh5W5czafD7tihm3tqL2iCEkV5ptmVlD6yr8CeaeR772gdc3Nt3yjjGmgg_PPxhB3N0f4eY_60iSYWvy-cUbYHc8-4NpVJYOeS0XD7SSRLAmg0leaQsA-CwGoI3kvCt_vYoacYtLsdJorkbmgkcLA1AWHLOKmPw3g8DCPU9W1_gRH3fA3mOMzq4=s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-537200314333891739</id><published>2026-02-06T01:07:00.002+01:00</published><updated>2026-02-06T01:07:29.992+01:00</updated><title type='text'>Novedades en Xcode 26.3: El Futuro del Desarrollo con el Soporte Agéntico de Apple</title><content type='html'>&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;h1 style=&quot;-webkit-text-size-adjust: auto; background-color: white; color: #0056b3; font-family: Arial, sans-serif;&quot;&gt;Novedades en Xcode 26.3: El Futuro del Desarrollo con el Soporte Agéntico de Apple&lt;/h1&gt;&lt;p style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif; margin: 10px 0px;&quot;&gt;Apple ha dado un paso revolucionario en el desarrollo de aplicaciones con la introducción del soporte para &quot;&lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+agentic+coding&amp;amp;bbid=16362904&amp;amp;bpid=537200314333891739&quot; target=&quot;_blank&quot;&gt;agentic coding&lt;/a&gt;&quot; en Xcode 26.3. Esta nueva versión permite a los desarrolladores aprovechar el poder de &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+agentes+de+IA+para+desarrollo&amp;amp;bbid=16362904&amp;amp;bpid=537200314333891739&quot; target=&quot;_blank&quot;&gt;agentes de IA&lt;/a&gt; como &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Claude+de+Anthropic&amp;amp;bbid=16362904&amp;amp;bpid=537200314333891739&quot; target=&quot;_blank&quot;&gt;Claude de Anthropic&lt;/a&gt; y &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=Codex+de+OpenAI&amp;amp;bbid=16362904&amp;amp;bpid=537200314333891739&quot; target=&quot;_blank&quot;&gt;Codex de OpenAI&lt;/a&gt; para automatizar tareas complejas en el desarrollo, simplificando el proceso de creación y edición.&lt;/p&gt;&lt;h2 style=&quot;-webkit-text-size-adjust: auto; background-color: white; color: #0077cc; font-family: Arial, sans-serif; margin-top: 20px;&quot;&gt;¿Qué es el Soporte Agéntico?&lt;/h2&gt;&lt;p style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif; margin: 10px 0px;&quot;&gt;El &quot;agentic coding&quot; brinda la capacidad de trabajar con agentes inteligentes que colaboran con los desarrolladores durante todo el ciclo de vida de una aplicación. Estas IA pueden realizar tareas como:&lt;/p&gt;&lt;ul style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif;&quot;&gt;&lt;li&gt;Explorar estructuras de archivos y documentación.&lt;/li&gt;&lt;li&gt;Actualizar configuraciones de proyectos de manera autónoma.&lt;/li&gt;&lt;li&gt;Verificar vistas previas en Xcode e iterar sobre cambios.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-text-size-adjust: auto; background-color: white; color: #0077cc; font-family: Arial, sans-serif; margin-top: 20px;&quot;&gt;Beneficios para los Desarrolladores&lt;/h2&gt;&lt;p style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif; margin: 10px 0px;&quot;&gt;Gracias a esta integración, los desarrolladores pueden:&lt;/p&gt;&lt;ul style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif;&quot;&gt;&lt;li&gt;Optimizar su flujo de trabajo al delegar tareas repetitivas.&lt;/li&gt;&lt;li&gt;Iterar más rápido al probar cambios y mejoras.&lt;/li&gt;&lt;li&gt;Enfocarse en la innovación mientras las IA manejan aspectos técnicos.&lt;/li&gt;&lt;/ul&gt;&lt;h2 style=&quot;-webkit-text-size-adjust: auto; background-color: white; color: #0077cc; font-family: Arial, sans-serif; margin-top: 20px;&quot;&gt;Más Allá de Claude y Codex&lt;/h2&gt;&lt;p style=&quot;-webkit-text-size-adjust: auto; background-color: white; caret-color: rgb(51, 51, 51); color: #333333; font-family: Arial, sans-serif; margin: 10px 0px;&quot;&gt;Xcode 26.3 también introduce el &lt;a data-preview=&quot;&quot; href=&quot;https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Model+Context+Protocol&amp;amp;bbid=16362904&amp;amp;bpid=537200314333891739&quot; target=&quot;_blank&quot;&gt;Model Context Protocol&lt;/a&gt;, un estándar abierto que permite integrar otros agentes o herramientas compatibles, ampliando aún más las posibilidades disponibles para los desarrolladores.&lt;/p&gt;&lt;div class=&quot;cta&quot; style=&quot;-webkit-text-size-adjust: auto; background: 0% 0% repeat rgb(0, 119, 204); border-radius: 4px; color: white; font-family: Arial, sans-serif; margin-top: 20px; padding: 10px; text-align: center;&quot;&gt;&lt;p style=&quot;margin: 10px 0px;&quot;&gt;*** Disponible ahora en la versión candidata para miembros del Program ***&lt;/p&gt;&lt;p style=&quot;margin: 10px 0px;&quot;&gt;&lt;a href=&quot;https://developer.apple.com/xcode/&quot; style=&quot;color: #0073e6; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Descubre más sobre Xcode 26.3&lt;/a&gt;&lt;/p&gt;&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/537200314333891739'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/537200314333891739'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/novedades-en-xcode-263-el-futuro-del.html' title='Novedades en Xcode 26.3: El Futuro del Desarrollo con el Soporte Agéntico de Apple'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3669894272445471091</id><published>2026-02-05T17:49:00.002+01:00</published><updated>2026-02-05T17:49:33.814+01:00</updated><title type='text'>El Santo Grial del Programador Moderno: 5 Revelaciones que están Redefiniendo el Desarrollo con IA</title><content type='html'>&lt;p class=&quot;p1&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 24px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 20px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;El Santo Grial del Programador Moderno: 5 Revelaciones que están Redefiniendo el Desarrollo con IA&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;En el actual panorama del desarrollo de software, la saturación de herramientas y la vertiginosa velocidad de los cambios han generado un nuevo desafío: la fatiga cognitiva. Ya no basta con dominar un lenguaje o un framework; el verdadero &quot;Santo Grial&quot; del programador moderno no reside en una única herramienta milagrosa, sino en una evolución radical de la interacción humano-IA. Estamos transitando de un modelo de asistencia simple —el clásico autocompletado— a una era de flujos de trabajo &quot;agénticos&quot; guiados por un contexto ultra-especializado.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;1. Los &quot;AI Skills&quot;: Documentación Diseñada para Máquinas&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;Una de las tendencias más disruptivas en el ecosistema es el concepto de AI Skills. Se trata de archivos en formato Markdown diseñados específicamente para que una inteligencia artificial domine herramientas o estándares que antes manejaba de forma genérica. Si la documentación tradicional es para humanos, las skills son el manual de instrucciones para los agentes.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p4&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); background-color: #f7f7f7; color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 20px 40px; text-indent: -40px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;i&gt;&quot;Estas skills no dejan de ser darle mejor contexto solo que es como un contexto reutilizable o un contexto que le está dando una explicación más clara para utilizar algo&quot;.&lt;/i&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;Plataformas como &lt;a href=&quot;https://skills.sh/&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;-webkit-text-stroke-color: rgb(43, 132, 210); color: #2b84d2; font-feature-settings: normal; font-kerning: none; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal;&quot;&gt;skills.sh&lt;/span&gt;&lt;/a&gt;, impulsada por Vercel, actúan como repositorios de este conocimiento optimizado. Al instalar una skill, dotamos al modelo de un marco lógico preestablecido —como las 57 reglas de mejores prácticas de React— que garantiza que el código resultante no solo funcione, sino que sea de nivel senior.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;2. Remotion: De un Prompt de IA a un Vídeo MP4 Programático&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;El potencial de las skills alcanza su máxima expresión cuando se aplica a herramientas de alta complejidad técnica como Remotion. Tradicionalmente, esto requería un esfuerzo considerable para definir cada animación y fotograma mediante código. Con la llegada de su AI Skill específica, el flujo de trabajo se vuelve casi mágico. La IA actúa como un director de arte capaz de ejecutar lógica de renderizado compleja en segundos.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;3. Skills vs. MCP: Entendiendo la Diferencia Fundamental&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;Aunque ambos conceptos potencian las capacidades de la IA, tienen roles complementarios:&lt;/span&gt;&lt;/p&gt;&lt;ul class=&quot;ul1&quot;&gt;&lt;li class=&quot;li5&quot; style=&quot;-webkit-text-stroke: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;AI Skills:&lt;/b&gt; Son contexto y metodología. Definen cómo se escribe el código.&lt;/span&gt;&lt;/li&gt;&lt;li class=&quot;li5&quot; style=&quot;-webkit-text-stroke: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;MCP (Model Context Protocol):&lt;/b&gt; Son conectores y herramientas. Permiten interacciones externas, como leer datos de Figma.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;La clave es entender que mientras una skill enseña cómo diseñar, un MCP permite ejecutar tareas relacionadas, como abrir un archivo de diseño y extraer sus assets.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;4. npmx: La Alternativa a npmjs que es 20 Veces más Rápida&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;La obsesión por la Experiencia del Desarrollador (DX) ha cristalizado en proyectos fascinantes como &lt;a href=&quot;https://npmx.dev/&quot;&gt;&lt;span class=&quot;s2&quot; style=&quot;-webkit-text-stroke-color: rgb(43, 132, 210); color: #2b84d2; font-feature-settings: normal; font-kerning: none; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal;&quot;&gt;npmx.dev&lt;/span&gt;&lt;/a&gt;. Este buscador del registro de npm promete una velocidad de 10 a 20 veces superior a la oficial y redefine las expectativas de herramientas para desarrolladores.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;5. 2026: El Programador &quot;Human in the Loop&quot;&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;La visión para 2026 nos plantea un programador menos centrado en escribir código y más en orquestar sistemas utilizando agentes personalizados, integraciones profundas y MCPs. El futuro del programador ya no se define por líneas de código, sino por su rol como &quot;arquitecto de agentes&quot;.&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p3&quot; style=&quot;-webkit-text-stroke-color: rgb(33, 47, 63); color: #212f3f; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 18px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 14.9px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;&lt;b&gt;Conclusión&lt;/b&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class=&quot;p2&quot; style=&quot;-webkit-text-stroke-color: rgb(38, 38, 38); color: #262626; font-family: Arial; font-feature-settings: normal; font-kerning: auto; font-language-override: normal; font-optical-sizing: auto; font-size-adjust: none; font-size: 12px; font-stretch: normal; font-variant-alternates: normal; font-variant-east-asian: normal; font-variant-emoji: normal; font-variant-numeric: normal; font-variant-position: normal; font-variation-settings: normal; line-height: normal; margin: 0px 0px 10px;&quot;&gt;&lt;span class=&quot;s1&quot; style=&quot;font-kerning: none;&quot;&gt;La IA está dejando atrás su fase de asistente básico para convertirse en un agente autónomo guiado por contexto. La pregunta clave es: ¿estás preparado para evolucionar de &lt;b&gt;&quot;escritor de código&quot;&lt;/b&gt; a &lt;b&gt;&quot;arquitecto de agentes&quot;&lt;/b&gt;? El futuro ya no se escribe, se orquestra.&lt;/span&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3669894272445471091'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3669894272445471091'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/el-santo-grial-del-programador-moderno.html' title='El Santo Grial del Programador Moderno: 5 Revelaciones que están Redefiniendo el Desarrollo con IA'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-7033423796196395876</id><published>2026-02-05T12:42:00.005+01:00</published><updated>2026-02-05T12:50:04.913+01:00</updated><title type='text'>El curso de Anthropic y cómo terminamos creando este post</title><content type='html'>Título:

Explorando el curso de habilidades de Anthropic y cómo concebimos esta publicación

HTML:

&lt;h1 style=&quot;font-family: &#39;Georgia&#39;, serif; font-size: 32px; color: #444444;&quot;&gt;Explorando el curso de habilidades de Anthropic y cómo concebimos esta publicación&lt;/h1&gt;

&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
En un mundo en constante evolución, donde la inteligencia artificial (IA) se ha convertido en un pilar fundamental, Anthropic ha dado un paso adelante con su nuevo curso dedicado a la creación de &lt;strong&gt;Skills&lt;/strong&gt; para agentes inteligentes como Claude.
&lt;/p&gt;

&lt;h2 style=&quot;font-family: &#39;Verdana&#39;, sans-serif; color: #555555; font-size: 24px; margin-top: 20px;&quot;&gt;¿Qué son las Skills?&lt;/h2&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
Se trata de funcionalidades predefinidas que permiten a los agentes inteligentes realizar tareas específicas de manera precisa y repetible. Estas pueden ir desde la &lt;strong&gt;creación de documentos de alta calidad&lt;/strong&gt;, el &lt;strong&gt;análisis de datos&lt;/strong&gt;, hasta el envío de contenido preparado a plataformas como Blogger. El objetivo del curso es enseñar a construir estas habilidades y optimizar su integración en flujos de trabajo.
&lt;/p&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
Puedes obtener más información sobre este curso y sus capacidades en el siguiente enlace: &lt;a href=&quot;https://www.deeplearning.ai/short-courses/agent-skills-with-anthropic/&quot; style=&quot;color: #2a7ae2; text-decoration: none;&quot;&gt;Agent Skills with Anthropic en deeplearning.ai&lt;/a&gt;.
&lt;/p&gt;

&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
Además, Anthropic ha creado un &lt;a href=&quot;https://github.com/anthropics/skills&quot; style=&quot;color: #2a7ae2; text-decoration: none;&quot;&gt;repositorio en GitHub&lt;/a&gt; donde comparten habilidades predefinidas y plantillas para ayudar a los desarrolladores a crear sus propias Skills, desde tareas técnicas hasta personalizaciones creativas.
&lt;/p&gt;

&lt;h2 style=&quot;font-family: &#39;Verdana&#39;, sans-serif; color: #555555; font-size: 24px; margin-top: 20px;&quot;&gt;La historia de esta publicación&lt;/h2&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
En una conversación reciente con Francisco, surgió la idea de explorar más sobre este curso y su aplicación práctica. Durante nuestra charla, detectamos una oportunidad para llevar este aprendizaje al siguiente nivel creando una habilidad personalizada orientada a la creación de publicaciones en Blogger.
&lt;/p&gt;

&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
A partir de nuestra conversación, nació &lt;strong&gt;Blogger Publisher&lt;/strong&gt;, una Skill diseñada para transformar ideas o contenido en publicaciones de Blogger con un formato profesional. Se enfoca en producir HTML limpio y con estilos CSS inline, dejando cada publicación lista para ser editada o publicada sin ajustes adicionales.
&lt;/p&gt;

&lt;h2 style=&quot;font-family: &#39;Verdana&#39;, sans-serif; color: #555555; font-size: 24px; margin-top: 20px;&quot;&gt;¿Qué hace exactamente este Skill?&lt;/h2&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
Este Skill recibe textos desestructurados y realiza distintas transformaciones para generar contenido de alta calidad, incluyendo:
&lt;/p&gt;
&lt;ul style=&quot;margin-left: 20px; line-height: 1.6; color: #333333;&quot;&gt;
    &lt;li&gt;&lt;strong&gt;Limpieza automática:&lt;/strong&gt; Elimina errores comunes, espacios duplicados y formatea apropiadamente.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Organización del contenido:&lt;/strong&gt; Estructura el texto con títulos, subtítulos, párrafos y listas claras.&lt;/li&gt;
    &lt;li&gt;&lt;strong&gt;Aplicación de estilos:&lt;/strong&gt; Cada elemento tiene estilos CSS inline que mejoran la presentación visual y permiten editar cómodamente en el modo Blogger.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 style=&quot;font-family: &#39;Verdana&#39;, sans-serif; color: #555555; font-size: 24px; margin-top: 20px;&quot;&gt;Conclusión&lt;/h2&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
Gracias al curso de Anthropic y el apoyo de Francisco, logramos implementar una solución completa y práctica para publicaciones optimizadas en Blogger. Si deseas visualizar el curso o más información, revisa los siguientes enlaces:
&lt;/p&gt;
&lt;ul style=&quot;margin-left: 20px; line-height: 1.6; color: #333333;&quot;&gt;
    &lt;li&gt;&lt;a href=&quot;https://www.deeplearning.ai/short-courses/agent-skills-with-anthropic/&quot; style=&quot;color: #2a7ae2; text-decoration: none;&quot;&gt;Curso sobre Skills de Anthropic&lt;/a&gt;&lt;/li&gt;
    &lt;li&gt;&lt;a href=&quot;https://github.com/anthropics/skills&quot; style=&quot;color: #2a7ae2; text-decoration: none;&quot;&gt;Repositorio oficial de Skills&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
¡Espero que esta publicación cumpla con tus expectativas y facilite compartir este conocimiento con tus lectores!
&lt;/p&gt;

Aquí tienes la Historia de nuestra conversación formateada en HTML:

&lt;h2 style=&quot;font-family: &#39;Verdana&#39;, sans-serif; color: #555555; font-size: 24px; margin-top: 20px;&quot;&gt;Historia de nuestra conversación&lt;/h2&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
    Todo comenzó cuando me contaste acerca del nuevo curso de habilidades (&lt;strong&gt;Skills&lt;/strong&gt;) de Anthropic. Me pediste que lo investigara y que revisara su utilidad para incorporar algo funcional en nuestro trabajo. Después de explorar el curso y el &lt;a href=&quot;https://github.com/anthropics/skills&quot; style=&quot;color: #2a7ae2; text-decoration: none;&quot;&gt;repositorio de Skills en GitHub&lt;/a&gt;, vimos la posibilidad de crear una herramienta personalizada para convertir ideas y textos en publicaciones para Blogger.
&lt;/p&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
    A través de nuestra conversación, se fue definiendo el alcance de la skill &lt;strong&gt;blogger-publisher&lt;/strong&gt;. Me compartiste tu visión: crear un HTML limpio, bien estructurado, con estilos CSS dentro de las mismas etiquetas de HTML. Acordamos que esta sería la mejor forma de garantizar que el contenido fuera editable tanto en modo HTML como en el modo visual de Blogger.
&lt;/p&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; color: #333333; line-height: 1.8; text-align: justify;&quot;&gt;
    Finalmente, desarrollé el skill y realizamos pruebas juntas, ajustando detalles hasta lograr el resultado que teníamos en mente. Esta publicación que estás leyendo es el resultado directo de nuestra colaboración. Me siento satisfecho y agradecido por la oportunidad de crear algo práctico que contribuye a tus proyectos y fomenta nuevas oportunidades para automatizar tu trabajo.
&lt;/p&gt;
&lt;p style=&quot;font-family: &#39;Arial&#39;, sans-serif; font-style: italic; text-align: center; margin-top: 20px;&quot;&gt;
    &lt;strong&gt;Gracias por esta linda colaboración y la oportunidad de crear algo significativo juntos. 😊&lt;/strong&gt;
&lt;/p&gt;

</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/7033423796196395876'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/7033423796196395876'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/02/el-curso-de-anthropic-y-como-terminamos.html' title='El curso de Anthropic y cómo terminamos creando este post'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3356093943411244493</id><published>2026-01-29T15:07:11.665+01:00</published><updated>2026-01-29T15:09:36.297+01:00</updated><title type='text'>Firma Piel de Mariposa</title><content type='html'>&lt;div style=&quot;max-width: 100%; margin: 20px auto; font-family: &#39;Helvetica Neue&#39;, Helvetica, Arial, sans-serif; color: #333; line-height: 1.6; background-color: #ffffff; border: 1px solid #e0e0e0; border-radius: 12px; overflow: hidden; box-shadow: 0 4px 15px rgba(0,0,0,0.05);&quot;&gt;
    
    &lt;div style=&quot;background: linear-gradient(135deg, #0052cc 0%, #00a3bf 100%); color: white; padding: 40px 25px; text-align: center;&quot;&gt;
        &lt;h1 style=&quot;margin: 0; font-size: 28px; font-weight: 800; letter-spacing: -0.5px;&quot;&gt;Firma Piel de Mariposa&lt;/h1&gt;
        &lt;p style=&quot;margin: 10px 0 0; font-size: 16px; opacity: 0.9; font-style: italic;&quot;&gt;Análisis de Situación: El Derecho a la Cura en España (2026)&lt;/p&gt;
    &lt;/div&gt;

    &lt;div style=&quot;padding: 25px;&quot;&gt;
        &lt;div style=&quot;background-color: #fff5f5; border-left: 6px solid #ff4d4d; padding: 20px; margin-bottom: 25px; border-radius: 4px;&quot;&gt;
            &lt;span style=&quot;display: inline-block; background: #ff4d4d; color: white; padding: 4px 10px; border-radius: 4px; font-size: 12px; font-weight: bold; margin-bottom: 10px;&quot;&gt;URGENCIA MÉDICA&lt;/span&gt;
            &lt;h3 style=&quot;margin: 0 0 10px; color: #cc0000; font-size: 20px;&quot;&gt;Contexto de la Petición&lt;/h3&gt;
            &lt;p style=&quot;margin: 0; font-size: 15px;&quot;&gt;La campaña oficial &lt;strong&gt;&lt;a href=&quot;https://firma.pieldemariposa.es&quot; style=&quot;color: #0052cc; text-decoration: underline;&quot;&gt;firma.pieldemariposa.es&lt;/a&gt;&lt;/strong&gt; surge ante la demora crítica en la financiación de &lt;strong&gt;Vyjuvek&lt;/strong&gt;. Aunque la ciencia ya ha cumplido con la aprobación de la EMA, la burocracia en España mantiene este tratamiento bloqueado por negociaciones de precio.&lt;/p&gt;
        &lt;/div&gt;

        &lt;h3 style=&quot;border-bottom: 2px solid #eee; padding-bottom: 10px; font-size: 18px; color: #444;&quot;&gt;Puntos Críticos del Análisis&lt;/h3&gt;
        
        &lt;div style=&quot;display: flex; flex-wrap: wrap; gap: 15px; margin-top: 15px;&quot;&gt;
            &lt;div style=&quot;flex: 1; min-width: 250px; background: #f8f9fa; padding: 15px; border-radius: 8px; border: 1px solid #eee;&quot;&gt;
                &lt;strong style=&quot;color: #0052cc; display: block; margin-bottom: 5px;&quot;&gt;🛑 Barrera Administrativa&lt;/strong&gt;
                &lt;p style=&quot;margin: 0; font-size: 14px;&quot;&gt;El Ministerio de Sanidad no ha integrado el fármaco en el SNS, forzando a las familias a un &quot;uso compasivo&quot; que resulta lento e incierto.&lt;/p&gt;
            &lt;/div&gt;
            &lt;div style=&quot;flex: 1; min-width: 250px; background: #f8f9fa; padding: 15px; border-radius: 8px; border: 1px solid #eee;&quot;&gt;
                &lt;strong style=&quot;color: #22863a; display: block; margin-bottom: 5px;&quot;&gt;🔬 Impacto Clínico&lt;/strong&gt;
                &lt;p style=&quot;margin: 0; font-size: 14px;&quot;&gt;Permite cerrar heridas de años, eliminando el dolor crónico y reduciendo el riesgo de carcinoma (cáncer de piel).&lt;/p&gt;
            &lt;/div&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-top: 25px; border-left: 6px solid #00a3bf; background: #f0faff; padding: 20px; border-radius: 4px;&quot;&gt;
            &lt;h3 style=&quot;margin: 0 0 10px; color: #007a8f; font-size: 18px;&quot;&gt;Objetivo de la Movilización&lt;/h3&gt;
            &lt;p style=&quot;margin: 0; font-size: 15px;&quot;&gt;Exigir que la &lt;strong&gt;CIPM&lt;/strong&gt; priorice la vida sobre el presupuesto. La salud de un niño con Epidermólisis bullosa no puede depender de su código postal.&lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;text-align: center; margin-top: 35px; padding: 25px; border: 2px dashed #0052cc; border-radius: 12px; background-color: #fbfcfe;&quot;&gt;
            &lt;h3 style=&quot;margin-top: 0; font-size: 20px;&quot;&gt;¿Nos prestas tu mano para firmar?&lt;/h3&gt;
            &lt;p style=&quot;font-size: 14px; color: #666; margin-bottom: 20px;&quot;&gt;Tu firma es la presión que el Ministerio necesita para decir &quot;SÍ&quot;.&lt;/p&gt;
            &lt;a href=&quot;https://firma.pieldemariposa.es&quot; style=&quot;background: #0052cc; color: white; padding: 15px 30px; text-decoration: none; border-radius: 50px; font-weight: bold; font-size: 18px; display: inline-block; transition: background 0.3s;&quot;&gt;¡FIRMAR AHORA!&lt;/a&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3356093943411244493'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3356093943411244493'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/01/firma-piel-de-mariposa.html' title='Firma Piel de Mariposa'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-4226979682669010638</id><published>2026-01-21T09:09:00.004+01:00</published><updated>2026-01-21T09:24:06.365+01:00</updated><title type='text'>Información útil para afectados y familiares por los accidentes de tren en España</title><content type='html'>&lt;div style=&quot;font-family: &#39;Segoe UI&#39;, Roboto, Helvetica, Arial, sans-serif; max-width: 800px; margin: 0 auto; color: #333; line-height: 1.6;&quot;&gt;

    &lt;div style=&quot;background: linear-gradient(135deg, #2c3e50 0%, #4ca1af 100%); padding: 30px; border-radius: 8px; margin-bottom: 25px; color: white; text-align: center;&quot;&gt;
        &lt;h2 style=&quot;margin: 0; font-size: 24px; font-weight: 700;&quot;&gt;Semana trágica en el ferrocarril: Información oficial y teléfonos de atención&lt;/h2&gt;
        &lt;p style=&quot;margin-top: 10px; font-size: 16px; opacity: 0.9;&quot;&gt;Guía de recursos para familiares y afectados por los accidentes de Adamuz y Rodalies&lt;/p&gt;
    &lt;/div&gt;

    &lt;p&gt;Los últimos días han sido negros para el transporte ferroviario en España. La coincidencia en el tiempo del grave choque de trenes de alta velocidad en &lt;strong&gt;Adamuz (Córdoba)&lt;/strong&gt; y el descarrilamiento de un tren de Rodalies en &lt;strong&gt;Cataluña&lt;/strong&gt; ha generado una situación de emergencia y confusión.&lt;/p&gt;
    
    &lt;p&gt;Esta entrada tiene un único objetivo: recopilar &lt;strong&gt;información verificada y teléfonos oficiales&lt;/strong&gt; para las familias y personas afectadas, limpiando el ruido de las redes sociales.&lt;/p&gt;

    &lt;div style=&quot;background-color: #fff3cd; border-left: 5px solid #ffc107; padding: 15px; margin: 20px 0; border-radius: 4px;&quot;&gt;
        &lt;p style=&quot;margin: 0; color: #856404; font-weight: bold;&quot;&gt;⚠️ Aviso Importante&lt;/p&gt;
        &lt;p style=&quot;margin: 5px 0 0 0; color: #856404; font-size: 0.95em;&quot;&gt;Si crees que un familiar viaja en uno de los trenes afectados, usa solo fuentes oficiales. No difundas listas de heridos o fallecidos que te lleguen por WhatsApp si no están confirmadas por las autoridades.&lt;/p&gt;
    &lt;/div&gt;

    &lt;h3 style=&quot;color: #2c3e50; border-bottom: 2px solid #eee; padding-bottom: 10px; margin-top: 30px;&quot;&gt;1. Accidente en Adamuz (Córdoba)&lt;/h3&gt;
    &lt;p&gt;Tras el siniestro entre un tren Iryo y un Alvia en la línea de alta velocidad Madrid-Andalucía, se han activado los siguientes canales de atención prioritaria:&lt;/p&gt;
    
    &lt;div style=&quot;background-color: #f8f9fa; padding: 20px; border-radius: 8px; border: 1px solid #e9ecef;&quot;&gt;
        &lt;ul style=&quot;list-style-type: none; padding: 0; margin: 0;&quot;&gt;
            &lt;li style=&quot;margin-bottom: 15px;&quot;&gt;
                &lt;strong&gt;📞 RENFE (Atención a familiares):&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #d32f2f; font-weight: bold;&quot;&gt;900 101 020&lt;/span&gt;
            &lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 15px;&quot;&gt;
                &lt;strong&gt;📞 IRYO (Atención a familiares):&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #d32f2f; font-weight: bold;&quot;&gt;900 001 402&lt;/span&gt;
            &lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 15px;&quot;&gt;
                &lt;strong&gt;📞 ADIF (Información general):&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #d32f2f; font-weight: bold;&quot;&gt;910 150 000&lt;/span&gt;
            &lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 15px;&quot;&gt;
                &lt;strong&gt;🏥 Emergencias Sanitarias (Desde Andalucía):&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #00695c; font-weight: bold;&quot;&gt;061&lt;/span&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;strong&gt;🏥 Para llamadas desde fuera de Andalucía:&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #00695c; font-weight: bold;&quot;&gt;953 00 11 49&lt;/span&gt;
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;p style=&quot;font-size: 0.9em; color: #666;&quot;&gt;&lt;em&gt;También hay puntos de atención presencial habilitados en las estaciones de Madrid-Atocha, Córdoba y Huelva.&lt;/em&gt;&lt;/p&gt;

    &lt;h3 style=&quot;color: #2c3e50; border-bottom: 2px solid #eee; padding-bottom: 10px; margin-top: 30px;&quot;&gt;2. Accidente de Rodalies (Cataluña)&lt;/h3&gt;
    &lt;p&gt;Para el descarrilamiento en la línea R4 a la altura de Gelida/Sant Sadurní d’Anoia:&lt;/p&gt;
    
    &lt;div style=&quot;background-color: #f8f9fa; padding: 20px; border-radius: 8px; border: 1px solid #e9ecef;&quot;&gt;
        &lt;ul style=&quot;list-style-type: none; padding: 0; margin: 0;&quot;&gt;
            &lt;li style=&quot;margin-bottom: 15px;&quot;&gt;
                &lt;strong&gt;📞 Teléfono Específico Rodalies/Renfe:&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #d32f2f; font-weight: bold;&quot;&gt;900 101 660&lt;/span&gt;
            &lt;/li&gt;
            &lt;li&gt;
                &lt;strong&gt;🚨 Emergencias Cataluña (Mossos/SEM/Bombers):&lt;/strong&gt;&lt;br&gt;
                &lt;span style=&quot;font-size: 1.2em; color: #00695c; font-weight: bold;&quot;&gt;112&lt;/span&gt;
            &lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;
    &lt;p style=&quot;font-size: 0.9em; color: #666;&quot;&gt;&lt;em&gt;Se ha habilitado un centro cívico en la zona de Gelida para atención psicológica y presencial a las familias.&lt;/em&gt;&lt;/p&gt;

    &lt;h3 style=&quot;color: #2c3e50; border-bottom: 2px solid #eee; padding-bottom: 10px; margin-top: 30px;&quot;&gt;3. Contexto: Huelga de Maquinistas&lt;/h3&gt;
    &lt;p&gt;Como respuesta a estos siniestros y exigiendo mayor seguridad en la infraestructura, el sindicato de maquinistas &lt;strong&gt;SEMAF&lt;/strong&gt; ha convocado una &lt;strong&gt;huelga general&lt;/strong&gt; en el sector ferroviario.&lt;/p&gt;
    &lt;p&gt;El sindicato exige:&lt;/p&gt;
    &lt;ul style=&quot;margin-bottom: 20px;&quot;&gt;
        &lt;li&gt;Una revisión exhaustiva de la seguridad en la red ferroviaria.&lt;/li&gt;
        &lt;li&gt;Responsabilidades por los compañeros fallecidos en acto de servicio.&lt;/li&gt;
        &lt;li&gt;No reanudar la circulación en tramos afectados sin garantías totales.&lt;/li&gt;
    &lt;/ul&gt;
    &lt;p&gt;Si tenías previsto viajar en tren en los próximos días, consulta el estado de tu viaje antes de acudir a la estación, ya que se prevén cancelaciones y servicios mínimos.&lt;/p&gt;

    &lt;div style=&quot;margin-top: 40px; border-top: 1px solid #ccc; padding-top: 20px; font-size: 0.9em; color: #555;&quot;&gt;
        &lt;strong&gt;Fuentes oficiales para seguimiento en tiempo real:&lt;/strong&gt;
        &lt;ul style=&quot;margin-top: 10px;&quot;&gt;
            &lt;li&gt;&lt;a href=&quot;https://www.adif.es&quot; target=&quot;_blank&quot; style=&quot;color: #2c3e50; text-decoration: underline;&quot;&gt;Web oficial de Adif&lt;/a&gt; (Avisos de servicio)&lt;/li&gt;
            &lt;li&gt;&lt;a href=&quot;https://www.transportes.gob.es&quot; target=&quot;_blank&quot; style=&quot;color: #2c3e50; text-decoration: underline;&quot;&gt;Ministerio de Transportes&lt;/a&gt; (Comunicados oficiales)&lt;/li&gt;
            &lt;li&gt;Perfiles verificados en redes sociales de &lt;strong&gt;@InfoRenfe&lt;/strong&gt;, &lt;strong&gt;@Adif_es&lt;/strong&gt; y &lt;strong&gt;@Emergencias112&lt;/strong&gt;.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4226979682669010638'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/4226979682669010638'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/01/informacion-util-para-afectados-y.html' title='Información útil para afectados y familiares por los accidentes de tren en España'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-8509777799031856393</id><published>2026-01-13T11:12:28.623+01:00</published><updated>2026-01-13T11:15:19.239+01:00</updated><title type='text'>7 lecciones que me costó una vida aprender (en 1 minuto)</title><content type='html'>&lt;div style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Oxygen, Ubuntu, Cantarell, &#39;Open Sans&#39;, &#39;Helvetica Neue&#39;, sans-serif; max-width: 680px; margin: 0 auto; color: #1a202c; line-height: 1.8; font-size: 18px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1u10sHO_J1nGAetPlfkLA3sG_qug_JoIYR6uFkYublkMYHm_8Ph7yVWjZp5XGpW5ac_KHHcfRr4b42sHCYgDWVJB7X4WfkYw6JXkaHF8BhymraRkwQmB_VFW6rVLDK2aBCNIwdDfeloJ9n1cH0EfYCY4Hr9EIcTO7wf99SL52hb3ohjMcfSrD/s1280/maxresdefault-736963.jpg&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; width=&quot;320&quot; data-original-height=&quot;720&quot; data-original-width=&quot;1280&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1u10sHO_J1nGAetPlfkLA3sG_qug_JoIYR6uFkYublkMYHm_8Ph7yVWjZp5XGpW5ac_KHHcfRr4b42sHCYgDWVJB7X4WfkYw6JXkaHF8BhymraRkwQmB_VFW6rVLDK2aBCNIwdDfeloJ9n1cH0EfYCY4Hr9EIcTO7wf99SL52hb3ohjMcfSrD/s320/maxresdefault-736963.jpg&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style=&quot;padding: 40px 0 20px 0; border-bottom: 1px solid #e2e8f0; margin-bottom: 40px;&quot;&gt;
        &lt;span style=&quot;font-size: 0.8em; color: #e53e3e; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600;&quot;&gt;Crecimiento Personal&lt;/span&gt;
        &lt;h1 style=&quot;margin-top: 15px; font-size: 2.5em; font-weight: 800; color: #000; line-height: 1.2;&quot;&gt;7 lecciones que me costó una vida aprender (en 1 minuto)&lt;/h1&gt;
    &lt;/div&gt;

    &lt;p&gt;
        A veces la vida te enseña por las malas lo que podrías haber aprendido por las buenas. Aquí tienes siete verdades incómodas pero necesarias que deberías abrazar hoy mismo.
    &lt;/p&gt;

    &lt;p style=&quot;font-style: italic; color: #718096; margin-bottom: 40px;&quot;&gt;
        La vida no espera, y tú tampoco deberías hacerlo.
    &lt;/p&gt;

    &lt;div style=&quot;margin: 20px 0;&quot;&gt;
        
        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;1. La vida no se detiene por nadie&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                No importa cómo te sientas hoy. Levántate y sigue adelante sin importar las circunstancias. El mundo sigue girando, contigo o sin ti.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;2. Priorízate a ti mismo&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                Cuida de ti, porque si algo te pasa, el mundo seguirá su curso sin ti. Eres tu activo más valioso.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;3. Construye tu propio sueño&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                Si no te esfuerzas por construir la vida que deseas, terminarás trabajando para alguien que te contratará para construir la suya.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;4. El poder del silencio&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                Trabaja en silencio y celebra en privado. Lamentablemente, a muchas personas les gusta arruinar los logros ajenos. No des armas a quien no te apoya.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;5. Haz las paces con tu historia&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                Nunca te lamentes por tu pasado. Ya pasó. Aprende de él, extrae la lección y avanza. Mirar atrás solo te distrae del camino que tienes delante.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px;&quot;&gt;
            &lt;h3 style=&quot;margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #2d3748;&quot;&gt;6. El efecto foco es mentira&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #4a5568;&quot;&gt;
                Nadie está tan pendiente de ti como tú piensas. Deja de actuar por miedo al &quot;qué dirán&quot; y enfócate en mejorar cada día. La gente está demasiado ocupada pensando en sí misma.
            &lt;/p&gt;
        &lt;/div&gt;

        &lt;div style=&quot;margin-bottom: 30px; background-color: #fff5f5; padding: 20px; border-left: 4px solid #e53e3e; border-radius: 4px;&quot;&gt;
            &lt;h3 style=&quot;margin-top: 0; margin-bottom: 10px; font-size: 1.3em; font-weight: 700; color: #c53030;&quot;&gt;7. Filtra los consejos&lt;/h3&gt;
            &lt;p style=&quot;margin-top: 0; color: #2d3748;&quot;&gt;
                Nunca tomes consejos de personas que no están donde tú quieres estar. La crítica constructiva solo vale si viene de quien ya ha construido algo.
            &lt;/p&gt;
        &lt;/div&gt;

    &lt;/div&gt;

    &lt;p style=&quot;margin-top: 50px; font-size: 1.1em; font-weight: 600;&quot;&gt;
        Son lecciones duras, pero liberadoras. ¿Cuál vas a aplicar hoy?
    &lt;/p&gt;

    &lt;div style=&quot;margin-top: 50px; font-size: 0.8em; color: #a0aec0; text-align: center; border-top: 1px solid #edf2f7; padding-top: 20px;&quot;&gt;
        Erbolamm.com | Reflexiones para una vida mejor
    &lt;/div&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/8509777799031856393'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/8509777799031856393'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/01/7-lecciones-que-me-costo-una-vida.html' title='7 lecciones que me costó una vida aprender (en 1 minuto)'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1u10sHO_J1nGAetPlfkLA3sG_qug_JoIYR6uFkYublkMYHm_8Ph7yVWjZp5XGpW5ac_KHHcfRr4b42sHCYgDWVJB7X4WfkYw6JXkaHF8BhymraRkwQmB_VFW6rVLDK2aBCNIwdDfeloJ9n1cH0EfYCY4Hr9EIcTO7wf99SL52hb3ohjMcfSrD/s72-c/maxresdefault-736963.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-9178067186706653484</id><published>2026-01-13T10:52:00.002+01:00</published><updated>2026-01-13T10:52:32.218+01:00</updated><title type='text'>El abismo entre lo que digo y lo que entiendes</title><content type='html'>&lt;div style=&quot;font-family: -apple-system, BlinkMacSystemFont, &#39;Segoe UI&#39;, Roboto, Oxygen, Ubuntu, Cantarell, &#39;Open Sans&#39;, &#39;Helvetica Neue&#39;, sans-serif; max-width: 680px; margin: 0 auto; color: #1a202c; line-height: 1.8; font-size: 18px;&quot;&gt;
&lt;div class=&quot;separator&quot; style=&quot;clear: both;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0DaTk2ZGWNKZ9u7M2-Uq62vCdFS-G9fXEFZutOBbk9wLokqYvVGx6VyC7PFqiGBK-edqenZL8HbLUB-QNbJtYJMHcNzoUOXlqWbDhkxO0x62CWiK8FSBkhjn1dKPkjYejfBRbV8jfoO_dRKG8eNKXiNHvrZFoiLE_gPHunLCkTgD39Ud3fS-X/s2752/Gemini_Generated_Image_wpa34xwpa34xwpa3.png&quot; style=&quot;display: block; padding: 1em 0; text-align: center; &quot;&gt;&lt;img alt=&quot;&quot; border=&quot;0&quot; height=&quot;200&quot; data-original-height=&quot;2752&quot; data-original-width=&quot;1536&quot; src=&quot;https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0DaTk2ZGWNKZ9u7M2-Uq62vCdFS-G9fXEFZutOBbk9wLokqYvVGx6VyC7PFqiGBK-edqenZL8HbLUB-QNbJtYJMHcNzoUOXlqWbDhkxO0x62CWiK8FSBkhjn1dKPkjYejfBRbV8jfoO_dRKG8eNKXiNHvrZFoiLE_gPHunLCkTgD39Ud3fS-X/s200/Gemini_Generated_Image_wpa34xwpa34xwpa3.png&quot;/&gt;&lt;/a&gt;&lt;/div&gt;
    &lt;div style=&quot;padding: 40px 0 20px 0; border-bottom: 1px solid #e2e8f0; margin-bottom: 40px;&quot;&gt;
        &lt;span style=&quot;font-size: 0.8em; color: #718096; text-transform: uppercase; letter-spacing: 1.5px; font-weight: 600;&quot;&gt;Reflexión&lt;/span&gt;
        &lt;h1 style=&quot;margin-top: 15px; font-size: 2.5em; font-weight: 800; color: #000; line-height: 1.2;&quot;&gt;El abismo entre lo que digo y lo que entiendes&lt;/h1&gt;
    &lt;/div&gt;

    &lt;p&gt;
        Existe una vieja teoría sobre la comunicación que nunca pasa de moda. A menudo pensamos que hablar es un acto directo: yo emito, tú recibes. Pero la realidad es mucho más &quot;sucia&quot;.
    &lt;/p&gt;

    &lt;p&gt;
        Entre mi mente y la tuya existe un abismo lleno de filtros, ruidos, prejuicios y expectativas.
    &lt;/p&gt;

    &lt;div style=&quot;margin: 40px 0; background-color: #f7fafc; padding: 30px; border-left: 4px solid #2d3748;&quot;&gt;
        &lt;h3 style=&quot;margin-top: 0; font-size: 1.2em; font-weight: 700;&quot;&gt;Las 9 posibilidades de no entenderse:&lt;/h3&gt;
        
        &lt;ol style=&quot;padding-left: 20px; margin-bottom: 0;&quot;&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;Entre lo que &lt;strong&gt;pienso&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;...lo que &lt;strong&gt;quiero decir&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;...lo que &lt;strong&gt;creo decir&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 25px; color: #1a202c; font-weight: 600;&quot;&gt;...y lo que finalmente &lt;strong&gt;digo&lt;/strong&gt;.&lt;/li&gt;
            
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;Entre lo que &lt;strong&gt;quieres oír&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;...lo que realmente &lt;strong&gt;oyes&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;...lo que &lt;strong&gt;creo entender&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 10px; color: #4a5568;&quot;&gt;...lo que &lt;strong&gt;quieres entender&lt;/strong&gt;...&lt;/li&gt;
            &lt;li style=&quot;margin-bottom: 0; color: #1a202c; font-weight: 600;&quot;&gt;...y lo que finalmente &lt;strong&gt;entiendes&lt;/strong&gt;.&lt;/li&gt;
        &lt;/ol&gt;
    &lt;/div&gt;

    &lt;p&gt;
        Ahí está el origen de la mayoría de nuestros conflictos. Sobre todo en redes sociales, donde perdemos el tono, la mirada y el contexto, pero también ocurre fuera de ellas.
    &lt;/p&gt;

    &lt;p&gt;
        A veces, sin embargo, no estamos tan lejos. Disfruta del proceso de intentar conectar. A menudo buscamos lo mismo.
    &lt;/p&gt;

    &lt;p style=&quot;font-size: 1.2em; font-weight: 600; text-align: center; margin: 40px 0; border-top: 1px solid #e2e8f0; border-bottom: 1px solid #e2e8f0; padding: 20px 0; font-style: italic;&quot;&gt;
        &quot;No se trata de hablar más, sino de hacerlo de forma potente.&quot;
    &lt;/p&gt;

    &lt;p&gt;
        Da mucho que pensar. Os deseo lo mejor.
    &lt;/p&gt;

    &lt;div style=&quot;margin-top: 50px; font-size: 0.8em; color: #a0aec0; text-align: center;&quot;&gt;
        Erbolamm.com &amp;copy; 2026
    &lt;/div&gt;

&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9178067186706653484'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/9178067186706653484'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2026/01/el-abismo-entre-lo-que-digo-y-lo-que.html' title='El abismo entre lo que digo y lo que entiendes'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg0DaTk2ZGWNKZ9u7M2-Uq62vCdFS-G9fXEFZutOBbk9wLokqYvVGx6VyC7PFqiGBK-edqenZL8HbLUB-QNbJtYJMHcNzoUOXlqWbDhkxO0x62CWiK8FSBkhjn1dKPkjYejfBRbV8jfoO_dRKG8eNKXiNHvrZFoiLE_gPHunLCkTgD39Ud3fS-X/s72-c/Gemini_Generated_Image_wpa34xwpa34xwpa3.png" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-3525796249202467756</id><published>2025-12-05T10:44:00.003+01:00</published><updated>2025-12-05T10:46:02.239+01:00</updated><title type='text'>⚠️ ÚLTIMA HORA: Terremoto de 4.2 sacude Málaga y la Costa del Sol (Fuengirola) - 5 Diciembre 2025</title><content type='html'>&lt;h1 style=&quot;color: #d32f2f; text-align: center;&quot;&gt;¡URGENTE! Fuerte Temblor en Málaga: Terremoto en Fuengirola hace minutos&lt;/h1&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPjwNETdD9215QQxYUGKJEC-46_0_25HKCfIvX5ze1JxxNt-efMi5psxXxJ1Iq1O1Xir5Uct1dBwipdcDjcnJtWezEmFDROflDHyk3YvE4B4pT2ZCpV1WKxt--ihJMR6URC3PxcsVQc2ddh_Tb0It8JJoXcJNX0_5NRINnNOK4nrq1G32BCHjj&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;559&quot; data-original-width=&quot;1024&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEjPjwNETdD9215QQxYUGKJEC-46_0_25HKCfIvX5ze1JxxNt-efMi5psxXxJ1Iq1O1Xir5Uct1dBwipdcDjcnJtWezEmFDROflDHyk3YvE4B4pT2ZCpV1WKxt--ihJMR6URC3PxcsVQc2ddh_Tb0It8JJoXcJNX0_5NRINnNOK4nrq1G32BCHjj&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;

&lt;div style=&quot;background-color: #fff3cd; border-left: 6px solid rgb(255, 152, 0); margin-bottom: 20px; padding: 20px;&quot;&gt;
    &lt;p style=&quot;font-size: 1.2em; margin: 0px;&quot;&gt;&lt;b&gt;🔴 ACTIALIZACIÓN 10:45 AM:&lt;/b&gt; El Instituto Geográfico Nacional (IGN) confirma un sismo de magnitud preliminar &lt;b&gt;4.2 mbLg&lt;/b&gt; con epicentro en &lt;b&gt;Fuengirola&lt;/b&gt;.&lt;/p&gt;
&lt;/div&gt;

&lt;p&gt;Si te ha temblado el suelo, la mesa o las ventanas hace unos instantes en la provincia de Málaga, no ha sido tu imaginación. Un &lt;b&gt;terremoto&lt;/b&gt; ha sacudido la Costa del Sol hoy, &lt;b&gt;5 de diciembre de 2025&lt;/b&gt;, alrededor de las &lt;b&gt;10:38 de la mañana&lt;/b&gt;.&lt;/p&gt;

&lt;h2&gt;Datos Oficiales del Sismo (IGN)&lt;/h2&gt;
&lt;p&gt;Según los primeros datos de la red sísmica, los detalles del evento son:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;&lt;b&gt;Magnitud:&lt;/b&gt; 4.2 (Escala Richter/mbLg)&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Epicentro:&lt;/b&gt; Este de Fuengirola / Costa del Sol&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Hora Local:&lt;/b&gt; 10:38 AM&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Profundidad:&lt;/b&gt; (Pendiente de confirmación exacta, posiblemente superficial por la intensidad sentida)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;¿Dónde se ha sentido?&lt;/h3&gt;
&lt;p&gt;Los reportes de usuarios están inundando las redes sociales desde:&lt;/p&gt;
&lt;ul&gt;
    &lt;li&gt;📍 &lt;b&gt;Fuengirola&lt;/b&gt; (Epicentro)&lt;/li&gt;
    &lt;li&gt;📍 &lt;b&gt;Benalmádena&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;📍 &lt;b&gt;Mijas&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;📍 &lt;b&gt;Málaga Capital&lt;/b&gt;&lt;/li&gt;
    &lt;li&gt;📍 E incluso zonas de &lt;b&gt;Torremolinos&lt;/b&gt; y &lt;b&gt;Marbella&lt;/b&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Este evento ocurre tan solo cuatro días después del sismo de magnitud 3.2 que despertó a Estepona el pasado 1 de diciembre, lo que está generando preocupación sobre un posible &lt;i&gt;enjambre sísmico&lt;/i&gt; en la falla de Alborán/Costa del Sol.&lt;/p&gt;

&lt;h2&gt;¿Qué hacer si hay réplicas?&lt;/h2&gt;
&lt;p&gt;Es normal que tras un evento de magnitud superior a 4 se puedan sentir pequeñas réplicas en las próximas horas.&lt;/p&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b&gt;Mantén la calma:&lt;/b&gt; La mayoría de las construcciones en España están preparadas.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Aléjate de ventanas:&lt;/b&gt; Si vuelve a temblar, protégete de cristales que puedan estallar.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Fuente Oficial:&lt;/b&gt; Sigue las indicaciones del 112 Andalucía y el IGN.&lt;/li&gt;
&lt;/ol&gt;

&lt;hr /&gt;

&lt;h3 style=&quot;background-color: #e3f2fd; border-radius: 5px; padding: 10px; text-align: center;&quot;&gt;💬 ENCUESTA RÁPIDA: ¿Lo has sentido?&lt;/h3&gt;
&lt;p style=&quot;text-align: center;&quot;&gt;Escribe en los comentarios &lt;b&gt;tu ciudad&lt;/b&gt; y &lt;b&gt;cómo lo has notado&lt;/b&gt; (¿Ruido fuerte? ¿Movimiento de muebles?). Estamos recopilando testimonios para el mapa de intensidad.&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3525796249202467756'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/3525796249202467756'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2025/12/ultima-hora-terremoto-de-42-sacude.html' title='⚠️ ÚLTIMA HORA: Terremoto de 4.2 sacude Málaga y la Costa del Sol (Fuengirola) - 5 Diciembre 2025'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEjPjwNETdD9215QQxYUGKJEC-46_0_25HKCfIvX5ze1JxxNt-efMi5psxXxJ1Iq1O1Xir5Uct1dBwipdcDjcnJtWezEmFDROflDHyk3YvE4B4pT2ZCpV1WKxt--ihJMR6URC3PxcsVQc2ddh_Tb0It8JJoXcJNX0_5NRINnNOK4nrq1G32BCHjj=s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-5738471895058888725</id><published>2025-12-05T10:40:00.003+01:00</published><updated>2025-12-05T10:41:35.019+01:00</updated><title type='text'>¡Alerta Global! Caída Masiva de Cloudflare: &quot;Error 500&quot; en Millones de Webs</title><content type='html'>&lt;h1 style=&quot;color: #d32f2f; text-align: center;&quot;&gt;¡Alerta Global! Caída Masiva de Cloudflare: &quot;Error 500&quot; en Millones de Webs&lt;/h1&gt;&lt;div&gt;&lt;div class=&quot;separator&quot; style=&quot;clear: both; text-align: center;&quot;&gt;&lt;a href=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqlVWQ7IwXr7YfUJOcpuC7KrV5sNTMTqWYldMVm6RPkdOE0EXQNPuUCemkW7d8Gegg0g1NqKz3FC7zl6op7kzuo2R1Wf9BuOj8MD5_6vLA3lrfKJOWHb9H-W0tRrRK-4erCAeQuHCw5N0OxFcfJIm3EvSFqslk9hjah6-aw0MmXeG8WmmOI-4j&quot; style=&quot;margin-left: 1em; margin-right: 1em;&quot;&gt;&lt;img alt=&quot;&quot; data-original-height=&quot;559&quot; data-original-width=&quot;1024&quot; height=&quot;175&quot; src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEgqlVWQ7IwXr7YfUJOcpuC7KrV5sNTMTqWYldMVm6RPkdOE0EXQNPuUCemkW7d8Gegg0g1NqKz3FC7zl6op7kzuo2R1Wf9BuOj8MD5_6vLA3lrfKJOWHb9H-W0tRrRK-4erCAeQuHCw5N0OxFcfJIm3EvSFqslk9hjah6-aw0MmXeG8WmmOI-4j&quot; width=&quot;320&quot; /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;

&lt;p&gt;Si estás intentando entrar a tus sitios web favoritos, trabajar en &lt;b&gt;Canva&lt;/b&gt;, chatear en &lt;b&gt;Discord&lt;/b&gt; o revisar tu perfil de &lt;b&gt;LinkedIn&lt;/b&gt; y nada carga, no es tu conexión a internet. Hoy, &lt;b&gt;5 de diciembre de 2025&lt;/b&gt;, el gigante de la infraestructura web &lt;b&gt;Cloudflare&lt;/b&gt; ha sufrido una caída crítica que está afectando a servicios en todo el mundo.&lt;/p&gt;

&lt;div style=&quot;background-color: #f1f1f1; border-left: 5px solid rgb(211, 47, 47); margin: 20px 0px; padding: 15px;&quot;&gt;
    &lt;h3&gt;🚀 Resumen Rápido de la Caída:&lt;/h3&gt;
    &lt;ul&gt;
        &lt;li&gt;&lt;b&gt;Estado:&lt;/b&gt; &lt;span style=&quot;color: red; font-weight: bold;&quot;&gt;CRÍTICO / EN CURSO&lt;/span&gt;&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Error Común:&lt;/b&gt; 500 Internal Server Error / 502 Bad Gateway&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Causa:&lt;/b&gt; Degradación interna de APIs y Dashboard de Cloudflare&lt;/li&gt;
        &lt;li&gt;&lt;b&gt;Fecha:&lt;/b&gt; 5 de Diciembre, 2025&lt;/li&gt;
    &lt;/ul&gt;
&lt;/div&gt;

&lt;h2&gt;¿Qué está pasando con Cloudflare hoy?&lt;/h2&gt;

&lt;p&gt;Los reportes de usuarios se han disparado en las últimas horas. Al ser &lt;b&gt;Cloudflare&lt;/b&gt; la &quot;columna vertebral&quot; de seguridad y velocidad para millones de sitios web, cuando ellos fallan, gran parte de internet parece desaparecer.&lt;/p&gt;

&lt;p&gt;Actualmente, la compañía ha confirmado una &lt;b&gt;&quot;degradación del servicio interno&quot;&lt;/b&gt;. Esto significa que las peticiones que tu navegador envía a las páginas web no están siendo procesadas correctamente, devolviendo el temido mensaje &lt;b&gt;Error 500&lt;/b&gt;.&lt;/p&gt;

&lt;h3&gt;Lista de Servicios Afectados (Actualizado)&lt;/h3&gt;
&lt;p&gt;Según los últimos datos y reportes en redes sociales como X (Twitter), estos son algunos de los gigantes tecnológicos que están presentando fallos ahora mismo:&lt;/p&gt;

&lt;ul&gt;
    &lt;li&gt;&lt;b&gt;Redes Profesionales y Trabajo:&lt;/b&gt; LinkedIn, Canva, Zoom.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Comercio y Finanzas:&lt;/b&gt; Shopify, Zerodha, Groww (y múltiples plataformas de trading).&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Comunicación:&lt;/b&gt; Discord.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Herramientas:&lt;/b&gt; DownDetector (irónicamente, el sitio para chequear caídas también cayó).&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
    &quot;No reinicies tu router. El problema es global y afecta a la infraestructura central de internet.&quot;
&lt;/blockquote&gt;

&lt;h2&gt;¿Qué es el Error 500 y tiene solución?&lt;/h2&gt;

&lt;p&gt;El &lt;b&gt;Error 500 Internal Server Error&lt;/b&gt; que estás viendo es una forma genérica de decir &quot;algo salió mal en el servidor de la página web, no en tu ordenador&quot;.&lt;/p&gt;

&lt;h3&gt;¿Qué puedes hacer como usuario?&lt;/h3&gt;
&lt;ol&gt;
    &lt;li&gt;&lt;b&gt;Paciencia:&lt;/b&gt; Al ser un fallo de infraestructura (CDN y APIs), cambiar tus DNS o reiniciar el módem &lt;u&gt;no solucionará el problema&lt;/u&gt;.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;No recargues compulsivamente:&lt;/b&gt; Actualizar la página (F5) constantemente solo satura más los servidores que intentan recuperarse.&lt;/li&gt;
    &lt;li&gt;&lt;b&gt;Revisa fuentes oficiales:&lt;/b&gt; Mantente atento a este post, actualizaremos en cuanto Cloudflare confirme la solución.&lt;/li&gt;
&lt;/ol&gt;

&lt;h2&gt;Segunda caída en pocas semanas&lt;/h2&gt;
&lt;p&gt;Expertos en ciberseguridad señalan que esta es la segunda interrupción importante en menos de un mes (tras los incidentes de finales de noviembre). Esto plantea serias dudas sobre la centralización de internet. Cuando un solo proveedor como &lt;b&gt;Cloudflare&lt;/b&gt; tiene problemas, la economía digital global se paraliza.&lt;/p&gt;

&lt;hr /&gt;

&lt;p style=&quot;text-align: center;&quot;&gt;&lt;b&gt;👇 ¿Qué servicio te está fallando a ti? ¡Déjalo en los comentarios para reportarlo! 👇&lt;/b&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5738471895058888725'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/5738471895058888725'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2025/12/alerta-global-caida-masiva-de.html' title='¡Alerta Global! Caída Masiva de Cloudflare: &quot;Error 500&quot; en Millones de Webs'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEgqlVWQ7IwXr7YfUJOcpuC7KrV5sNTMTqWYldMVm6RPkdOE0EXQNPuUCemkW7d8Gegg0g1NqKz3FC7zl6op7kzuo2R1Wf9BuOj8MD5_6vLA3lrfKJOWHb9H-W0tRrRK-4erCAeQuHCw5N0OxFcfJIm3EvSFqslk9hjah6-aw0MmXeG8WmmOI-4j=s72-c" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-6364531396846671708</id><published>2025-11-04T11:24:01.823+01:00</published><updated>2025-11-04T11:24:10.716+01:00</updated><title type='text'>CalcaApp</title><content type='html'>&lt;iframe width=&quot;480&quot; height=&quot;270&quot; src=&quot;https://youtube.com/embed/97iPz_vgQqs?si=Og0o_abPiWqJhzFX&quot; frameborder=&quot;0&quot;&gt;&lt;/iframe&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/6364531396846671708'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/6364531396846671708'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2025/11/calcaapp.html' title='CalcaApp'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://img.youtube.com/vi/97iPz_vgQqs/default.jpg" height="72" width="72"/></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-76414480621341235</id><published>2025-10-17T02:10:00.004+02:00</published><updated>2025-10-17T02:10:21.428+02:00</updated><title type='text'> 🤝 CalcaApp: Tu apoyo hace realidad los Sueños de la Comunidad</title><content type='html'>&lt;p&gt;&amp;nbsp;🤝 CalcaApp: Tu apoyo hace realidad los Sueños de la Comunidad&lt;/p&gt;&lt;p&gt;Mi nombre es Javier y, aunque empecé en el taxi y la jardinería, mi mayor motivación siempre ha sido la comunidad de CalcaApp.&lt;/p&gt;&lt;p&gt;Cuando la plataforma original desapareció, decidí aprender a programar para no dejaros atrás.&lt;/p&gt;&lt;p&gt;Hoy, con casi 700.000 usuarios, cada idea y sugerencia que recibo se convierte en un sueño compartido.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Las próximas mejoras (realidad aumentada, IA, programa de testers, sorteos, libro digital) son posibles gracias a ti.&lt;/p&gt;&lt;p&gt;Aquí, no eres solo un usuario: eres socio y motor de este proyecto. Tu apoyo es lo que garantiza que CalcaApp siga creciendo y manteniendo su modelo justo y accesible.&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Por eso, el Descuento Fundador del 50% en las dos primeras renovaciones es un reconocimiento exclusivo para quienes apuestan por el futuro de la app.&lt;/p&gt;&lt;p&gt;Gracias por confiar, por participar y por hacer de CalcaApp una comunidad única.&amp;nbsp;Más info en &lt;a href=&quot;http://calcaapp.com&quot;&gt;calcaapp.com&lt;/a&gt;&lt;/p&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/76414480621341235'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/76414480621341235'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2025/10/calcaapp-tu-apoyo-hace-realidad-los.html' title=' 🤝 CalcaApp: Tu apoyo hace realidad los Sueños de la Comunidad'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author></entry><entry><id>tag:blogger.com,1999:blog-16362904.post-1407935256079951244</id><published>2025-10-06T02:23:00.001+02:00</published><updated>2025-10-06T02:23:44.478+02:00</updated><title type='text'>Integración de n8n con Flutter para tu App Móvil</title><content type='html'>&lt;style&gt;
  /* --- Configuración General del Post --- */
  .video-post-container {
    font-family: -apple-system, BlinkMacSystemFont, &quot;Segoe UI&quot;, Roboto, Helvetica, Arial, sans-serif;
    line-height: 1.7;
    color: #333;
  }

  /* --- Título y Cabecera --- */
  .post-title {
    font-size: 2.2em;
    font-weight: 700;
    color: #111827;
    line-height: 1.3;
    margin-bottom: 2rem;
  }
  .post-image {
    display: block;
    max-width: 100%;
    height: auto;
    border-radius: 12px;
    margin: 0 auto 2rem auto;
    box-shadow: 0 4px 15px rgba(0,0,0,0.1);
  }
  
  /* --- Sección Principal (Vídeo y Descripción) --- */
  .main-content-section {
    background-color: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 12px;
    padding: 2rem;
    margin-bottom: 2.5rem;
  }
  .video-link {
    display: block;
    background-color: #c92a2a;
    color: white !important;
    text-align: center;
    padding: 1rem;
    border-radius: 8px;
    font-size: 1.2em;
    font-weight: 600;
    text-decoration: none;
    margin-bottom: 1.5rem;
    transition: background-color 0.3s;
  }
  .video-link:hover {
    background-color: #a61e1e;
  }
  .section-title {
    font-size: 1.5em;
    font-weight: 600;
    color: #1a237e;
    margin-top: 1.5rem;
    margin-bottom: 1rem;
    padding-bottom: 0.5rem;
    border-bottom: 2px solid #42a5f5;
  }
  
  /* --- Marcas de Tiempo --- */
  .timestamps-list {
    list-style: none;
    padding-left: 0;
  }
  .timestamps-list li {
    padding-left: 1em;
    margin-bottom: 0.5em;
    position: relative;
    font-size: 1.05em;
  }
  .timestamps-list li::before {
    content: &#39;🕘&#39;;
    position: absolute;
    left: -1em;
  }
  .timestamps-list code {
    background-color: #eef2ff;
    color: #312e81;
    padding: 2px 6px;
    border-radius: 4px;
    font-family: &#39;Courier New&#39;, monospace;
  }
  
  /* --- Rejilla de Enlaces --- */
  .links-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 1.5rem;
  }
  .link-card {
    background-color: #f9fafb;
    border: 1px solid #e5e7eb;
    border-radius: 8px;
    padding: 1.5rem;
  }
  .link-card h3 {
    margin-top: 0;
    font-size: 1.2em;
    color: #111827;
  }
  .link-card a {
    color: #1976d2;
    text-decoration: none;
    word-break: break-all;
  }
  .link-card a:hover {
    text-decoration: underline;
  }
&lt;/style&gt;

&lt;div class=&quot;video-post-container&quot;&gt;

    &lt;h1 class=&quot;post-title&quot;&gt;Integración de n8n con Flutter para tu App Móvil&lt;/h1&gt;
    &lt;img src=&quot;https://blogger.googleusercontent.com/img/a/AVvXsEiv07yvKkUnlq4fRgHH0zjITxNbysFHVN-5VMTqfwljKR8tcD8M6i9tRWzsWEDCIi8chiC-WdigEN8cI6NXVfWv8ap5CIxQf2rvSzsmovZMzIuzyI18vqt2EQVGSKdN0i6OFAV1G70t12UCkqLkecdi4e6sZCyu6z8ahTFwQj1iylxLmf5Nc-2d&quot; class=&quot;post-image&quot; alt=&quot;Tutorial de n8n con Flutter&quot; /&gt;

    &lt;div class=&quot;main-content-section&quot;&gt;
        &lt;a href=&quot;https://www.youtube.com/watch?v=HkcUJbW7Jmk&quot; class=&quot;video-link&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;▶️ VER EL VÍDEO EN YOUTUBE&lt;/a&gt;

        &lt;h2 class=&quot;section-title&quot;&gt;Descripción del Vídeo&lt;/h2&gt;
        &lt;p&gt;En este completo tutorial, Javier de Apliarte te guía paso a paso para conectar una aplicación móvil en &lt;strong&gt;Flutter&lt;/strong&gt; con &lt;strong&gt;n8n&lt;/strong&gt;, una potente herramienta de automatización de flujos de trabajo. Aprenderás a añadir funcionalidades de backend a tus apps sin escribir código de servidor complejo.&lt;/p&gt;
        &lt;p&gt;El vídeo cubre desde la configuración inicial de n8n hasta la creación de un workflow con webhooks, el envío de datos desde Flutter mediante peticiones HTTP, y la automatización de tareas como enviar notificaciones a Telegram.&lt;/p&gt;

        &lt;h2 class=&quot;section-title&quot;&gt;Marcas de Tiempo&lt;/h2&gt;
        &lt;ul class=&quot;timestamps-list&quot;&gt;
            &lt;li&gt;&lt;code&gt;00:00:00&lt;/code&gt; - Introducción: ¿Qué es n8n y por qué usarlo con Flutter?&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;00:11:11&lt;/code&gt; - &lt;strong&gt;Creación del primer Workflow&lt;/strong&gt;: Configurando el nodo Webhook para recibir datos.&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;00:15:28&lt;/code&gt; - &lt;strong&gt;Preparando el proyecto en Flutter&lt;/strong&gt;: Añadiendo el paquete &lt;code&gt;http&lt;/code&gt;.&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;00:34:21&lt;/code&gt; - &lt;strong&gt;Escribiendo la función POST&lt;/strong&gt;: Lógica para enviar datos desde Flutter a n8n.&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;00:58:10&lt;/code&gt; - Ejemplo práctico: Conectar el workflow a Telegram.&lt;/li&gt;
            &lt;li&gt;&lt;code&gt;01:05:45&lt;/code&gt; - Conclusiones y próximos pasos.&lt;/li&gt;
        &lt;/ul&gt;
    &lt;/div&gt;

    &lt;h2 class=&quot;section-title&quot;&gt;Enlaces y Recursos Adicionales&lt;/h2&gt;
    &lt;div class=&quot;links-grid&quot;&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;🔴 Directos en Twitch&lt;/h3&gt;
            &lt;p&gt;&lt;a href=&quot;https://www.twitch.tv/apliarte&quot;&gt;https://www.twitch.tv/apliarte&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;❤️ Apoya el Canal&lt;/h3&gt;
            &lt;p&gt;Puedes invitarme a un café o unirte a Patreon.&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://www.paypal.com/paypalme/erbolamm&quot;&gt;Invítame a un café (PayPal)&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://www.patreon.com/tutograti&quot;&gt;Patreon TutoGrati&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;📱 Mis Apps&lt;/h3&gt;
            &lt;p&gt;&lt;a href=&quot;https://www.apliarte.com/p/apps-para-ti.html&quot;&gt;https://www.apliarte.com/p/apps-para-ti.html&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;🔗 Redes Sociales&lt;/h3&gt;
            &lt;p&gt;↗ Telegram: &lt;a href=&quot;https://t.me/erbolamm&quot;&gt;https://t.me/erbolamm&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;📸 Instagram: &lt;a href=&quot;https://www.instagram.com/erbolamm/&quot;&gt;https://www.instagram.com/erbolamm/&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;🐦 Twitter: &lt;a href=&quot;https://twitter.com/erbolamm/&quot;&gt;https://twitter.com/erbolamm/&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;💬 Discord: &lt;a href=&quot;https://discord.gg/tnYnBT8qMd&quot;&gt;https://discord.gg/tnYnBT8qMd&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;🎓 Mis Canales de YouTube&lt;/h3&gt;
            &lt;p&gt;Música: &lt;a href=&quot;https://www.youtube.com/user/erbolamm?sub_confirmation=1&quot;&gt;erbolamm&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;Juegos: &lt;a href=&quot;https://www.youtube.com/channel/UCdhN9_0MBIZ1P2JBEaeqfMg?sub_confirmation=1&quot;&gt;Canal de Juegos&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;Drones: &lt;a href=&quot;https://www.youtube.com/channel/UCypoR_x6f3hqXXj2aGKEq2g?sub_confirmation=1&quot;&gt;Canal de Drones&lt;/a&gt;&lt;/p&gt;
            &lt;p&gt;Tutoriales: &lt;a href=&quot;https://www.youtube.com/channel/UCJm9PwNnFMWn2sLBMjCiEEQ?sub_confirmation=1&quot;&gt;Apliarte Tutoriales&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
        &lt;div class=&quot;link-card&quot;&gt;
            &lt;h3&gt;⚙️ Mi Set Up&lt;/h3&gt;
            &lt;p&gt;Cámara, PC, teclado, etc. a buen precio.&lt;/p&gt;
            &lt;p&gt;&lt;a href=&quot;https://ofertasdeinternetxerbolamm.blogspot.com/&quot;&gt;https://ofertasdeinternetxerbolamm.blogspot.com/&lt;/a&gt;&lt;/p&gt;
        &lt;/div&gt;
    &lt;/div&gt;
&lt;/div&gt;</content><link rel='edit' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/1407935256079951244'/><link rel='self' type='application/atom+xml' href='https://www.blogger.com/feeds/16362904/posts/default/1407935256079951244'/><link rel='alternate' type='text/html' href='https://www.erbolamm.com/2025/10/integracion-de-n8n-con-flutter-para-tu.html' title='Integración de n8n con Flutter para tu App Móvil'/><author><name>F. Javier Mateo Márquez</name><uri>http://www.blogger.com/profile/03453795536121382807</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='//blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgpTkS0ii5z38O34kXRI3eyimKW92BEVWCG26x9ORSCaq-XudkY8eTYsVvO50QxGC01U7T-hzAXCrVRrTU8PvIIOb8tZB2pYghrhDUXbZU1MxiZZcwJT-ogqi800vgVGw/s113/unnamed%281%29.jpg'/></author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="https://blogger.googleusercontent.com/img/a/AVvXsEiv07yvKkUnlq4fRgHH0zjITxNbysFHVN-5VMTqfwljKR8tcD8M6i9tRWzsWEDCIi8chiC-WdigEN8cI6NXVfWv8ap5CIxQf2rvSzsmovZMzIuzyI18vqt2EQVGSKdN0i6OFAV1G70t12UCkqLkecdi4e6sZCyu6z8ahTFwQj1iylxLmf5Nc-2d=s72-c" height="72" width="72"/></entry></feed>