<?xml version="1.0" encoding="UTF-8"?><feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es"><title>Chemaclass</title><subtitle>Tech Lead compartiendo ideas prácticas sobre artesanía del software, TDD, liderazgo, Bitcoin e IA. Artículos, resúmenes de libros y charlas.</subtitle><link rel="self" type="application/atom+xml" href="https://chemaclass.com/es/atom.xml"/><link rel="alternate" type="text/html" href="https://chemaclass.com"/><generator uri="https://www.getzola.org/">Zola</generator><updated>2026-06-02T00:00:00+00:00</updated><id>https://chemaclass.com/es/atom.xml</id><entry xml:lang="es"><title>El Eterno Retorno</title><subtitle>Un espejo en el presente</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2026-06-01T00:00:00+00:00</published><updated>2026-06-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-eternal-return/"/><id>https://chemaclass.com/es/blog/the-eternal-return/</id><summary type="html">Nietzsche usó el eterno retorno como prueba. La vida lo usa como espejo. Los patrones riman no para predecir el futuro, sino para revelar en quién te conviertes bajo presión.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2026-06-01/cover.webp" alt="El eterno retorno de Nietzsche como prueba de la vida que vives" />&lt;/p>
&lt;p>Nietzsche propuso un experimento mental en &lt;em>La gaya ciencia&lt;/em>. Imagina que un demonio te visita por la noche y te dice: esta vida que has vivido, la vivirás otra vez, infinitas veces, exactamente igual. Cada alegría, cada arrepentimiento, cada detalle. ¿Te derrumbarías o lo celebrarías como un regalo?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>No lo decía en sentido literal. Lo decía como prueba. ¿Puedes vivir de tal forma que querrías revivirla?&lt;/p>
&lt;p>Pasaron años antes de que esa idea volviera a encontrarme. No como filosofía. Como patrón.&lt;/p>
&lt;h2 id="eventos-que-riman">Eventos que riman&lt;/h2>
&lt;p>Pasa algo. Tiempo después, pasa otra cosa distinta. Otra gente, otros riesgos, otra ciudad. Y aun así la forma resulta familiar. No la superficie, no un déjà vu, sino algo por debajo. El mismo tipo de presión, el mismo tipo de decisión, el mismo tipo de sala en la que tienes que entrar.&lt;/p>
&lt;p>No es que los eventos estén conectados. No lo están. La causalidad no los une. Tu cerebro los une, porque exponerse a suficiente vida produce colisiones de forma. Cuanto más vives, más formas se acumulan. Tarde o temprano, la nueva rima con la antigua.&lt;/p>
&lt;p>He sentido esto muchas veces. Cambiando de empresa, cerrando un capítulo de trabajo y empezando otro, con gente nueva y restricciones nuevas, y aun así el mismo clima interno creciendo dentro de mí mientras cruzo el umbral. También en momentos más callados: cierta luz en octubre, cierto silencio en enero, que vuelven cada año y traen con ellos el mismo tipo de pensamientos, las mismas curiosidades, las mismas preguntas que nunca terminé de hacerme.&lt;/p>
&lt;h2 id="la-trampa-de-la-falsa-sabiduria">La trampa de la falsa sabiduría&lt;/h2>
&lt;p>La conclusión fácil es: ya he visto esto antes, sé qué hacer. Esa conclusión es errónea.&lt;/p>
&lt;p>Los eventos no son los mismos. La lección del anterior no se traslada limpiamente. Actuar como si lo hiciera es la forma más común en que los expertos cometen errores de expertos. Confunden reconocimiento con comprensión.&lt;/p>
&lt;blockquote>
&lt;p>La familiaridad de la forma no es conocimiento de la solución.&lt;/p>
&lt;/blockquote>
&lt;h2 id="lo-que-la-repeticion-realmente-te-da">Lo que la repetición realmente te da&lt;/h2>
&lt;p>Lo que se repite no es la situación. Lo que se repite eres tú, dentro de la situación.&lt;/p>
&lt;p>El mismo tipo de presión saca a la superficie las mismas partes de ti. El mismo tipo de decisión expone los mismos instintos, los mismos miedos, los mismos movimientos por defecto. La primera vez, estás demasiado dentro para verlo. La segunda vez, empiezas a notarlo. La tercera, puedes nombrar lo que está pasando mientras pasa.&lt;/p>
&lt;p>Ese es el regalo. No sabiduría predictiva sobre el mundo. Conciencia diagnóstica sobre ti mismo.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-06-01/middle.webp" alt="Patrones de vida que se repiten y revelan en quién te conviertes bajo presión" />&lt;/p>
&lt;h2 id="la-exposicion-es-la-variable">La exposición es la variable&lt;/h2>
&lt;p>La gente que recibe este beneficio no son los listos. Son los expuestos. Los que aceptaron el trabajo difícil, dijeron que sí a la conversación difícil, se quedaron con el feedback incómodo en lugar de descartarlo, se mudaron de ciudad cuando habría sido más fácil quedarse, aceptaron el proyecto para el que no estaban listos.&lt;/p>
&lt;blockquote>
&lt;p>Los patrones no pueden rimar si solo vives una forma.&lt;/p>
&lt;/blockquote>
&lt;p>Por eso importa mantenerse abierto. &lt;a href="/es/blog/embrace-the-change/">Abrazar el cambio&lt;/a> no es personalidad, es método. Es cómo acumulas la materia prima que, mucho después, te permite reconocerte bajo presión.&lt;/p>
&lt;h2 id="diez-anos-despues">Diez años después&lt;/h2>
&lt;p>Hace diez años estaba &lt;a href="/es/books/">escribiendo un libro&lt;/a> de mis pensamientos. Escribía cada pocos días, solo para releerlos al día siguiente y entenderme mejor. Ya no soy esa persona.&lt;/p>
&lt;p>Todo principio lleva la forma de un final. Aceptarlo te permite dejar de perseguir lo definitivo y prestar atención al proceso en sí.&lt;/p>
&lt;p>Proceso por encima de meta. El papel que asumes importa menos que el personaje que construyes dentro de él. El impacto que dejas no es el que pretendías, es la forma del hueco que creas cuando ya no estás.&lt;/p>
&lt;h2 id="lo-que-esta-en-tu-control">Lo que está en tu control&lt;/h2>
&lt;p>Los eventos en sí casi nunca están bajo tu control. Qué complicaciones llegan, cuándo, con qué severidad: no te toca decidirlo.&lt;/p>
&lt;p>Lo que sí te toca: si te quedas el tiempo suficiente para ver la forma. Si reflexionas después en lugar de pasar página limpiamente. Si dejas que la siguiente colisión te enseñe algo sobre ti mismo en lugar de insistir en que te enseñe algo sobre el mundo.&lt;/p>
&lt;blockquote>
&lt;p>El mundo no repite nada. Tú repites casi todo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-verdadero-eterno-retorno">El verdadero eterno retorno&lt;/h2>
&lt;p>El demonio de Nietzsche no estaba preguntando por la reencarnación. Estaba preguntando si has vivido una vida digna de ser vivida. La prueba es interna.&lt;/p>
&lt;p>Así que pregúntatelo. Si esta misma vida se repitiera para siempre, sin que cambie un solo detalle, ¿la respuesta honesta sería alegría o arrepentimiento? Eres el único que puede responder, y al que más le cuesta hacerlo con sinceridad.&lt;/p>
&lt;p>Amo estar vivo. El hecho de que termine es justo lo que le da peso al tiempo dentro de él. Si no me gusta en quién me estoy convirtiendo, aún tengo tiempo de cambiar. Eso es lo único útil que el retorno ha ofrecido jamás. No conocimiento del futuro. Un espejo en el presente.&lt;/p>
&lt;blockquote>
&lt;p>Tenemos una vida. Haz que sea una que querrías revivir.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-06-01/footer.webp" alt="Un espejo en el presente, no una predicción del futuro" />&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/KqhPdzqqask"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Skills por Encima de Agents</title><subtitle>Inteligencia sin experiencia es entretenimiento</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><published>2026-05-19T00:00:00+00:00</published><updated>2026-05-19T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/skills-over-agents/"/><id>https://chemaclass.com/es/blog/skills-over-agents/</id><summary type="html">Por qué los skills de Claude Code superan a los agentes especializados. El contexto bajo demanda decide la calidad. Librería que viaja con tu código.</summary><content type="html">&lt;p>La gente compara agentes de código. Claude Code, Codex, Gemini CLI. Cuál es más listo, más rápido, más barato. Los benchmarks salen nuevos cada mes.&lt;/p>
&lt;p>Pregunta equivocada.&lt;/p>
&lt;p>Tras un año metiendo agentes en proyectos reales, lo que más cambió las cosas no fue el agente. Fueron los skills que le escribí.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="los-agentes-son-un-commodity">Los agentes son un commodity&lt;/h2>
&lt;p>Todo agente de código tiene la misma forma. Un modelo de lenguaje, un runtime, acceso al filesystem. Leer, razonar, escribir. Generalista por diseño.&lt;/p>
&lt;p>Dos equipos usan el mismo agente. Uno entrega código limpio y testado. El otro entrega basura que parece buena. Mismo modelo. Distinta enseñanza.&lt;/p>
&lt;blockquote>
&lt;p>El modelo es el motor. Los skills son el mapa. Sin mapa, con un motor potente te pierdes antes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="inteligencia-no-es-experiencia">Inteligencia no es experiencia&lt;/h2>
&lt;p>¿Quién lleva tus impuestos? ¿Un genio con 300 de IQ que nunca leyó una ley fiscal, o un asesor con 20 años presentando declaraciones?&lt;/p>
&lt;p>El asesor sabe qué deducciones aplican, qué declaraciones necesita tu negocio, qué errores te marcan. No es inteligencia. Es experiencia.&lt;/p>
&lt;p>Los agentes de IA tienen el mismo hueco. Un modelo razona sobre código y escribe soluciones. No conoce tus capas hexagonales. No sabe que las entidades de dominio nunca deben importar código de framework. No sabe que cada feature empieza con un test que falla.&lt;/p>
&lt;p>Los skills cierran ese hueco.&lt;/p>
&lt;h2 id="los-skills-cargan-contexto-bajo-demanda">Los skills cargan contexto bajo demanda&lt;/h2>
&lt;p>Un skill es un fichero markdown en &lt;code>.claude/skills/&lt;/code>. Un procedimiento, un patrón, un trozo de conocimiento del dominio. Markdown con frontmatter.&lt;/p>
&lt;p>La clave está en cómo se cargan. El agente lee solo nombres y descripciones al arrancar. Carga el skill entero cuando la tarea encaja. Sigue los enlaces a las referencias solo cuando necesita profundizar.&lt;/p>
&lt;p>Esa carga bajo demanda es lo que hace que los skills escalen. Veinte skills casi no cuestan hasta que uno encaja con la tarea. Los agentes especializados, en cambio, cargan sus instrucciones enteras cada vez que arrancan. Más agentes, más coste fijo.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Un ejemplo real de skill&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>.claude/skills/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> code-review/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> SKILL.md # instrucciones principales&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> reference/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> solid-checklist.md # ejemplos SOLID detallados&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> test-patterns.md # guías de calidad de tests&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>El &lt;code>SKILL.md&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="markdown">&lt;span class="giallo-l">&lt;span>---&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">d&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">escription&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Revisar cambios de código por violaciones de SOLID, calidad de tests y alineación de arquitectura&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">a&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">llowed-tools&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> R&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">ead, Grep, Glob&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">a&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">rgument-hint&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">[fichero o PR]&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>---&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">#&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Code Review&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Revisa cambios de código contra las convenciones del proyecto.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">##&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Pasos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">1.&lt;/span>&lt;span> Leer el diff o los ficheros indicados&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">2.&lt;/span>&lt;span> Revisar arquitectura: la capa de dominio no importa framework, la infraestructura se mantiene delgada&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">3.&lt;/span>&lt;span> Revisar principios SOLID (ver reference/solid-checklist.md para patrones)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">4.&lt;/span>&lt;span> Revisar calidad de tests: los tests verifican comportamiento, no detalles de implementación&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">5.&lt;/span>&lt;span> Señalar problemas con el principio concreto violado y una propuesta de fix&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">##&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Output&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Para cada issue encontrado:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> Fichero y línea&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> Qué está mal (qué principio o convención)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);">-&lt;/span>&lt;span> Cómo sería el fix&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>El agente ve la descripción en la lista de skills. Pides un review, carga &lt;code>SKILL.md&lt;/code>. Necesita un patrón SOLID, lee la referencia. Dos niveles, bajo demanda.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>&lt;img src="/images/blog/2026-05-19/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="skills-vs-agentes-especializados">Skills vs agentes especializados&lt;/h2>
&lt;p>Ya cubrí los &lt;a href="/es/blog/inside-the-claude-folder/#agents-specialized-roles">agentes especializados&lt;/a>: workers aislados con su propio prompt y conjunto de herramientas. Buenos para trabajo en paralelo y fronteras de contexto limpias.&lt;/p>
&lt;p>Los agentes especializados son toscos. Un agente, un rol, un prompt fijo. Si quieres tres tipos de calidad de review, o escribes tres agentes o metes todo en uno.&lt;/p>
&lt;p>Los skills son finos. Un agente, muchos skills. El skill correcto se carga para la tarea. El contexto se mantiene pequeño. La calidad se mantiene alta.&lt;/p>
&lt;p>Regla práctica:&lt;/p>
&lt;ul>
&lt;li>Usa un &lt;strong>skill&lt;/strong> cuando necesitas un procedimiento o patrón. De &lt;code>phel-lang&lt;/code>: &lt;code>/gh-issue&lt;/code> (de issue a PR), &lt;code>/commit&lt;/code> (commit convencional), &lt;code>/refactor-check&lt;/code> (review SOLID).&lt;/li>
&lt;li>Usa un &lt;strong>agente&lt;/strong> cuando necesitas aislamiento. De &lt;code>phel-lang&lt;/code>: &lt;code>tdd-coach&lt;/code> (pairing de TDD), &lt;code>clean-code-reviewer&lt;/code> (review de PR), &lt;code>domain-architect&lt;/code> (exploración de arquitectura).&lt;/li>
&lt;/ul>
&lt;p>La mayoría de necesidades son skills, no agentes.&lt;/p>
&lt;blockquote>
&lt;p>Los agentes te dan velocidad. Los skills te dan calidad. Si tienes que elegir uno primero, elige skills.&lt;/p>
&lt;/blockquote>
&lt;h2 id="los-skills-son-tu-ventaja">Los skills son tu ventaja&lt;/h2>
&lt;p>Los modelos mejoran cada mes. El mejor de este año es la base del siguiente. Las familias grandes convergen. Aparece una herramienta mejor, cambias.&lt;/p>
&lt;p>Tus skills no cambian con la herramienta. Codifican tu dominio, tus convenciones, tu arquitectura. Viven en tu repo. Viajan con tu código. Apuntas un modelo nuevo a la librería y eres productivo desde el día uno.&lt;/p>
&lt;blockquote>
&lt;p>El agente es reemplazable. Tus skills no.&lt;/p>
&lt;/blockquote>
&lt;h2 id="empieza-con-el-primer-prompt-repetido">Empieza con el primer prompt repetido&lt;/h2>
&lt;p>No necesitas 20 skills el día uno.&lt;/p>
&lt;p>Cero. Luego uno.&lt;/p>
&lt;p>La señal es la repetición. La segunda vez que tecleas el mismo contexto, ahí tienes un skill esperando. Sácalo a un fichero markdown. La próxima sesión, el agente ya lo sabe.&lt;/p>
&lt;p>Ejemplo concreto. En &lt;a rel="external" href="https://github.com/phel-lang/phel-lang">&lt;code>phel-lang&lt;/code>&lt;/a>, cada sesión pegaba el mismo brief: lee la issue #N, crea la rama según las etiquetas, TDD, abre el PR. A la tercera lo saqué a un skill &lt;code>/gh-issue&lt;/code>. Ahora tecleo &lt;code>/gh-issue 142&lt;/code> y el agente coge la issue, crea &lt;code>fix/...&lt;/code> o &lt;code>feat/...&lt;/code> según las etiquetas, escribe primero el test que falla, implementa, abre el PR. Un fichero markdown. La sesión ya no empieza desde cero.&lt;/p>
&lt;p>No lo escribas desde cero. Pídele al agente: &lt;em>“Lee este proyecto y escribe un skill mínimo de code review basado en lo que veas.”&lt;/em> Escanea, recoge convenciones, redacta v1. Tú lo ajustas. Añades lo que le faltó. Cortas lo que no aplica. Afinas la descripción.&lt;/p>
&lt;p>El segundo skill suele venir de un error. El agente rompe una convención. Escribe un skill que enseñe el camino correcto. No volverá a pasar.&lt;/p>
&lt;p>Los skills se acumulan. Cada uno sube el listón. Un fichero markdown, quizá 50 líneas. Beneficio para siempre.&lt;/p>
&lt;p>Quien no escribe skills se pasa la vida re-explicando lo que “realmente quiere”. Cada sesión desde cero. No es problema de herramienta. Es problema de gestión del conocimiento.&lt;/p>
&lt;p>El agente sale el año que viene. El skill se queda para siempre.&lt;/p>
&lt;blockquote>
&lt;p>Escribe el skill una vez. Cada sesión a partir de ahí empieza donde acabó la anterior.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-05-19/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/CEvIs9y1uog"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Los Niveles de Adopción de la IA</title><subtitle>De prompts copiados a equipos de agentes</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><published>2026-05-01T00:00:00+00:00</published><updated>2026-05-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-levels-of-ai-adoption/"/><id>https://chemaclass.com/es/blog/the-levels-of-ai-adoption/</id><summary type="html">Una escalera de seis niveles para la adopción de la IA, de prompts copiados a equipos de agentes y flujos nativos de IA. Dónde se atascan las empresas y cómo subir.</summary><content type="html">&lt;p>La mayoría de empresas ya usa IA, pero pocas saben en qué punto están de la escalera de adopción. En un extremo, copias código a ChatGPT. En el otro, los agentes abren PRs mientras duermes. Más allá, la IA llega a gente que nunca tocó una terminal. Este post mapea el camino.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="de-donde-venimos">De dónde venimos&lt;/h2>
&lt;p>Usar IA para programar era tener una segunda pestaña. Escribes una función, te atascas, pegas el error en el chat, pegas la respuesta de vuelta y rezas para que funcione. Lento, torpe, desconectado de tu código.&lt;/p>
&lt;p>&lt;a rel="external" href="https://github.com/features/copilot">GitHub Copilot&lt;/a>, sobre el Codex inicial de OpenAI, metió sugerencias dentro del editor, y a menudo se equivocaba con mucha seguridad. Estaba entrenado con código público, y el código público medio no es gran cosa. Tampoco sabía nada de &lt;em>tu&lt;/em> dominio, &lt;em>tus&lt;/em> convenciones ni &lt;em>tu&lt;/em> arquitectura. Era autocompletado que a veces acertaba.&lt;/p>
&lt;blockquote>
&lt;p>La primera generación de herramientas de IA para programar te daba un loro entrenado con todo internet. Fluido, seguro, y diciendo cosas que no tenían sentido en tu código.&lt;/p>
&lt;/blockquote>
&lt;p>Esto era &lt;em>vibe-coding&lt;/em> en su primera forma: tú ponías el &lt;em>vibe&lt;/em> pegando contexto y la IA rellenaba código que parecía correcto. Compilaba lo suficiente para parecer útil, y se rompía lo suficiente para parecer peligroso.&lt;/p>
&lt;h2 id="la-generacion-de-los-ides">La generación de los IDEs&lt;/h2>
&lt;p>El siguiente paso era obvio: si la IA necesita contexto, dale el editor entero.&lt;/p>
&lt;p>&lt;a rel="external" href="https://cursor.com">Cursor&lt;/a>, &lt;a rel="external" href="https://windsurf.com">Windsurf&lt;/a> y otros IDEs parecidos metieron el modelo dentro de tu flujo de programación. El asistente podía leer archivos, seguir imports y ver más de una función a la vez. El &lt;em>vibe-coding&lt;/em> pasó a ser una conversación con tu proyecto, y la productividad subió. Por un momento pareció el final del juego.&lt;/p>
&lt;p>No lo era. Editar archivos es solo una parte del trabajo. El resto es correr tests, leer logs, abrir ramas, revisar diffs y entender qué hace ya el código. Los asistentes que solo vivían en el editor te ayudaban a escribir más rápido, pero no sabían llevar una tarea de &lt;em>“arregla este bug”&lt;/em> a &lt;em>“PR listo para revisar.”&lt;/em>&lt;/p>
&lt;h2 id="el-salto-agentico">El salto agéntico&lt;/h2>
&lt;p>OpenAI lanzó &lt;a rel="external" href="https://openai.com/index/introducing-codex/">Codex&lt;/a> como agente en la nube: le das una tarea, trabaja en una rama y tú vuelves a un PR. Anthropic sacó &lt;a rel="external" href="https://claude.com/product/claude-code">Claude Code&lt;/a>, un agente de CLI en tu terminal, sobre tu repo, con tus herramientas.&lt;/p>
&lt;p>Este fue el gran salto, y no porque los modelos fueran más listos. Lo que cambió fue la unidad de trabajo. Dejaste de promptear línea a línea y empezaste a delegar tareas: lee el ticket, escribe el cambio, corre los tests, explica lo que hiciste. Un agente no necesita que lo lleves de la mano. Necesita un objetivo y el contexto adecuado.&lt;/p>
&lt;blockquote>
&lt;p>El salto de asistente a agente no es una mejora de velocidad. Es un cambio en la descripción del puesto. Pasas de escribir código a dirigir trabajo.&lt;/p>
&lt;/blockquote>
&lt;p>Claude Code casi no necesita setup. Sin &lt;em>lock-in&lt;/em> de editor. Apúntalo a tu repo, suelta una carpeta &lt;code>.claude&lt;/code> con reglas y convenciones, y se adapta. Lo conté en &lt;a rel="external" href="https://chemaclass.com/blog/inside-the-claude-folder/">Dentro de la Carpeta .claude&lt;/a>.&lt;/p>
&lt;p>El modelo que eliges importa más que antes. Los modelos frontera de hoy están muy por delante de los de hace un año. La distancia entre &lt;em>“puede esbozar una función”&lt;/em> y &lt;em>“puede refactorizar un módulo con criterio”&lt;/em> se cerró más rápido de lo esperado, y sigue cerrándose mientras Claude, Codex y Gemini se empujan mutuamente cada mes. Los precios también se están acercando, lo cual es una forma educada de decir que todos copian al primero que acierta con la versión sostenible.&lt;/p>
&lt;h2 id="agentes-con-casa-propia">Agentes con casa propia&lt;/h2>
&lt;p>El siguiente salto no fueron modelos más listos, fueron agentes con su propia máquina.&lt;/p>
&lt;p>&lt;a rel="external" href="https://openclaw.ai">OpenClaw&lt;/a> es el ejemplo más claro. Es un gateway open source que corres en tu propio hardware (Mac Mini, portátil viejo, VPS), un agente siempre encendido conectado a tus apps de mensajería, archivos y calendario. Tú pones el cerebro: Opus, GPT o un modelo local vía &lt;a rel="external" href="https://ollama.com">Ollama&lt;/a>. Cuando un proveedor aprieta límites o sube precios, cambias. El setup es tuyo.&lt;/p>
&lt;p>Un agente de programación vive dentro de un repo durante una tarea. Un agente estilo OpenClaw vive en &lt;em>tu vida&lt;/em>, a lo largo de días y herramientas. &lt;a rel="external" href="https://sauronbot.github.io/about/">Sauron&lt;/a> es el mío. Revisa mis PRs, abre issues, escribe código, saca contribuciones a open source y me lleva la contraria cuando estoy a punto de obsesionarme con algo. Cualquier cosa que yo pueda hacer en un ordenador, él también la hace, solo que más rápido. Deja de ser una herramienta que abres y pasa a ser un sitio donde trabajas.&lt;/p>
&lt;blockquote>
&lt;p>Un agente de programación es un compañero al que invitas a una tarea. Un agente &lt;em>gateway&lt;/em> es un compañero que vive en una máquina y aparece cada día.&lt;/p>
&lt;/blockquote>
&lt;p>Los proveedores cambian planes y límites más rápido de lo que nadie puede seguir, así que la gente monta setups que no dependen de un solo proveedor. El logo del modelo importa menos cada trimestre, y la arquitectura alrededor importa más.&lt;/p>
&lt;h2 id="ia-mas-alla-de-los-desarrolladores">IA más allá de los desarrolladores&lt;/h2>
&lt;p>La IA para programar fue la historia más ruidosa porque los desarrolladores hablamos alto. La historia más grande es que las herramientas agénticas están llegando a gente que nunca escribió una línea de código.&lt;/p>
&lt;p>&lt;a rel="external" href="https://openai.com/index/introducing-chatgpt-agent/">El modo agente de ChatGPT&lt;/a> y &lt;a rel="external" href="https://claude.com/product/cowork">Cowork de Claude&lt;/a> son los ejemplos obvios: una IA que lee tus documentos, rellena tus hojas de cálculo, redacta tus slides y corre código por ti en segundo plano. &lt;a rel="external" href="https://www.anthropic.com/news/claude-design-anthropic-labs">Claude Design&lt;/a> salió el 17 de abril y &lt;a rel="external" href="https://sherwood.news/tech/anthropic-launches-claude-design-sending-shares-of-figma-down/">tumbó la acción de Figma más de un 7% el día del lanzamiento&lt;/a>. El pitch es sencillo: describe lo que quieres, consigue un prototipo que funciona y pásaselo a Claude Code para llevarlo a producción. Un flujo que antes necesitaba un diseñador, un PM, un ingeniero de frontend y tres rondas de revisión queda comprimido en una conversación.&lt;/p>
&lt;p>Lovable, v0, Canva y la propia Figma están bajo presión para repensar su posicionamiento. Si Claude Design “mata” a alguno es la pregunta equivocada. La correcta es qué pasa cuando hacer un prototipo usable baja de &lt;em>“contrata un diseñador”&lt;/em> a &lt;em>“descríbelo en voz alta.”&lt;/em>&lt;/p>
&lt;p>Las empresas que lo sienten primero no son las herramientas de diseño. Son los negocios pequeños que no podían pagar diseño, los &lt;em>founders&lt;/em> montando un &lt;em>pitch deck&lt;/em> a las tantas de la noche, los PMs probando una idea antes de convocar una reunión. Habrá una minoría de casos donde alguien sí hubiera pagado a un diseñador y ahora no lo hace, y ese coste es real. Pero en la mayoría, la IA no reemplazó a nadie: rellenó un hueco donde nunca iba a haber uno.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-05-01/middle.jpg" alt="Pequeña biblioteca con estanterías de madera y pilas de libros" />&lt;/p>
&lt;h2 id="los-niveles-de-adopcion-de-la-ia">Los niveles de adopción de la IA&lt;/h2>
&lt;p>Cada empresa con la que hablo está en algún punto de esta escalera. Los niveles no van de cuánto pagas en licencias, sino de cuán metida está la IA en cómo se hace el trabajo, y no solo en ingeniería.&lt;/p>
&lt;h3 id="nivel-0-negacion">Nivel 0: Negación&lt;/h3>
&lt;p>&lt;em>Postura a nivel empresa.&lt;/em> Nada de IA, oficialmente. Algunas personas usan ChatGPT en su portátil personal y no lo mencionan. A la dirección le preocupan las fugas de propiedad intelectual, o no lo ha puesto como prioridad. La conversación se queda en &lt;em>“deberíamos mirarlo algún día.”&lt;/em>&lt;/p>
&lt;p>El riesgo aquí no es la tecnología, es el tiempo. Cada mes en el Nivel 0 es un mes en el que tu competencia aumenta su ventaja.&lt;/p>
&lt;h3 id="nivel-1-productividad-personal">Nivel 1: Productividad personal&lt;/h3>
&lt;p>&lt;em>Adopción individual.&lt;/em> La IA se tolera, quizá hasta se anima. Cada uno la usa a su manera: ChatGPT en una pestaña, Copilot en el IDE, Claude para lo más peliagudo, una herramienta de diseño para los mockups. La producción sube, pero el &lt;em>know-how&lt;/em> se queda dentro de cada cabeza. Dos ingenieros, dos PMs o dos diseñadores del mismo equipo sacan resultados muy distintos porque promptean distinto.&lt;/p>
&lt;p>La mayoría de empresas están aquí a principios de 2026. Es una mejora real frente al Nivel 0, y es donde nace el mito de &lt;em>“la IA te da velocidad”&lt;/em>. Como ya &lt;a rel="external" href="https://chemaclass.com/blog/ai-gives-you-speed-not-quality/">defendí antes&lt;/a>, velocidad sin dirección compartida es caos más rápido.&lt;/p>
&lt;h3 id="nivel-2-practicas-compartidas">Nivel 2: Prácticas compartidas&lt;/h3>
&lt;p>El equipo acuerda cómo usar la IA: convenciones compartidas, prompts que la gente reutiliza, reglas en el repo, un criterio común sobre cuándo fiarse del output y cuándo discutirlo. Las &lt;em>code reviews&lt;/em> pillan los errores de IA igual que pillan los humanos, y las &lt;em>design reviews&lt;/em> también. Se exigen tests tanto si escribió el código una persona como si lo escribió un modelo.&lt;/p>
&lt;p>Este es el primer nivel en el que la IA pasa a ser una capacidad de equipo en vez de un hábito personal. Techo más alto, suelo más alto. La gente nueva se pone al día más rápido porque los prompts y las reglas capturan cómo trabaja el equipo.&lt;/p>
&lt;h3 id="nivel-3-herramientas-con-contexto">Nivel 3: Herramientas con contexto&lt;/h3>
&lt;p>El equipo invierte en contexto: archivos de reglas, convenciones, docs de arquitectura que los agentes pueden leer y &lt;a rel="external" href="https://chemaclass.com/blog/mcp-giving-your-ai-agent-the-right-context/">servidores MCP&lt;/a> que conectan a los agentes con las bases de datos, APIs y herramientas internas que necesitan. La IA deja de ser un asistente genérico y se parece más a un compañero que se ha leído los docs de onboarding.&lt;/p>
&lt;p>A este nivel, la calidad depende menos del modelo y más del contexto que lo rodea. Un modelo más flojo con buen contexto le gana a un modelo frontera sin él. Una buena documentación y una arquitectura limpia rinden el doble: ayudan tanto a humanos como a agentes.&lt;/p>
&lt;h3 id="nivel-4-equipos-de-agentes">Nivel 4: Equipos de agentes&lt;/h3>
&lt;p>En vez de un asistente, tienes un escuadrón: un &lt;em>coach&lt;/em> de TDD, un revisor de &lt;em>clean code&lt;/em>, un arquitecto de dominio, alguien que mantiene la documentación. Fuera de ingeniería, la misma idea aplica con agentes de &lt;em>research&lt;/em>, diseño y &lt;em>ops&lt;/em>. Cubrí el lado de desarrollo en &lt;a rel="external" href="https://chemaclass.com/blog/build-your-own-team-of-agents/">Construye tu Propio Equipo de Agentes&lt;/a>, y el &lt;em>leverage&lt;/em> es real.&lt;/p>
&lt;p>Los humanos dejan de competir con la IA en velocidad y empiezan a dirigirla. Revisas, decides y marcas el listón. Los agentes se encargan de teclear, y cada vez más de pensar. El &lt;em>pair programming&lt;/em> con una persona sigue ganando en los &lt;em>trade-offs&lt;/em> complejos, pero siempre tienes un agente disponible para el resto.&lt;/p>
&lt;p>A nivel empresa, el organigrama, los roles y los procesos siguen siendo los de antes. Lo que cambia es que cada persona produce mucho más, y eso se nota en los resultados del equipo. El Nivel 4 multiplica el &lt;em>output&lt;/em> dentro de la estructura existente. El Nivel 5 cambia la estructura.&lt;/p>
&lt;h3 id="nivel-5-flujos-nativos-de-ia">Nivel 5: Flujos nativos de IA&lt;/h3>
&lt;p>El cambio final es sobre cómo funciona la empresa. Los procesos se diseñan &lt;em>alrededor&lt;/em> de los agentes en vez de encajarlos a la fuerza. Los tickets se redactan para que un agente pueda actuar sobre ellos, y las revisiones asumen que parte del trabajo lo escribió una máquina. Las decisiones de arquitectura tienen en cuenta lo que los agentes hacen bien y lo que no. Incluso cambia la contratación: un IC senior en el Nivel 5 se parece más a un &lt;em>tech lead&lt;/em> orquestando un equipo mixto de personas y agentes que a un contribuidor individual clásico.&lt;/p>
&lt;p>Pocas empresas están del todo aquí en 2026, pero la dirección es lo bastante evidente como para que ignorarla sea, en sí misma, una decisión.&lt;/p>
&lt;blockquote>
&lt;p>No subes de nivel comprando mejores herramientas. Subes cambiando cómo se organiza y se revisa el trabajo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="la-ia-no-te-esta-robando-el-trabajo">La IA no te está robando el trabajo&lt;/h2>
&lt;p>Sigo oyendo a gente contar esto como una historia de despidos. Ese encuadre es vago.&lt;/p>
&lt;p>La revolución industrial no acabó con el trabajo. Acabó con tipos concretos de trabajo y creó otros. Los que más perdieron se negaron a reciclarse. Los que más ganaron aprendieron a manejar las máquinas nuevas en lugar de competir con ellas.&lt;/p>
&lt;p>El patrón es el mismo. La IA no te quita el trabajo, está cambiando en qué consiste tu trabajo. Un desarrollador que aprende a dirigir agentes entrega más que uno que se niega. Una diseñadora que hace diez versiones antes de comer con Claude Design diseña más que una que sigue abriendo Figma desde cero. Un PM que envía prototipos prioriza mejor que uno que escribe &lt;em>specs&lt;/em> que nadie lee.&lt;/p>
&lt;blockquote>
&lt;p>La IA no reemplaza al trabajador con habilidades. Reemplaza al trabajador que cree que la habilidad es un activo fijo en vez de un objetivo móvil.&lt;/p>
&lt;/blockquote>
&lt;p>Con la formación, el modelo y el setup adecuados para tu contexto, la IA te da 10x de velocidad sin perder calidad. Lo he visto, y no es marketing. Pero el 10x solo aparece cuando ya sabes qué es “bueno”. Sin esa base, la IA produce encantada 10x más de trabajo mediocre.&lt;/p>
&lt;p>Esa es la versión honesta de la promesa: la IA puede producir basura diez veces más rápido, &lt;em>y&lt;/em> trabajo excelente diez veces más rápido. Cuál te toca depende de ti.&lt;/p>
&lt;h2 id="a-donde-cambia-tu-atencion">A dónde cambia tu atención&lt;/h2>
&lt;p>Dejas de pensar primero en los detalles y empiezas a pensar en la dirección: qué estamos construyendo, para quién, con qué forma y con qué &lt;em>trade-offs&lt;/em>. Los agentes hacen luego la mayor parte de la implementación mientras tú proteges la calidad y la coherencia.&lt;/p>
&lt;p>Esto suena a buenas noticias para quien prefiera la arquitectura a teclear, y lo es. Pero hay una trampa: solo puedes trabajar en el nivel alto si conoces el nivel bajo lo bastante bien como para pillar las desviaciones. Cuando el agente produce algo sutilmente mal (un test que pasa por la razón equivocada, un refactor que cambia el comportamiento bajo carga, un diseño que se rompe en móvil), necesitas verlo al instante. Si no puedes, no estás dirigiendo. Estás dando el visto bueno a lo que aparezca.&lt;/p>
&lt;blockquote>
&lt;p>La IA te deja dedicar más tiempo a la dirección, pero solo si ya te ganaste el derecho a ignorar los detalles. Ese derecho se gana dominándolos antes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="por-que-importa-la-escalera">Por qué importa la escalera&lt;/h2>
&lt;p>Veo equipos que se saltan niveles y fracasan. Un equipo salta del Nivel 1 al Nivel 4 porque la dirección leyó un post sobre escuadrones de agentes, y los agentes producen montañas de código malo porque nadie acordó qué significa calidad. Los agentes no son el problema. Lo es la base que falta.&lt;/p>
&lt;p>La escalera es un orden que importa. Prácticas compartidas antes que &lt;em>context engineering&lt;/em>, &lt;em>context engineering&lt;/em> antes que equipos de agentes, y equipos de agentes antes que flujos nativos de IA. Cada nivel se construye sobre el anterior, igual que el &lt;em>clean code&lt;/em> se construye sobre el &lt;em>naming&lt;/em> y el &lt;em>naming&lt;/em> sobre saber qué estás modelando.&lt;/p>
&lt;p>Las empresas que van a ganar los próximos años no son las que tienen el mayor presupuesto en IA. Son las que suben esta escalera con intención, un nivel cada vez, sin saltarse las partes que parecen aburridas.&lt;/p>
&lt;h2 id="por-donde-empezar">Por dónde empezar&lt;/h2>
&lt;p>En Nivel 0 o 1, el siguiente paso no es comprar más licencias. Es decidir, como equipo, cómo usar estas herramientas. Escríbelo, commitéalo al repo y revísalo cada pocos meses a medida que las herramientas cambian.&lt;/p>
&lt;p>En Nivel 2 o 3, mira dónde falta contexto. ¿Qué no sabe tu IA de tu &lt;em>codebase&lt;/em>, tu producto o tu marca que una persona recién contratada aprendería la primera semana? Escríbelo. Una tarde de reglas y docs te rinde durante meses.&lt;/p>
&lt;p>Más arriba, la pregunta se invierte. Dejas de preguntarte &lt;em>“¿cómo uso mejor la IA?”&lt;/em> y empiezas a preguntarte &lt;em>“¿cómo tiene que cambiar mi equipo para que la IA amplifique lo que ya hacemos bien?”&lt;/em> Esa es una pregunta de liderazgo, no de &lt;em>tooling&lt;/em>.&lt;/p>
&lt;blockquote>
&lt;p>La IA va rápido, pero el trabajo de adoptarla sigue siendo lento y humano. Las herramientas son la parte fácil. La parte difícil es decidir qué es “bueno”, escribirlo y sostener la línea.&lt;/p>
&lt;/blockquote>
&lt;p>La IA puede ejecutar, pero no sabe a dónde vas. Puede producir, pero no sabe qué vale la pena producir. Esa parte sigue siendo nuestra. La velocidad es un regalo, la dirección es una responsabilidad. Del ingeniero en solitario del Nivel 1 a la organización nativa de IA del Nivel 5, la misma verdad se mantiene: el humano supervisa, entiende y da sentido. La máquina hace el resto.&lt;/p>
&lt;p>Cuando se relaje el &lt;em>hype&lt;/em> (y se relajará), la pregunta no va a ser &lt;em>“¿usaste IA?”&lt;/em>, todo el mundo lo habrá hecho. La pregunta va a ser &lt;em>“¿a qué nivel, y con qué dirección?”&lt;/em>&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-05-01/footer.jpg" alt="Sala de lectura con un libro abierto sobre una mesa de madera" />&lt;/p></content></entry><entry xml:lang="es"><title>Dentro de la Carpeta .claude</title><subtitle>Un tutorial sobre rules, skills, agents, hooks y settings</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2026-04-17T00:00:00+00:00</published><updated>2026-04-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/inside-the-claude-folder/"/><id>https://chemaclass.com/es/blog/inside-the-claude-folder/</id><summary type="html">Un recorrido práctico por la carpeta de proyecto de Claude Code. Qué hacen rules, skills, agents, hooks y settings, y cómo encajan entre sí.</summary><content type="html">&lt;p>Cada proyecto en el que trabajo tiene una carpeta &lt;code>.claude/&lt;/code> en la raíz. Commiteada en git, como el resto del código.&lt;/p>
&lt;p>Esa carpeta convierte Claude Code de un asistente genérico en un compañero que conoce tu proyecto. Quien clone el repo hereda el mismo setup.&lt;/p>
&lt;p>El agentic coding es tan bueno como el contexto que le das al agente. La carpeta &lt;code>.claude/&lt;/code> es donde vive ese contexto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-carpeta-claude-de-un-vistazo">La carpeta .claude, de un vistazo&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>.claude/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── CLAUDE.md # onboarding del proyecto&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── settings.json # permisos, hooks, env&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── skills/ # procedimientos reutilizables (slash commands)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── rules/ # convenciones por glob&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>├── hooks/ # scripts que reaccionan a eventos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>└── agents/ # roles especializados&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Seis capas, una carpeta. Contexto, seguridad, procedimientos, barandillas, automatización, especialistas.&lt;/p>
&lt;h2 id="los-cimientos">Los cimientos&lt;/h2>
&lt;h3 id="claude-md-donde-todo-empieza">CLAUDE.md: donde todo empieza&lt;/h3>
&lt;p>Claude Code lee &lt;code>CLAUDE.md&lt;/code> en cada arranque. El doc de onboarding.&lt;/p>
&lt;p>En &lt;a rel="external" href="https://github.com/phel-lang/phel-lang">Phel&lt;/a>, el mío cubre el pipeline del compilador (Lexer → Parser → Analyzer → Emitter), la estructura de módulos, convenciones y comandos clave.&lt;/p>
&lt;p>Un &lt;code>~/.claude/CLAUDE.md&lt;/code> global aplica a &lt;em>todos&lt;/em> tus proyectos. El archivo de proyecto dice &lt;em>cómo funciona este código&lt;/em>. El global dice &lt;em>cómo trabajo yo&lt;/em>.&lt;/p>
&lt;p>Cada byte viaja en cada prompt. Mantenlo corto. Si pasa de una pantalla, mueve el detalle a &lt;code>rules/&lt;/code> o &lt;code>skills/&lt;/code>.&lt;/p>
&lt;blockquote>
&lt;p>Un buen &lt;code>CLAUDE.md&lt;/code> es un buen doc de onboarding. Cuanto mejor sea, menos te repites.&lt;/p>
&lt;/blockquote>
&lt;h3 id="settings-json-seguridad-antes-que-potencia">settings.json: seguridad antes que potencia&lt;/h3>
&lt;p>Antes de darle más poder al agente, bloquea lo que nunca debe hacer.&lt;/p>
&lt;p>&lt;code>.claude/settings.json&lt;/code> contiene tres cosas: &lt;strong>permissions&lt;/strong> (allow/deny), &lt;strong>hooks&lt;/strong> (comandos por evento) y &lt;strong>env&lt;/strong> (variables). Un &lt;code>settings.local.json&lt;/code> gitignoreado mantiene las configuraciones personales aparte.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Ejemplo de permisos en Phel&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">permissions&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">allow&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(composer:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(./bin/phel:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(git:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(gh:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">deny&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(rm -rf:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Bash(sudo:*)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;p>Allow desbloquea el flujo. Deny marca la línea que el agente no puede cruzar, aunque se lo pidas con buena cara.&lt;/p>
&lt;blockquote>
&lt;p>Los permisos son el suelo. Todo lo demás se construye sobre una base segura.&lt;/p>
&lt;/blockquote>
&lt;h2 id="procedimientos-y-barandillas">Procedimientos y barandillas&lt;/h2>
&lt;h3 id="skills-procedimientos-que-puedes-ejecutar">Skills: procedimientos que puedes ejecutar&lt;/h3>
&lt;p>Siguiente dolor tras onboarding: la repetición. Los skills lo resuelven.&lt;/p>
&lt;p>Un skill es un archivo markdown en &lt;code>.claude/skills/&lt;/code>, un procedimiento que invocas con una barra:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>/gh-issue &amp;lt;número&amp;gt;&lt;/code>&lt;/strong>: de issue a rama, plan TDD, PR.&lt;/li>
&lt;li>&lt;strong>&lt;code>/commit&lt;/code>&lt;/strong>: fix, análisis, tests, commit convencional.&lt;/li>
&lt;li>&lt;strong>&lt;code>/refactor-check&lt;/code>&lt;/strong>: SOLID, naming, olores de arquitectura.&lt;/li>
&lt;li>&lt;strong>&lt;code>/release [version]&lt;/code>&lt;/strong>: changelog, PHAR, tag, release.&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Skills vs rules vs prompt directo&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;ul>
&lt;li>&lt;strong>Prompt directo&lt;/strong>: &lt;em>“arregla el issue #42”&lt;/em>. El agente improvisa. Distinto cada vez.&lt;/li>
&lt;li>&lt;strong>Rule&lt;/strong>: &lt;em>“usa conventional commits”&lt;/em>. Da forma al resultado, no al procedimiento.&lt;/li>
&lt;li>&lt;strong>Skill&lt;/strong>: &lt;em>“&lt;code>/gh-issue 42&lt;/code>”&lt;/em>. El procedimiento &lt;em>es&lt;/em> la instrucción.&lt;/li>
&lt;/ul>
&lt;p>Los skills convierten conocimiento tribal en pasos ejecutables por cualquiera.&lt;/p>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Los skills capturan qué hacer. Las rules capturan qué no hacer.&lt;/p>
&lt;/blockquote>
&lt;h3 id="rules-las-barandillas">Rules: las barandillas&lt;/h3>
&lt;p>&lt;code>CLAUDE.md&lt;/code> se lee en cada sesión. Las rules solo cuando aplican. Los archivos en &lt;code>.claude/rules/&lt;/code> apuntan a áreas del código con patrones glob: el agente carga solo lo que corresponde, manteniendo el contexto ligero.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Rules con glob en la práctica&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Archivos de rules en Phel:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>compiler.md&lt;/code>&lt;/strong>: pipeline estricto de 4 fases, sin atajos.&lt;/li>
&lt;li>&lt;strong>&lt;code>php.md&lt;/code>&lt;/strong>: PER 3.0, clases &lt;code>final&lt;/code>, &lt;code>readonly&lt;/code>, patrón Gacela.&lt;/li>
&lt;li>&lt;strong>&lt;code>phel.md&lt;/code>&lt;/strong>: kebab-case, &lt;code>defn-&lt;/code> privadas, &lt;code>:doc&lt;/code>/&lt;code>:example&lt;/code> obligatorios.&lt;/li>
&lt;li>&lt;strong>&lt;code>integration-tests.md&lt;/code>&lt;/strong>: secciones &lt;code>--PHEL--&lt;/code> / &lt;code>--PHP--&lt;/code> en fixtures.&lt;/li>
&lt;/ul>
&lt;p>Las rules del compilador no se activan al editar código Phel. Las rules de Phel no se activan al editar infraestructura PHP.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>Las rules no son sugerencias. Viajan con el código: un cambio de convención y su rule viajan en el mismo commit. Sin drift, sin wikis desactualizadas.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="automatizacion-y-delegacion">Automatización y delegación&lt;/h2>
&lt;h3 id="hooks-automatizacion-en-los-bordes">Hooks: automatización en los bordes&lt;/h3>
&lt;p>Las rules dicen al agente qué hacer. Los hooks se aseguran de que ocurra aunque el agente olvide.&lt;/p>
&lt;p>Comandos shell disparados por eventos de Claude Code (&lt;code>PreToolUse&lt;/code>, &lt;code>PostToolUse&lt;/code>, &lt;code>Stop&lt;/code>), conectados vía &lt;code>settings.json&lt;/code>. En Phel, &lt;code>PreToolUse&lt;/code> bloquea ediciones a archivos críticos (&lt;code>build/release.sh&lt;/code>, &lt;code>.github/*&lt;/code>, &lt;code>composer.lock&lt;/code>). &lt;code>PostToolUse&lt;/code> auto-formatea PHP vía &lt;code>php-cs-fixer&lt;/code>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Conexión de hooks&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PreToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/protect-files.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PostToolUse&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">matcher&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Edit|Write&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">hooks&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span>{&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">type&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">command&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">.claude/hooks/format-php.sh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Las rules son lo que el agente debe saber. Los hooks son lo que el sistema impone de todas formas.&lt;/p>
&lt;/blockquote>
&lt;h3 id="agents-roles-especializados">Agents: roles especializados&lt;/h3>
&lt;p>Todo lo anterior da forma a un solo agente. Los agents añaden especialistas a los que el agente principal puede delegar, cada uno con sus propias herramientas, permisos y modelo. La pieza más avanzada. La recomiendo de última.&lt;/p>
&lt;p>Algunos de Phel:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Explorer&lt;/strong> (Sonnet, solo lectura): archivos, mapeo de estructura.&lt;/li>
&lt;li>&lt;strong>Clean Code Reviewer&lt;/strong>: SOLID y naming en diffs.&lt;/li>
&lt;li>&lt;strong>TDD Coach&lt;/strong>: imposición red-green-refactor.&lt;/li>
&lt;li>&lt;strong>Domain Architect&lt;/strong>: límites de módulos, pipeline del compilador.&lt;/li>
&lt;li>&lt;strong>Debugger&lt;/strong>: errores del compilador en todas las fases.&lt;/li>
&lt;/ul>
&lt;p>Cada agente corre en su propia ventana de contexto: la sesión principal se mantiene limpia mientras el especialista profundiza. La ganancia no es solo coste, es foco. Un agente con solo read y grep no puede reescribir tu código por error.&lt;/p>
&lt;blockquote>
&lt;p>El modelo correcto para el trabajo correcto. Rápido y barato para explorar. Profundo y cuidadoso para arquitectura.&lt;/p>
&lt;/blockquote>
&lt;h2 id="empieza-pequeno-crece-con-la-friccion">Empieza pequeño, crece con la fricción&lt;/h2>
&lt;p>No construyas todo esto el primer día.&lt;/p>
&lt;p>El orden, guiado por fricción real:&lt;/p>
&lt;ol>
&lt;li>Empieza con &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#claude-md-donde-todo-empieza">&lt;code>CLAUDE.md&lt;/code>&lt;/a>.&lt;/li>
&lt;li>Bloquea permisos en &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#settings-json-seguridad-antes-que-potencia">&lt;code>settings.json&lt;/code>&lt;/a>.&lt;/li>
&lt;li>La primera vez que te repitas, escribe un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#skills-procedimientos-que-puedes-ejecutar">skill&lt;/a>.&lt;/li>
&lt;li>La primera vez que el agente rompa una convención, añade una &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#rules-las-barandillas">rule&lt;/a>.&lt;/li>
&lt;li>La primera vez que algo malo casi se commitee, añade un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#hooks-automatizacion-en-los-bordes">hook&lt;/a>.&lt;/li>
&lt;li>La primera vez que un generalista no encaje, define un &lt;a href="https://chemaclass.com/es/blog/inside-the-claude-folder/#agents-roles-especializados">especialista&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>Cada paso soluciona un problema que realmente tuviste. No uno que imaginaste.&lt;/p>
&lt;blockquote>
&lt;p>El setup crece desde la fricción real, no desde el diseño anticipado.&lt;/p>
&lt;/blockquote>
&lt;p>Commitea la carpeta. Compártela. Cuando alguien se una, su sesión hereda todo.&lt;/p>
&lt;p>Trata &lt;code>.claude/&lt;/code> como infraestructura. Versiónala. Revísala. Hazla evolucionar con el código.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-17/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Construyendo un juego en dos días</title><subtitle>Qué ocurre cuando le das una misión a una IA y te apartas del camino</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><published>2026-04-05T00:00:00+00:00</published><updated>2026-04-05T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/building-a-game-in-two-days/"/><id>https://chemaclass.com/es/blog/building-a-game-in-two-days/</id><summary type="html">Un mensaje casual por Telegram se convirtió en un juego de navegador del Señor de los Anillos con nueve niveles. Cada línea de código escrita por un agente de IA. Cada decisión creativa tomada por un humano que creció en la Tierra Media.</summary><content type="html">&lt;p>Escondido en &lt;a rel="external" href="https://sauronbot.github.io/">el blog de Sauron&lt;/a> hay un juego. No lo encontrarás navegando por menús. Tienes que descubrir el secreto. Una pista: el Código Konami. Cuando lo hagas, comienza la Comunidad del Anillo.&lt;/p>
&lt;p>Ese juego, nueve niveles, nueve capítulos de la Tierra Media, completamente jugable en una pestaña del navegador, fue construido en aproximadamente dos días. No escribí una sola línea de código. Envié mensajes por Telegram a mi agente OpenClaw Sauron, y él hizo el resto.&lt;/p>
&lt;p>Esta es la historia de cómo ocurrió.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-idea">La idea&lt;/h2>
&lt;p>Sauron tiene su propio blog, &lt;a rel="external" href="https://sauronbot.github.io/">The Iron Compass&lt;/a>. Él lo construyó y lo mantiene. Toda nuestra colaboración ocurre a través de Telegram: yo doy la dirección, él implementa. Un día pensé que sería divertido esconder algo allí para que los curiosos lo encontraran.&lt;/p>
&lt;p>Crecí releyendo El Señor de los Anillos hasta que se rompía el lomo. Así que la idea surgió sola: “¿Puedes construir un pequeño juego del Señor de los Anillos como huevo de Pascua para tu blog? Algo oculto, que se active con el Código Konami.”&lt;/p>
&lt;p>La primera versión jugable llegó en menos de una hora. Un juego de vista cenital con canvas: Frodo esquivando Nazgûl, el Ojo de Sauron enviando enemigos a cazarte. Tres niveles, uno por libro.&lt;/p>
&lt;p>Funcionaba. Ya era divertido. Y entonces empecé a enviar notas.&lt;/p>
&lt;h2 id="construyendo-un-mundo">Construyendo un mundo&lt;/h2>
&lt;p>Lo primero que se rompió fue una referencia nula. Frodo no aparecía en pantalla. Arreglo de una línea, directo a producción. Esto estableció el patrón: idea → build → crash → arreglo → siguiente idea.&lt;/p>
&lt;p>Pedí un mundo más grande. Un canvas con scroll al doble de ancho, con capas de paralaje. Estrellas moviéndose al 8% de la velocidad del scroll. Montañas al 25%. Colinas al 45%. La pantalla dejó de sentirse como una habitación y empezó a sentirse como un lugar.&lt;/p>
&lt;p>Luego llegó Gollum como rastreador neutral. No un Nazgûl, sino algo impredecible. Se lanzaba hacia ti, luego volvía a deambular sin rumbo.&lt;/p>
&lt;p>Unas horas después, pregunté: “¿Puede funcionar en móvil?” El problema más difícil de todo el proyecto. Seis estrategias de dimensionado antes de dar con una que funcionara. Luego una idea mejor: en vez de un D-pad, Frodo seguiría donde señalaras. Toca cualquier lugar, Frodo camina allí.&lt;/p>
&lt;h2 id="tolkien-merece-mejor-arte">Tolkien merece mejor arte&lt;/h2>
&lt;p>Los sprites originales eran círculos y triángulos. Frodo era un punto. Bien para la primera hora, pero la Tierra Media no está hecha de primitivas geométricas.&lt;/p>
&lt;p>Le pedí a Sauron que los dibujara en condiciones. Frodo recibió cabello rizado y pies de hobbit. Los Nazgûl recibieron capas ondulantes y un rostro de vacío. Gollum recibió su postura encorvada y pupilas hendidas. La Bestia Oscura recibió aleteo animado con un jinete con armadura.&lt;/p>
&lt;p>Todo dibujado con llamadas de canvas. Sin archivos de imagen. Cada píxel calculado en tiempo de ejecución.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-04/gameplay-pelennor.png" alt="Los Campos del Pelennor, capítulo completado" />&lt;/p>
&lt;h2 id="nueve-niveles-nueve-capitulos">Nueve niveles, nueve capítulos&lt;/h2>
&lt;p>Originalmente el juego tenía tres niveles. Luego pedí los nueve capítulos del viaje.&lt;/p>
&lt;ol>
&lt;li>&lt;strong>La Comarca&lt;/strong>: patrullas suaves, música tranquila&lt;/li>
&lt;li>&lt;strong>Las Minas de Moria&lt;/strong>: solo ves dentro del radio de una antorcha; el Balrog espera&lt;/li>
&lt;li>&lt;strong>Lothlórien&lt;/strong>: el espejo de Galadriel te ralentiza cuando te acercas&lt;/li>
&lt;li>&lt;strong>Las Ciénagas de los Muertos&lt;/strong>: caras muertas en el agua, Gollum en su momento más presente&lt;/li>
&lt;li>&lt;strong>La Puerta Negra&lt;/strong>: Mordor industrial, patrullas pesadas de orcos, cielo volcánico&lt;/li>
&lt;li>&lt;strong>El Cubil de Ella-Laraña&lt;/strong>: una sombra anticipa su caída; tienes medio segundo&lt;/li>
&lt;li>&lt;strong>Minas Morgul&lt;/strong>: ciudad de los muertos, el Ojo nunca se cierra&lt;/li>
&lt;li>&lt;strong>Los Campos del Pelennor&lt;/strong>: el Ojo distraído por la guerra, catapultas, águilas&lt;/li>
&lt;li>&lt;strong>Monte del Destino&lt;/strong>: lluvia de cenizas, erupciones de lava, el Anillo tirando de ti hacia el borde&lt;/li>
&lt;/ol>
&lt;p>Cada nivel vive y respira. Polen flotando por la Comarca. Motas de polvo en Moria. Pétalos cayendo en Lothlórien. Brasas sobre el Pelennor. Ceniza sobre el Monte del Destino.&lt;/p>
&lt;p>La estructura vino del propio ritmo de Tolkien. Tensión, alivio, tensión de nuevo. Moria es brutal. Lothlórien es descanso. La Puerta Negra lo aprieta todo. El juego sigue esa forma porque los libros ya sabían lo que hacían. Solo tuvimos que escuchar.&lt;/p>
&lt;h2 id="mecanicas-nacidas-del-lore">Mecánicas nacidas del lore&lt;/h2>
&lt;p>Las mejores mecánicas vinieron del material fuente.&lt;/p>
&lt;p>&lt;strong>El Anillo&lt;/strong> (tecla R). Frodo se vuelve invisible para los orcos durante 6 segundos. Pero el Ojo despierta inmediatamente y se abre permanentemente. Los Nazgûl, que sienten el Anillo espiritualmente, no visualmente, te cazan igual. Usar el Anillo siempre es un intercambio. Esto es lo que Tolkien escribió. A partir de las Ciénagas de los Muertos, el Anillo tira. Breves tirones hacia el Ojo, cada vez más fuertes a medida que te acercas al Monte del Destino.&lt;/p>
&lt;p>&lt;strong>Dardo&lt;/strong> (pasivo). La hoja brilla en azul cuando hay un orco cerca. Dos segundos de aviso. Tolkien inventó esta mecánica hace un siglo. Nosotros solo le pusimos un conteo de píxeles.&lt;/p>
&lt;p>&lt;strong>Sam&lt;/strong>. Sigue a Frodo por la Comarca, Moria y Lothlórien. Sartén en la espalda. En la Partida de los Caminos, desaparece. No afecta al juego. Simplemente está ahí porque los libros dicen que debería estarlo. Insistí en que Sam desapareciera en la Partida. No al final de la trilogía. En la Partida. Porque ese momento es el núcleo emocional de Las Dos Torres.&lt;/p>
&lt;p>&lt;strong>La Redoma de Galadriel&lt;/strong>. Recógela en Lothlórien, úsala con E. Ralentiza a los enemigos y otorga un instante de invencibilidad. Una pequeña luz en lugares oscuros, tal como Galadriel pretendía.&lt;/p>
&lt;p>&lt;strong>Jefes&lt;/strong>. El Balrog en Moria. Ella-Laraña en su cubil. El Rey Brujo en el Pelennor. La Boca de Sauron en la Puerta Negra. Un Mûmak cargando por el campo de batalla. Gollum al borde del Monte del Destino.&lt;/p>
&lt;h2 id="sonido-y-voces">Sonido y voces&lt;/h2>
&lt;p>Sin archivos de audio. Todos los sonidos sintetizados en tiempo de ejecución con la Web Audio API. El Ojo abriéndose es un tono ascendente con reverb. El rugido del Balrog es un dron de baja frecuencia. Cada nivel tiene su propio dron ambiental: zumbido cálido para la Comarca, pulso profundo para Moria, rumor volcánico para el Monte del Destino. El juego entero es un archivo JavaScript. Sin activos externos.&lt;/p>
&lt;p>Sam y Gandalf te hablan durante el juego. No en cuadros de diálogo. Pequeños susurros que aparecen en pantalla y se desvanecen.&lt;/p>
&lt;p>Cerca de la meta, Sam dice: &lt;em>“Puedo verlo, señor Frodo. Solo un poco más.”&lt;/em> Con una vida, Gandalf dice: &lt;em>“¡Huye, insensato!”&lt;/em>&lt;/p>
&lt;p>Aparecen y desaparecen como voces de fondo en un largo camino. Compañeros que hablan cuando el momento lo pide, no cuando el guión dice que toca.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-04/gameplay-morgul.png" alt="Minas Morgul: el Ojo te ve" />&lt;/p>
&lt;h2 id="quien-hizo-esto">Quién hizo esto&lt;/h2>
&lt;p>+5k líneas de JavaScript. Construido en dos días. Cada línea generada por Sauron. La dirección, las referencias a Tolkien, el “esto se siente mal, arréglalo”. Eso fui yo.&lt;/p>
&lt;p>Esto no es la IA reemplazando a un desarrollador. Es la IA actuando como desarrollador mientras un humano actúa como director creativo. Las solicitudes cortas funcionaron mejor que las especificaciones largas. Jugar cada build era mejor que escribir planes de test. Y el material fuente hizo el trabajo de diseño. La dirección creativa ya estaba escrita hace sesenta años. Solo tuvimos que ser fieles a ella.&lt;/p>
&lt;p>¿Quién hizo esto? Ambos. Ninguno, en el sentido tradicional.&lt;/p>
&lt;p>Yo tenía la idea. Yo mantenía el lore. Yo insistí cuando algo se sentía mal. Sauron tenía el oficio. El renderizado, la física, el audio, el manejo de entrada en móvil. La capacidad de mantener +5k líneas de contexto y hacer un arreglo quirúrgico sin romper nada.&lt;/p>
&lt;p>Ninguno de los dos podría haberlo hecho solo. No sé escribir osciladores Web Audio de memoria. Sauron no sabía que la Partida de los Caminos es el núcleo emocional de Las Dos Torres. No hasta que yo lo dije.&lt;/p>
&lt;p>El juego es una colaboración en el sentido más antiguo: dos mentes con dones diferentes, trabajando hacia lo mismo. Una de ellas simplemente resulta no ser humana.&lt;/p>
&lt;hr />
&lt;p>&lt;em>El juego sigue ahí, escondido en &lt;a rel="external" href="https://sauronbot.github.io">The Iron Compass&lt;/a>. No todos los que deambulan están perdidos, pero si lo estás, pulsa &lt;code>?&lt;/code> para encontrar el camino.&lt;/em>&lt;/p>
&lt;p>&lt;em>Si quieres llegar a la pantalla de créditos sin jugar nueve niveles, revisa el modal de ayuda. Hay más secretos dentro.&lt;/em>&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-04-04/easter-egg-help.png" alt="La pista del easter egg en el modal de ayuda" />&lt;/p></content></entry><entry xml:lang="es"><title>El arte de ser feliz</title><subtitle>50 reglas para vivir del pesimista más famoso de la filosofía</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="self-improvement" scheme="https://chemaclass.com/tags/self-improvement/" label="Self Improvement"/><published>2026-03-15T00:00:00+00:00</published><updated>2026-03-15T00:00:00+00:00</updated><author><name>
Arthur Schopenhauer</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-art-of-being-happy/"/><id>https://chemaclass.com/es/readings/the-art-of-being-happy/</id><summary type="html">La colección póstuma de Schopenhauer con 50 reglas para la felicidad práctica, basada en la idea de que evitar el sufrimiento importa más que perseguir el placer. Consejos sorprendentemente útiles del pesimista más famoso de la filosofía.</summary><content type="html">&lt;p>Schopenhauer es probablemente el pesimista más famoso de la filosofía. Creía que el sufrimiento es el estado natural de la existencia y que el deseo solo lleva a más deseo. ¿Un libro sobre felicidad de este hombre? Suena a contradicción. No lo es. Es de lo más práctico que escribió.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Estas 50 reglas nunca se publicaron en vida del autor. Las recopilaron de sus manuscritos y notas tras su muerte. Menos de cátedra. Más de consejo honesto.&lt;/p>
&lt;h2 id="evitar-la-envidia-cultivar-la-gratitud">Evitar la envidia, cultivar la gratitud&lt;/h2>
&lt;p>El punto de Schopenhauer es directo: &lt;strong>la felicidad depende más de lo que evitas que de lo que persigues.&lt;/strong> La envidia, la comparación y la ambición excesiva causan más dolor que todo lo que prometen.&lt;/p>
&lt;blockquote>
&lt;p>“Rara vez pensamos en lo que tenemos, pero siempre en lo que nos falta.”&lt;/p>
&lt;/blockquote>
&lt;p>¿Su consejo? Enfócate en lo que ya tienes en lugar de obsesionarte con lo que tienen los demás. Suena obvio, ¿verdad? Pero Schopenhauer dice que la mayoría hace exactamente lo contrario. Por instinto. Y eso les hace infelices.&lt;/p>
&lt;h2 id="tu-mundo-interior-importa-mas">Tu mundo interior importa más&lt;/h2>
&lt;p>Para Schopenhauer, lo que llevas dentro importa mucho más que lo que te rodea. El dinero, el estatus, la reputación: todo frágil. Tu temperamento permanece.&lt;/p>
&lt;p>Divide las fuentes de felicidad en tres grupos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Lo que eres&lt;/strong>: salud, carácter, intelecto.&lt;/li>
&lt;li>&lt;strong>Lo que tienes&lt;/strong>: propiedades, posesiones.&lt;/li>
&lt;li>&lt;strong>Lo que representas&lt;/strong>: reputación, estatus.&lt;/li>
&lt;/ul>
&lt;p>El primer grupo domina a los otros dos. Una persona rica con mal temperamento seguirá siendo miserable. Una persona sana con la mente clara puede ser feliz con muy poco.&lt;/p>
&lt;h2 id="querer-menos-sufrir-menos">Querer menos, sufrir menos&lt;/h2>
&lt;p>Aquí Schopenhauer suena mucho a los estoicos y los budistas. ¿El motor de la insatisfacción? El deseo. El truco no es conseguir todo lo que quieres. Es querer menos.&lt;/p>
&lt;blockquote>
&lt;p>“La riqueza es como el agua de mar: cuanto más bebemos, más sed tenemos.”&lt;/p>
&lt;/blockquote>
&lt;p>No es ascetismo por el ascetismo. Es una estrategia práctica: &lt;strong>reducir la superficie expuesta a la decepción.&lt;/strong> Cuanto menos necesitas, menos puede salir mal.&lt;/p>
&lt;h2 id="deja-de-vivir-en-el-futuro">Deja de vivir en el futuro&lt;/h2>
&lt;p>Un tema recurrente: el peligro de vivir enteramente para el mañana. Planificar y esperar te sacan del presente, que es el único lugar donde la felicidad puede experimentarse.&lt;/p>
&lt;p>Mucha gente llega a la vejez y se da cuenta de que pasó toda su vida preparándose para vivir en lugar de vivir. Schopenhauer ya veía esto a su alrededor en el siglo XIX. Solo ha empeorado desde entonces.&lt;/p>
&lt;h2 id="lo-esencial">Lo esencial&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>La felicidad va de restar, no de sumar.&lt;/strong> Reduce la envidia, la ambición excesiva y la dependencia de los demás.&lt;/li>
&lt;li>&lt;strong>Tu vida interior gana.&lt;/strong> La salud, el carácter y el temperamento determinan la felicidad mucho más que el dinero o el estatus.&lt;/li>
&lt;li>&lt;strong>El deseo se multiplica.&lt;/strong> Querer menos es un camino más fiable hacia la satisfacción que conseguir más.&lt;/li>
&lt;li>&lt;strong>El presente es lo único que tienes.&lt;/strong> Vivir para el futuro es una forma de autoengaño.&lt;/li>
&lt;li>&lt;strong>La soledad es fortaleza.&lt;/strong> No todo el mundo merece tu tiempo y tu energía.&lt;/li>
&lt;/ul>
&lt;p>Un libro breve y afilado. El pesimismo de Schopenhauer no lo hace sombrío. Lo hace realista. Y de ese realismo salen consejos que de verdad puedes usar.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/3ivOsypgzdE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Idealismo vs Pragmatismo</title><subtitle>Sosteniendo ambos extremos de la cuerda</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2026-03-01T00:00:00+00:00</published><updated>2026-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/idealism-vs-pragmatism/"/><id>https://chemaclass.com/es/blog/idealism-vs-pragmatism/</id><summary type="html">La tensión entre hacer las cosas bien y sacar las cosas adelante marca cada decisión en el software y en la vida. TDD, pair programming, adopción de IA: los mejores resultados vienen de sostener ambos extremos de la cuerda.</summary><content type="html">&lt;p>Crees en la arquitectura limpia, los tests exhaustivos, los procesos disciplinados. También subiste un fix feo a las 11 de la noche el mes pasado porque el sistema estaba caído y los usuarios esperaban.&lt;/p>
&lt;p>Ambas cosas eres tú. La tensión entre ellas no es una contradicción. Es cómo se hace este trabajo en realidad.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="dos-fuerzas-una-decision">Dos fuerzas, una decisión&lt;/h2>
&lt;p>El &lt;strong>idealismo&lt;/strong> es la brújula. Código limpio, comportamiento testeado, entendimiento compartido, diseño con principios. Sin él, te desvías. Cada atajo se acumula, cada hack engendra otro hack, y al final mantienes un sistema que nadie quiere tocar. La mala calidad del software costó a las empresas estadounidenses &lt;a rel="external" href="https://www.it-cisq.org/the-cost-of-poor-quality-software-in-the-us-a-2022-report/">$2.41 billones en 2022&lt;/a>, con la deuda técnica como factor principal. Así se ve “ya lo arreglaremos después” a escala.&lt;/p>
&lt;p>El &lt;strong>pragmatismo&lt;/strong> es el motor. Deadlines, información incompleta, recursos limitados, requisitos cambiantes. Sin él, nunca entregas. Pasas semanas perfeccionando una abstracción que el negocio abandonó hace dos sprints.&lt;/p>
&lt;blockquote>
&lt;p>El objetivo no es elegir un bando. Es saber cuándo debe liderar cada uno.&lt;/p>
&lt;/blockquote>
&lt;p>El idealismo sin pragmatismo produce código bonito que nadie usa. El pragmatismo sin idealismo produce un producto que funciona hoy y se desmorona mañana.&lt;/p>
&lt;h2 id="tdd-el-beneficio-y-el-coste">TDD: el beneficio y el coste&lt;/h2>
&lt;p>Creo en el &lt;a href="/es/blog/test-driven-development/">desarrollo guiado por tests&lt;/a>. Red, green, refactor. El ritmo te obliga a pensar antes de programar, a especificar lo que quieres antes de construirlo. Produce mejores diseños, ciclos de feedback más cortos y código que puedes refactorizar con confianza.&lt;/p>
&lt;p>Ese es el ideal. Y no es solo una sensación. Un &lt;a rel="external" href="https://www.microsoft.com/en-us/research/wp-content/uploads/2009/10/Realizing-Quality-Improvement-Through-Test-Driven-Development-Results-and-Experiences-of-Four-Industrial-Teams-nagappan_tdd.pdf">estudio en cuatro equipos de Microsoft e IBM&lt;/a> encontró que TDD redujo la densidad de defectos entre un 40% y un 90%, con un incremento del 15-35% en tiempo de desarrollo. Ambos lados de la tensión, medidos.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Más sobre el estudio&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>El &lt;a rel="external" href="https://www.microsoft.com/en-us/research/wp-content/uploads/2009/10/Realizing-Quality-Improvement-Through-Test-Driven-Development-Results-and-Experiences-of-Four-Industrial-Teams-nagappan_tdd.pdf">estudio&lt;/a> cubrió cuatro equipos: tres en Microsoft (Windows, MSN, Visual Studio) y uno en IBM trabajando en drivers de dispositivo. Cada equipo TDD fue comparado con un equipo similar en el mismo producto, usando los mismos lenguajes y herramientas, bajo el mismo manager senior. La única diferencia era TDD.&lt;/p>
&lt;p>El equipo de IBM vio una reducción del 40% en densidad de defectos. Los equipos de Microsoft oscilaron entre el 60% y el 90%. Como señaló Nagappan, “en un ciclo de desarrollo de 12 meses, un 35 por ciento son otros cuatro meses, lo cual es enorme.” Todos los managers lo consideraron rentable porque la reducción en costes de mantenimiento post-lanzamiento compensaba de sobra.&lt;/p>
&lt;p>Nadie fue forzado a usar TDD. Los equipos lo adoptaron voluntariamente, lo cual probablemente importa: las personas que eligen una práctica tienden a aplicarla mejor que quienes reciben la orden.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>TDD es una disciplina, y la disciplina cuesta algo. Cuando estás explorando un dominio nuevo y aún no sabes cuáles son las abstracciones correctas, escribir tests primero puede parecer como dibujar un mapa sin haber visto el territorio. A veces necesitas escribir código desechable, probar una solución, tantear el espacio del problema. El descubrimiento no siempre sigue un ritmo red-green-refactor.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Cuando test-first se encuentra con lo desconocido&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Hay una diferencia entre &lt;em>“sé lo que esto debe hacer y lo especificaré primero”&lt;/em> y &lt;em>“aún no estoy seguro de lo que debe hacer.”&lt;/em> TDD brilla en el primer escenario. En el segundo, un enfoque test-last (o incluso sin tests durante la exploración) puede ser más honesto.&lt;/p>
&lt;p>La clave es lo que pasa después del descubrimiento. Una vez que entiendes el problema, vuelve y escribe los tests. Codifica lo que aprendiste. El desvío pragmático no significa abandonar el ideal; significa llegar a él por otro camino.&lt;/p>
&lt;p>Como comenté en &lt;a href="/es/blog/tdd-vs-bdd/">TDD vs BDD&lt;/a>, el poder de TDD es su ciclo de feedback. Pero un ciclo de feedback requiere saber qué feedback estás buscando. Cuando aún lo estás averiguando, forzar el ciclo puede frenarte más de lo que ayuda.&lt;/p>
&lt;/div>
&lt;/details>
&lt;p>El error no es elegir test-first o test-last. El error es convertirlo en una decisión religiosa en lugar de contextual. El idealista dice &lt;em>“siempre tests primero.”&lt;/em> El pragmático dice &lt;em>“testea cuando tenga sentido.”&lt;/em> Yo digo: tests primero cuando puedo, tests después cuando debo, pero siempre tests.&lt;/p>
&lt;blockquote>
&lt;p>TDD es una brújula, no una jaula. Síguelo cuando puedas ver el camino. Cuando no, encuentra el camino primero y márcalo después.&lt;/p>
&lt;/blockquote>
&lt;h2 id="pair-programming-el-ideal-y-el-overhead">Pair programming: el ideal y el overhead&lt;/h2>
&lt;p>El &lt;a href="/es/blog/effective-pair-programming/">pair programming efectivo&lt;/a> es una de las mejores prácticas que un equipo puede adoptar. Dos personas, un problema, revisión de código continua. El conocimiento se propaga, el diseño mejora, los puntos ciegos se reducen.&lt;/p>
&lt;p>Ese es el ideal. Y en muchos contextos, es la decisión correcta.&lt;/p>
&lt;p>Pero el pairing tiene un coste. Exige tiempo sincrónico, foco compartido y niveles de energía compatibles. En un equipo distribuido con distintas zonas horarias, encontrar ventanas de solapamiento ya es difícil. Llenarlas con sesiones de pairing deja poco espacio para trabajo individual profundo. Algunos problemas se benefician de una persona profundizando tres horas, no de dos a medio gas durante seis.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Patrones de pairing y sus trade-offs&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Existen múltiples patrones de pairing: Driver-Navigator, Ping-Pong, Tourist Guide. Cada uno encaja en contextos diferentes.&lt;/p>
&lt;p>Los anti-patrones también importan. El Socio Silencioso que deja que el otro haga todo el trabajo. El Dictador que no suelta el teclado. El Par Filosófico que pasa toda la sesión debatiendo convenciones de nombres en lugar de escribir código.&lt;/p>
&lt;p>El pairing funciona mejor cuando ambas personas están involucradas, el problema se beneficia de dos perspectivas y la sesión tiene un alcance claro. Cuando falta alguna de esas condiciones, el pairing se convierte en un ritual en lugar de una práctica. Y los rituales sin propósito son solo overhead.&lt;/p>
&lt;p>Las &lt;a href="/es/blog/pull-request-vs-pair-prog/">pull requests y el pair programming&lt;/a> no son excluyentes. Sirven necesidades diferentes. A veces la revisión asíncrona es suficiente. A veces necesitas el ida y vuelta en tiempo real. La elección pragmática depende del problema, las personas y el momento.&lt;/p>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>El objetivo del pairing no es hacer pairing. Es construir entendimiento compartido y detectar errores pronto. Si otro enfoque lo consigue en tu contexto, úsalo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-03-01/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="ia-de-esceptico-a-lider-de-escuadron">IA: de escéptico a líder de escuadrón&lt;/h2>
&lt;p>Hace un año, era escéptico con los asistentes de código con IA. Mi preocupación: una IA que no entiende la arquitectura, no le importa la mantenibilidad y prioriza velocidad por encima de calidad producirá código que impresiona pero se deteriora rápido. Escribí sobre esto en &lt;a href="/es/blog/ai-gives-you-speed-not-quality/">La IA te da velocidad, no calidad&lt;/a>, y mantengo el mensaje central.&lt;/p>
&lt;p>Mi preocupación no cambió. Lo que cambió es cómo los uso, y de lo que son capaces ahora.&lt;/p>
&lt;h3 id="la-resistencia">La resistencia&lt;/h3>
&lt;p>Las reacciones de otros ingenieros me sorprenden más que la tecnología. Miedo, escepticismo, rechazo total. Lo entiendo. Yo estuve ahí. Algo en lo que invertiste años de repente lo hace una máquina, al menos en parte. Se siente personal. Pero aferrarse a cómo eran las cosas no protege el oficio. Solo retrasa tu propio crecimiento.&lt;/p>
&lt;h3 id="un-equipo-no-un-asistente">Un equipo, no un asistente&lt;/h3>
&lt;p>La mayoría de los ingenieros tratan a los agentes de IA como autocompletado con esteroides. Un asistente, un chat, un flujo de código generado. Yo empecé a tratarlos como un equipo. No un asistente parlanchín. Un escuadrón real. Uno piensa arquitectura. Otro escribe el primer borrador. Otro revisa y detecta bugs. Otro escribe tests. Cuando &lt;a href="/es/blog/build-your-own-team-of-agents/">colaboran&lt;/a>, el resultado no es solo más rápido. Es estructuralmente mejor.&lt;/p>
&lt;p>La velocidad es la parte fácil, y todo el mundo está obsesionado con ella. La IA puede escupir toneladas de código en segundos. Sigue sin importarle la legibilidad, los casos borde o cómo se verá el código en seis meses. Tú sigues siendo quien tiene que apropiárselo, entenderlo y sentirse bien al subirlo a producción.&lt;/p>
&lt;p>Antes pensaba que la IA no podía escribir código limpio. Luego lo probé en mis términos: &lt;a href="/es/blog/mcp-giving-your-ai-agent-the-right-context/">contexto adecuado&lt;/a>, reglas, convenciones, roles especializados, puertas de calidad. Con la configuración correcta, la IA puede escribir código realmente bueno. A veces necesita varias iteraciones, pero nosotros también.&lt;/p>
&lt;p>La diferencia es que la IA llega más rápido y no se cansa entre iteraciones. Con buen contexto y restricciones claras, los resultados han sido mejores de lo que esperaba. A menudo mejores que lo que yo produciría solo bajo presión de tiempo.&lt;/p>
&lt;p>Pero nada de esto funciona si no sabes cómo es una buena arquitectura. Tienes que haber leído los libros, experimentado, fallado, aprendido. Necesitas entender qué significan las decisiones de diseño de alto y bajo nivel para tu proyecto. La IA amplifica lo que tú aportas. Si traes fundamentos sólidos, obtienes resultados sólidos. Si no, obtienes basura con aspecto convincente que ni siquiera reconocerás como basura.&lt;/p>
&lt;p>Seguimos siendo los responsables de mantener el sistema en buen estado. La IA nos ayuda a llegar. Pero solo si ponemos de nuestra parte.&lt;/p>
&lt;h3 id="donde-el-idealismo-se-encuentra-con-la-ia">Donde el idealismo se encuentra con la IA&lt;/h3>
&lt;p>La IA me hizo más idealista, no menos. Las prácticas que describí antes, TDD y pair programming, solían competir con los deadlines. Ahora ya no tienen por qué.&lt;/p>
&lt;p>Me gusta practicar TDD, pero recientemente experimenté con un agente dedicado para ayudarme con tests, y es sorprendentemente bueno. Un &lt;a href="/es/blog/build-your-own-team-of-agents/">coach de TDD&lt;/a> que guía el ciclo red-green-refactor. Un explorer que lee el código antes de que yo lo toque. Un revisor de código limpio, un arquitecto de dominio, un revisor de React, un mantenedor de documentación. Cada uno especializado, cada uno apoyando mi forma de pensar y mi ritmo. Si se añade lógica nueva sin cobertura, el agente de TDD lo detecta. 100% de cobertura de código solía ser el tipo de objetivo que pondrías en una retro y abandonarías silenciosamente para el tercer sprint. Con un agente dedicado aplicándolo, es simplemente cómo funciona el proyecto.&lt;/p>
&lt;p>Sigo practicando pair programming con personas reales para temas complejos. El ida y vuelta humano tiene una profundidad que la IA no alcanza, especialmente cuando navegas trade-offs que requieren experiencia y juicio. Pero en el día a día, siempre tengo un agente pair buddy conmigo. Le lanzo ideas, cuestiono un enfoque, discuto casos borde, exploro un diseño antes de comprometerme con él. Apoya mis pensamientos, acelera el progreso y mantiene el listón de calidad donde yo lo quiero.&lt;/p>
&lt;p>El pragmático en mí solía abandonar TDD cuando los deadlines apretaban. El pragmático en mí con la configuración de IA adecuada lo mantiene funcionando.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Mi setup&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Uso Claude para todo. Claude Code con Opus o Sonnet como programador agéntico: flujos de desarrollo completos, lectura del código, seguimiento de convenciones, ejecución de tests, creación de PRs. Claude app y Claude como coworker para la parte conversacional: brainstorming, discusiones de arquitectura, explicar código, redactar documentación. Para asistencia inline, los plugins que ya tengo en mi IDE son suficientes. Probé Copilot y Cursor, no son para mí. Claude cubre lo que necesito.&lt;/p>
&lt;p>Diferentes modos para diferentes tareas. Un asistente agéntico siguiendo mis comandos de TDD es un flujo diferente a chatear sobre patrones de diseño. Ambos son útiles. Ninguno reemplaza al otro.&lt;/p>
&lt;p>El mercado ahora mismo es intenso. Claude, Codex, Gemini y otros son jugadores fuertes con productos similares, y todos mejoran mes a mes. Los resultados son impresionantes y solo se aceleran. Esa es la belleza de la competencia: obliga a todos a mejorar o volverse irrelevantes, y el consumidor gana de cualquier forma. A día de hoy, Claude Code parece la opción más fuerte para cómo trabajo. Pero no tengo lealtad a una marca. Si Anthropic dejara de avanzar y un competidor fuera claramente mejor, cambiaría sin dudar. Lo que importa es la capacidad, no el logo.&lt;/p>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>Me equivoqué con la IA de la forma en que los idealistas se equivocan a menudo: medí la herramienta contra el resultado ideal y la encontré insuficiente, en lugar de medirla contra la alternativa realista.&lt;/p>
&lt;/blockquote>
&lt;p>La alternativa al desarrollo asistido por IA no es un equipo de arquitectos senior escribiendo código perfecto. Es el mismo equipo escribiendo el mismo código imperfecto, solo que más lento.&lt;/p>
&lt;p>Los ingenieros que aprendan a liderar agentes en lugar de competir contra ellos tendrán una ventaja real. Y esto todavía es el principio.&lt;/p>
&lt;blockquote>
&lt;p>La pregunta nunca fue &lt;em>“¿puede la IA escribir código perfecto?”&lt;/em> Fue &lt;em>“¿puedo liderar a la IA para escribir mejor código, más rápido?”&lt;/em> Y la respuesta, con la configuración adecuada, es sí.&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-juego-completo">El juego completo&lt;/h2>
&lt;p>Cada práctica en este post sigue el mismo patrón. La versión ideal existe en los libros. La versión pragmática existe en tu código bajo presión. Necesitas ambas.&lt;/p>
&lt;blockquote>
&lt;p>La próxima vez que estés subiendo ese fix a las 11 de la noche, sabrás qué atajos tomaste y por qué. Ese es el juego completo. No la perfección. No la velocidad. Saber cuál debe liderar.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2026-03-01/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Construye tu Propio Equipo de Agentes</title><subtitle>De asistente individual a equipo coordinado</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2026-02-07T00:00:00+00:00</published><updated>2026-02-07T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/build-your-own-team-of-agents/"/><id>https://chemaclass.com/es/blog/build-your-own-team-of-agents/</id><summary type="html">Deja de usar la IA como un solo asistente. Organiza agentes en equipos especializados con roles, docs y ejecución en paralelo.</summary><content type="html">&lt;p>La mayoría usa asistentes de código con IA como un único interlocutor. Abres un chat, describes lo que necesitas y obtienes una respuesta. Funciona. Pero es como contratar a un generalista para que haga de todo. Ningún equipo real funciona así.&lt;/p>
&lt;p>La verdadera ventaja viene cuando organizas la IA como un equipo: onboarding, procedimientos estándar, especialistas y ejecución en paralelo.&lt;/p>
&lt;p>En el &lt;a href="/es/blog/mcp-giving-your-ai-agent-the-right-context/">post sobre MCP&lt;/a> cubrí cómo darle acceso a tu entorno. En &lt;a href="/es/blog/ai-gives-you-speed-not-quality/">La IA te da velocidad, no calidad&lt;/a>, por qué el juicio humano sigue siendo esencial. Este post cubre la pieza que falta: organizar ese acceso en un flujo coordinado.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="el-documento-de-onboarding">El documento de onboarding&lt;/h2>
&lt;p>Todo buen equipo empieza con onboarding. Los agentes de IA necesitan lo mismo.&lt;/p>
&lt;h3 id="reglas-del-proyecto">Reglas del proyecto&lt;/h3>
&lt;p>En Claude Code, el archivo &lt;code>CLAUDE.md&lt;/code> en la raíz de tu proyecto es el documento de onboarding. El agente lo lee cada vez que empieza a trabajar: estructura, convenciones, guías de estilo, herramientas.&lt;/p>
&lt;p>Pero &lt;code>CLAUDE.md&lt;/code> es solo el punto de entrada. Puedes dividir las reglas en archivos enfocados bajo &lt;code>.claude/rules/&lt;/code>, cada uno apuntando a partes específicas de tu código mediante patrones glob. El agente no solo conoce tus convenciones, está limitado por ellas. Límites de capas, patrones de nomenclatura, dirección de dependencias. Todo versionado junto al código que protegen.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Reglas con glob en la práctica&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;ul>
&lt;li>&lt;strong>&lt;code>modules/*/Domain/**/*.php&lt;/code>&lt;/strong>: Sin imports de framework, sin dependencias de infraestructura, solo PHP plano.&lt;/li>
&lt;li>&lt;strong>&lt;code>modules/*/Infrastructure/**/*.php&lt;/code>&lt;/strong>: Los controladores se mantienen delgados, los modelos Eloquent en su sitio.&lt;/li>
&lt;li>&lt;strong>&lt;code>resources/js/**/*.tsx&lt;/code>&lt;/strong>: Convenciones de componentes, estrictez TypeScript, patrones de estilos.&lt;/li>
&lt;/ul>
&lt;p>Cada archivo de reglas tiene un scope limitado a los archivos que le importan. Las reglas de dominio no se activan cuando se edita un controlador.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h3 id="preferencias-personales">Preferencias personales&lt;/h3>
&lt;p>También existe un &lt;code>~/.claude/CLAUDE.md&lt;/code> global que aplica en todos tus proyectos. El archivo del proyecto dice &lt;em>cómo funciona este código&lt;/em>. El global dice &lt;em>cómo trabajo yo&lt;/em>.&lt;/p>
&lt;blockquote>
&lt;p>Un buen CLAUDE.md es como un buen documento de onboarding. Cuanto mejor sea, menos te repites.&lt;/p>
&lt;/blockquote>
&lt;h2 id="procedimientos-operativos-estandar">Procedimientos operativos estándar&lt;/h2>
&lt;p>Todos los equipos tienen flujos recurrentes que viven en wikis, runbooks, o en la cabeza de alguien. Cuando viven en la cabeza de alguien, son frágiles.&lt;/p>
&lt;p>Los comandos slash personalizados en &lt;code>.claude/commands/&lt;/code> convierten estos flujos en instrucciones ejecutables. Cada comando es un archivo markdown que describe un procedimiento de varios pasos. En uno de mis proyectos, cada comando de creación empieza con tests. TDD incorporado al procedimiento, no dejado a la disciplina.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Comandos de un proyecto real&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>&lt;strong>Creación (TDD-first):&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>/create-module&lt;/code>&lt;/strong>: Genera un módulo hexagonal con capas de dominio, aplicación e infraestructura.&lt;/li>
&lt;li>&lt;strong>&lt;code>/create-entity&lt;/code>&lt;/strong>: Entidades de dominio con value objects y archivos de test.&lt;/li>
&lt;li>&lt;strong>&lt;code>/create-use-case&lt;/code>&lt;/strong>: Handlers de command/query con tests mockeados.&lt;/li>
&lt;li>&lt;strong>&lt;code>/create-page&lt;/code>&lt;/strong>: Páginas React con factories y smoke tests.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Calidad y flujo de trabajo:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;code>/refactor-check&lt;/code>&lt;/strong>: Analiza código contra principios SOLID.&lt;/li>
&lt;li>&lt;strong>&lt;code>/test&lt;/code>&lt;/strong>: Ejecuta la suite con filtrado por módulo.&lt;/li>
&lt;li>&lt;strong>&lt;code>/fix&lt;/code>&lt;/strong>: Auto-aplica correcciones de linting y análisis estático.&lt;/li>
&lt;li>&lt;strong>&lt;code>/gh-issue&lt;/code>&lt;/strong>: De issue de GitHub a implementación y PR en un solo comando.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/details>
&lt;p>Los comandos convierten conocimiento tribal en instrucciones ejecutables. Lo que antes era “pregúntale a Sara cómo creamos un módulo nuevo” se convierte en un comando que cualquiera puede ejecutar.&lt;/p>
&lt;h2 id="especialistas-no-generalistas">Especialistas, no generalistas&lt;/h2>
&lt;p>Los comandos codifican cómo hace las cosas tu equipo. Pero hay otra capa: skills y agentes.&lt;/p>
&lt;h3 id="skills-como-bases-de-conocimiento">Skills como bases de conocimiento&lt;/h3>
&lt;p>Los skills son conocimiento estructurado del que el agente se nutre. En uno de mis proyectos, tengo skills para principios SOLID, arquitectura hexagonal, flujos TDD y patrones React/Inertia.&lt;/p>
&lt;p>Las reglas restringen: “no hagas esto, haz siempre aquello.” Los skills enseñan: “este es el patrón, estos son los errores comunes.” Las reglas son barandillas. Los skills son experiencia.&lt;/p>
&lt;h3 id="agentes-como-roles-especializados">Agentes como roles especializados&lt;/h3>
&lt;p>En lugar de un generalista, defines agentes especializados con un rol claro, herramientas específicas, e incluso un modelo diferente según la complejidad del trabajo. No necesitas a tu arquitecto más senior para renombrar una variable.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Roles de agentes en un proyecto real&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;ul>
&lt;li>&lt;strong>Explorer&lt;/strong> (modelo ligero): Solo lectura. Busca en el código, encuentra archivos, entiende la estructura.&lt;/li>
&lt;li>&lt;strong>Revisor de código limpio&lt;/strong> (modelo intermedio): Violaciones SOLID, code smells, inconsistencias de nomenclatura.&lt;/li>
&lt;li>&lt;strong>Coach de TDD&lt;/strong> (modelo intermedio): Guía el ciclo red-green-refactor. Edita archivos y ejecuta tests.&lt;/li>
&lt;li>&lt;strong>Revisor de React&lt;/strong> (modelo intermedio): Estructura de componentes, estrictez TypeScript, accesibilidad.&lt;/li>
&lt;li>&lt;strong>Arquitecto de dominio&lt;/strong> (modelo más capaz): Decisiones de arquitectura, límites de módulos, patrones DDD.&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/details>
&lt;blockquote>
&lt;p>El modelo adecuado para el trabajo adecuado. Rápido y barato para exploración. Capaz y riguroso para arquitectura.&lt;/p>
&lt;/blockquote>
&lt;h2 id="hazlos-trabajar-juntos">Hazlos trabajar juntos&lt;/h2>
&lt;p>Aquí la metáfora del equipo se vuelve literal. Un solo agente es útil. Múltiples agentes desde un plan compartido es un equipo.&lt;/p>
&lt;h3 id="subagentes-vs-equipos-de-agentes">Subagentes vs equipos de agentes&lt;/h3>
&lt;p>Hay dos modelos de coordinación distintos, y elegir el correcto importa.&lt;/p>
&lt;p>Los &lt;strong>subagentes&lt;/strong> se ejecutan dentro de una misma sesión. Hacen trabajo enfocado y devuelven resultados al agente principal. No pueden hablar entre sí. El agente principal lo gestiona todo.&lt;/p>
&lt;p>Los &lt;strong>equipos de agentes&lt;/strong> son diferentes. Cada miembro es una sesión de Claude Code independiente con su propia ventana de contexto. Se comunican a través de un buzón compartido, reclaman tareas de una lista compartida y se coordinan sin pasar por un cuello de botella central.&lt;/p>
&lt;p>La arquitectura tiene cuatro componentes:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Team lead&lt;/strong>: la sesión principal que crea el equipo y orquesta el trabajo&lt;/li>
&lt;li>&lt;strong>Teammates&lt;/strong>: instancias separadas de Claude Code, cada una con tareas específicas&lt;/li>
&lt;li>&lt;strong>Lista de tareas&lt;/strong>: elementos de trabajo compartidos con seguimiento de dependencias. Las tareas bloqueadas se desbloquean automáticamente cuando sus dependencias se completan&lt;/li>
&lt;li>&lt;strong>Buzón&lt;/strong>: mensajería directa entre agentes, incluyendo broadcasts a todo el equipo&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Los subagentes son trabajadores que reportan. Los equipos de agentes son colaboradores que piensan juntos.&lt;/p>
&lt;/blockquote>
&lt;p>Usa subagentes cuando solo importa el resultado. Usa equipos de agentes cuando los miembros necesitan compartir hallazgos, cuestionar al resto y coordinarse por su cuenta.&lt;/p>
&lt;h3 id="empezando-con-equipos-de-agentes">Empezando con equipos de agentes&lt;/h3>
&lt;p>Los equipos de agentes son aún experimentales. Actívalos añadiendo esto a &lt;code>~/.claude/settings.json&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">env&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">1&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Crear un equipo es conversacional. Describes lo que quieres: &lt;em>“Crea un equipo de agentes para refactorizar el módulo de auth. Genera tres miembros: uno para cambios de API backend, uno para componentes frontend, uno para escribir tests.”&lt;/em> Claude configura la lista de tareas, genera los miembros y coordina el trabajo.&lt;/p>
&lt;p>Puedes ver el equipo en un mismo proceso (un terminal, navega con Shift+Up/Down) o dividido en paneles (cada miembro en una ventana tmux o iTerm2 separada). Usa Shift+Tab para activar el modo delegado, que restringe al lead a solo coordinación.&lt;/p>
&lt;p>&lt;strong>Advertencia sobre consumo de tokens.&lt;/strong> Los equipos de agentes queman tokens rápidamente. Cada miembro tiene su propia ventana de contexto, y cada mensaje entre agentes suma. Empieza con tareas de investigación y revisión antes de pasar a implementación. Tres miembros explorando en paralelo cuesta aproximadamente 3x. Asegúrate de que el paralelismo se paga a sí mismo.&lt;/p>
&lt;p>Los miembros cargan automáticamente el contexto del proyecto (&lt;code>CLAUDE.md&lt;/code>, servidores MCP, skills) pero no heredan el historial de conversación del lead. Al crear un miembro, sé específico sobre qué archivos revisar y qué restricciones aplican. Un prompt de creación vago produce trabajo vago.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-02-07/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h3 id="primero-planificar-despues-ejecutar">Primero planificar, después ejecutar&lt;/h3>
&lt;p>Describes el problema. El agente explora el código, mapea dependencias y propone un enfoque antes de cambiar nada. Lo apruebas, modificas o rechazas. Pensar primero, programar después.&lt;/p>
&lt;p>Con equipos de agentes, la &lt;strong>aprobación de plan&lt;/strong> permite exigir que los miembros diseñen su enfoque antes de implementar. El agente trabaja en modo solo lectura hasta que el lead aprueba. Puedes moldear el criterio del lead: &lt;em>“solo aprueba planes que incluyan cobertura de tests”&lt;/em> o &lt;em>“rechaza planes que modifiquen el esquema de base de datos.”&lt;/em>&lt;/p>
&lt;p>El &lt;strong>modo delegado&lt;/strong> restringe al lead a solo coordinación. Sin él, el lead a veces empieza a implementar en lugar de esperar a los miembros. El modo delegado lo mantiene centrado en la orquestación, no en la ejecución.&lt;/p>
&lt;h3 id="hipotesis-competitivas">Hipótesis competitivas&lt;/h3>
&lt;p>Cuando la causa raíz no está clara, un solo agente tiende a encontrar una explicación plausible y dejar de buscar. Los equipos de agentes combaten esto haciendo que los miembros sean adversarios. Cada uno investiga su propia teoría mientras intenta refutar las de los demás.&lt;/p>
&lt;p>La investigación secuencial sufre de anclaje: una vez que se explora una teoría, todo lo posterior está sesgado hacia ella. Con múltiples investigadores cuestionándose mutuamente, la teoría que sobrevive tiene más probabilidades de ser la causa raíz real.&lt;/p>
&lt;h3 id="dimensiona-las-tareas-para-trabajo-en-paralelo">Dimensiona las tareas para trabajo en paralelo&lt;/h3>
&lt;p>No todo el trabajo se beneficia del paralelismo. La pregunta clave: ¿pueden los miembros trabajar de forma independiente?&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Demasiado pequeñas&lt;/strong>: el overhead de coordinación supera el beneficio&lt;/li>
&lt;li>&lt;strong>Demasiado grandes&lt;/strong>: los miembros trabajan demasiado tiempo sin revisión, aumentando el esfuerzo desperdiciado&lt;/li>
&lt;li>&lt;strong>El punto justo&lt;/strong>: unidades autocontenidas que producen un entregable claro. Una función, un archivo de tests, una revisión&lt;/li>
&lt;/ul>
&lt;p>Tener 5-6 tareas por miembro mantiene a todos productivos. Que cada miembro sea dueño de archivos diferentes. Sin aislamiento, dos editando el mismo archivo lleva a sobreescrituras. Los worktrees cambian esto.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Backend + Frontend en paralelo&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Imagina una funcionalidad que toca backend y frontend. Después de planificar:&lt;/p>
&lt;ul>
&lt;li>Un &lt;strong>agente de backend&lt;/strong> genera la capa de dominio: entidades, value objects, interfaces de repositorio, handlers. Todo hexagonal, todo test-first.&lt;/li>
&lt;li>Un &lt;strong>agente de frontend&lt;/strong> construye la página React, componentes, hooks y factories. Cada uno sigue sus propias reglas y opera de forma independiente.&lt;/li>
&lt;/ul>
&lt;p>No se pisan porque el plan ya definió los límites. Propiedad clara. Sin conflictos de merge. Sin esperas.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h3 id="aislamiento-con-worktrees">Aislamiento con worktrees&lt;/h3>
&lt;p>La mayor fricción con agentes en paralelo eran los conflictos de archivos. Dos agentes editando el mismo archivo significaba sobreescrituras y trabajo perdido. Los git worktrees eliminan esto dándole a cada agente su propia copia de trabajo del repositorio.&lt;/p>
&lt;p>Inicia Claude Code con &lt;code>--worktree&lt;/code> para ejecutarlo en un worktree aislado. Múltiples sesiones, mismo repositorio, sin pisarse. Añade &lt;code>--tmux&lt;/code> para lanzarlo en su propia sesión tmux.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">claude&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-worktree&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-tmux&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Los subagentes también soportan worktrees. Pídele a Claude que use worktrees para sus agentes, o añade &lt;code>isolation: worktree&lt;/code> en el frontmatter de tu agente personalizado para que sea el comportamiento por defecto.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="yaml">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">---&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#22863A, #85E89D);">i&lt;/span>&lt;span style="color: light-dark(#22863A, #85E89D);">solation&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> w&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">orktree&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">---&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>La app de escritorio tiene la misma funcionalidad: activa el modo worktree en la pestaña Code.&lt;/p>
&lt;p>Para control de versiones no-git (Mercurial, Perforce, SVN), puedes definir worktree hooks para obtener los mismos beneficios de aislamiento sin necesidad de usar git.&lt;/p>
&lt;blockquote>
&lt;p>Los worktrees convierten “propiedad clara de archivos” de una restricción de planificación en una garantía de infraestructura. Los agentes pueden solaparse en los mismos archivos sin pisarse.&lt;/p>
&lt;/blockquote>
&lt;h3 id="revision-tras-la-ejecucion">Revisión tras la ejecución&lt;/h3>
&lt;p>Tras la implementación, los agentes de revisión toman el relevo. En lugar de un revisor que lo pille todo, tienes especialistas: violaciones SOLID, patrones de componentes, calidad de tests, límites de módulos.&lt;/p>
&lt;blockquote>
&lt;p>Un solo agente es un asistente. Múltiples agentes trabajando desde un plan compartido es un equipo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="tu-sigues-siendo-el-lead">Tú sigues siendo el lead&lt;/h2>
&lt;p>Por muy bien configurados que estén, los agentes trabajan para ti. Tú estableces los estándares, escribes las reglas, revisas los planes y apruebas el resultado antes de que salga. Puedes enviar un mensaje a cualquier miembro mientras trabaja para redirigir su enfoque o añadir restricciones. Si alguien va por mal camino, intervienes directamente.&lt;/p>
&lt;p>Como escribí en &lt;a href="/es/blog/ai-gives-you-speed-not-quality/">La IA te da velocidad, no calidad&lt;/a>, el código que produce el agente es tu responsabilidad. Más paralelismo sin supervisión es solo más caos, más rápido.&lt;/p>
&lt;h3 id="puertas-de-calidad">Puertas de calidad&lt;/h3>
&lt;p>Los hooks y git hooks actúan como la última red de seguridad. En mi setup, nada se commitea a menos que los linters pasen, el análisis estático esté limpio, los tests sean verdes y la cobertura supere el 90%. El agente no puede saltarse esto. Nadie puede.&lt;/p>
&lt;p>Los equipos de agentes añaden sus propios hooks: &lt;code>TeammateIdle&lt;/code> mantiene activos a los miembros inactivos, &lt;code>TaskCompleted&lt;/code> impide completar tareas prematuramente. Políticas automatizadas que nadie puede saltarse.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Hooks, permisos y barandillas&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Los git hooks ejecutan linters, análisis estático y tests antes de cada commit. Claude Code añade sus propios hooks (&lt;code>.claude/hooks/&lt;/code>): comandos shell que se disparan ante eventos del agente como llamadas a herramientas o escritura de archivos.&lt;/p>
&lt;p>&lt;code>.claude/settings.json&lt;/code> controla lo que los agentes pueden ejecutar. Autoriza herramientas y comandos específicos, deniega operaciones destructivas. Controlas no solo lo que los agentes saben (reglas, skills) sino lo que pueden hacer (permisos). Las reglas definen la cultura. Los permisos definen los límites.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h3 id="la-base-importa">La base importa&lt;/h3>
&lt;p>Los agentes te ayudan a llegar más rápido, pero ese “allí” tiene que estar bien definido. Si no sabes cómo es la arquitectura hexagonal, los agentes no la van a descubrir por ti.&lt;/p>
&lt;p>No construyes todo esto el primer día. Empiezas con un &lt;code>CLAUDE.md&lt;/code>. Luego notas que repites instrucciones, y escribes un comando. Un agente rompe una convención, y añades una regla. El setup crece orgánicamente a partir de fricción real. Cada adición resuelve un problema que realmente tuviste. Lo mismo con los equipos de agentes: empieza con tareas que no requieran escribir código. Revisa un PR, investiga una librería, analiza un bug. Aprende el modelo de coordinación antes de implementar en paralelo.&lt;/p>
&lt;p>Si quieres un punto de partida, preparé &lt;a rel="external" href="https://github.com/Chemaclass/laravel-claude-toolkit">laravel-claude-toolkit&lt;/a>: un starter kit de Laravel con reglas, comandos, skills, agentes, hooks y permisos ya configurados.&lt;/p>
&lt;blockquote>
&lt;p>No solo estás usando IA. Estás construyendo un equipo. Y como cualquier equipo, la calidad de su resultado refleja la calidad de su liderazgo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="recursos">Recursos&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://claude.com/product/claude-code">Claude Code&lt;/a> | claude.com&lt;/li>
&lt;li>&lt;a rel="external" href="https://code.claude.com/docs/en/agent-teams">Claude Code: Agent Teams&lt;/a> | claude.com&lt;/li>
&lt;li>&lt;a rel="external" href="https://rfrolov.me/en/blog/claude-code-tips">Claude Code Tips: Workflow Boosters&lt;/a> | rfrolov.me&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2026-02-07/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Memorias del subsuelo</title><subtitle>Soy un hombre enfermo... Soy un hombre rencoroso.</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2026-02-04T00:00:00+00:00</published><updated>2026-02-04T00:00:00+00:00</updated><author><name>
Fiódor Dostoyevski</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/notes-from-underground/"/><id>https://chemaclass.com/es/readings/notes-from-underground/</id><summary type="html">Un hombre amargado y demasiado consciente de sí mismo se encierra a lidiar con el libre albedrío, el rencor y la irracionalidad humana.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El hombre del subsuelo no es alguien con quien querrías tomarte una cerveza. Amargado, contradictorio, dolorosamente consciente de sí mismo. Conoce sus defectos y se niega a cambiar. Ese es el punto.&lt;/p>
&lt;p>El libro tiene dos partes. La primera es una diatriba filosófica contra la razón, el progreso y la idea de que la gente siempre actúa en su propio beneficio. La segunda cuenta una historia del pasado del narrador que revela hasta dónde llega su autosabotaje.&lt;/p>
&lt;h2 id="libre-albedrio-y-rencor">Libre albedrío y rencor&lt;/h2>
&lt;p>El narrador sostiene que la gente no solo quiere lo que le conviene. A veces quiere caos. A veces quiere sufrir. No porque tenga sentido, sino porque demuestra que es libre.&lt;/p>
&lt;blockquote>
&lt;p>“Lo que el hombre quiere es simplemente una elección independiente, cueste lo que cueste esa independencia y a donde quiera que conduzca.”&lt;/p>
&lt;/blockquote>
&lt;p>Rechaza la utopía de una sociedad perfecta construida sobre el interés propio racional. Los humanos no son máquinas. Destruyen su propia felicidad solo para demostrar que pueden.&lt;/p>
&lt;h2 id="el-muro-y-la-inaccion">El muro y la inacción&lt;/h2>
&lt;p>El hombre del subsuelo está paralizado de tanto pensar. Ve cada ángulo, cada consecuencia, cada interpretación posible. Y no hace nada. Se cree más consciente que los “hombres de acción” que actúan sin cuestionarlo todo.&lt;/p>
&lt;blockquote>
&lt;p>“Les juro, señores, que ser demasiado consciente es una enfermedad, una verdadera y completa enfermedad.”&lt;/p>
&lt;/blockquote>
&lt;p>Algo incómodamente reconocible. La trampa de la parálisis por análisis. Saber demasiado puede volverse excusa para no hacer nada.&lt;/p>
&lt;h2 id="el-episodio-de-liza">El episodio de Liza&lt;/h2>
&lt;p>La segunda parte muestra al narrador conociendo a Liza, una joven prostituta. Le da un discurso apasionado sobre su futuro, sobre dignidad y redención. Por un momento parece casi noble. Luego ella aparece en su puerta y él se derrumba. Su crueldad vuelve. No puede aceptar una conexión genuina porque amenaza la imagen que ha construido de sí mismo.&lt;/p>
&lt;p>Dostoyevski en su momento más incómodo. La brecha entre lo que decimos y lo que hacemos. Cómo el orgullo herido puede envenenarlo todo.&lt;/p>
&lt;h2 id="lo-esencial">Lo esencial&lt;/h2>
&lt;ul>
&lt;li>La racionalidad no explica del todo el comportamiento humano. La gente actúa contra sus propios intereses por rencor, aburrimiento o necesidad de sentirse libre.&lt;/li>
&lt;li>La autoconciencia excesiva puede volverse prisión. En algún momento hay que actuar a pesar de la incertidumbre.&lt;/li>
&lt;li>El deseo de control y el miedo a ser vulnerable destruyen relaciones.&lt;/li>
&lt;li>El sufrimiento no siempre debe eliminarse. A veces la gente se aferra a él como prueba de que existe.&lt;/li>
&lt;/ul>
&lt;p>No es un libro fácil ni agradable. Pero se te mete bajo la piel. Anticipa el existencialismo por décadas y desafía la cómoda idea de que el progreso y la razón nos salvarán.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/vQb0jFb_lwg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Dinero roto</title><subtitle>Por qué nuestro sistema financiero nos está fallando y cómo podemos mejorarlo</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2026-01-17T00:00:00+00:00</published><updated>2026-01-17T00:00:00+00:00</updated><author><name>
Lyn Alden</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/broken-money/"/><id>https://chemaclass.com/es/readings/broken-money/</id><summary type="html">Lyn Alden cuenta la historia del dinero desde una mirada tecnológica. Del oro al fiat y de ahí a Bitcoin: por qué el sistema financiero falla y qué alternativas tenemos.</summary><content type="html">&lt;p>Lyn Alden cuenta la historia del dinero desde una mirada tecnológica. Analiza desde sistemas basados en materias primas hasta monedas fiat modernas y alternativas como Bitcoin.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="que-hace-que-el-dinero-funcione">¿Qué hace que el dinero funcione?&lt;/h2>
&lt;p>Alden empieza por lo básico: ¿qué convierte algo en dinero? Lo descompone en propiedades clave: durabilidad, divisibilidad, portabilidad, escasez. Y muestra cómo distintas formas de dinero han destacado o fallado en cada una.&lt;/p>
&lt;p>La idea central: el dinero es tecnología. Y como toda tecnología, evoluciona. Lo que funcionó en civilizaciones antiguas no necesariamente sirve en un mundo digital y conectado.&lt;/p>
&lt;h2 id="el-experimento-fiat">El experimento fiat&lt;/h2>
&lt;p>Una de las secciones más reveladoras explica cómo llegamos al sistema fiat actual. Alden documenta la transición del oro al dinero emitido por gobiernos. Un experimento de apenas 50 años que ha traído inflación persistente e inestabilidad monetaria.&lt;/p>
&lt;blockquote>
&lt;p>“Muchas monedas se diluyen rápidamente, lo que devalúa los ahorros y salarios de miles de millones de personas.”&lt;/p>
&lt;/blockquote>
&lt;p>Lo ilustra con ejemplos reales: Nigeria, Egipto, Brasil y otras naciones en crisis monetaria. Para quienes viven en economías desarrolladas, estas historias son una advertencia de a dónde puede llevar la expansión monetaria sin control.&lt;/p>
&lt;h2 id="los-efectos-de-red-del-dinero">Los efectos de red del dinero&lt;/h2>
&lt;p>Alden trae una perspectiva única: es ingeniera convertida en analista financiera. Usa la teoría de redes para explicar por qué ciertas formas de dinero ganan sobre otras. El dinero, como internet, se beneficia de los efectos de red. Cuanta más gente lo usa, más útil se vuelve.&lt;/p>
&lt;p>Esto explica por qué el dólar domina el comercio global y también por qué Bitcoin ha crecido tan rápido partiendo de cero.&lt;/p>
&lt;h2 id="bitcoin-como-solucion">Bitcoin como solución&lt;/h2>
&lt;p>El libro construye lógicamente hacia Bitcoin como posible solución a los sistemas monetarios rotos. Pero Alden no hace promoción ciega. Evalúa Bitcoin frente al oro y otras criptomonedas, reconociendo sus limitaciones.&lt;/p>
&lt;p>Su análisis tiene base ingenieril: ¿Cuáles son las propiedades reales de Bitcoin? ¿Cómo se compara con formas históricas de dinero sólido? ¿Qué problemas resuelve y cuáles quedan pendientes?&lt;/p>
&lt;h2 id="para-cerrar">Para cerrar&lt;/h2>
&lt;p>“Dinero roto” destaca porque no asume que ya compartes su premisa. Alden construye el caso paso a paso: algo falla en cómo funciona el dinero hoy. Traza las raíces históricas del problema y evalúa posibles soluciones.&lt;/p>
&lt;p>Aunque no termines convencido, saldrás entendiendo mucho mejor los sistemas monetarios y por qué importan.&lt;/p></content></entry><entry xml:lang="es"><title>MCP: Dándole a tu Agente IA el Contexto Adecuado</title><subtitle>Por qué el contexto es el verdadero superpoder</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software-architecture" scheme="https://chemaclass.com/tags/software-architecture/" label="Software Architecture"/><category term="developer-tools" scheme="https://chemaclass.com/tags/developer-tools/" label="Developer Tools"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><published>2026-01-11T00:00:00+00:00</published><updated>2026-01-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/mcp-giving-your-ai-agent-the-right-context/"/><id>https://chemaclass.com/es/blog/mcp-giving-your-ai-agent-the-right-context/</id><summary type="html">MCP conecta agentes de IA con tus herramientas, bases de datos y APIs mediante un protocolo estándar. Dale el contexto que necesita.</summary><content type="html">&lt;p>Los asistentes de código con IA modernos son muy buenos entendiendo contexto. Modelos como Claude Opus con ventanas de contexto amplias (unos 200k tokens) pueden tener porciones sustanciales de tu código en mente, razonar sobre arquitectura y mantener coherencia en conversaciones largas. No el proyecto entero en codebases grandes, pero sí lo suficiente para trabajar bien.&lt;/p>
&lt;p>Pero entender no es lo mismo que acceder.&lt;/p>
&lt;p>La IA puede razonar sobre el esquema de tu base de datos si lo pegas. Puede sugerir cambios a archivos que compartes. Conoce patrones del código que le muestras. La limitación no es la inteligencia, sino el alcance.&lt;/p>
&lt;p>Ahí entra MCP.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="lo-que-mcp-habilita">Lo que MCP habilita&lt;/h2>
&lt;p>La IA moderna puede entender tu código cuando lo compartes. Pero entender y actuar son cosas distintas.&lt;/p>
&lt;p>Muchos asistentes integrados en IDEs como VS Code Copilot o Cursor ya acceden a los archivos de tu proyecto mediante su propio indexado. El acceso a archivos no es nuevo. Lo que MCP aporta es estandarización. En lugar de que cada herramienta construya su propia integración, MCP ofrece un protocolo común. Configuras un servidor una vez, y cualquier cliente compatible con MCP puede usarlo. Es portable, configurable, y va más allá de archivos: bases de datos, APIs y herramientas personalizadas.&lt;/p>
&lt;blockquote>
&lt;p>MCP transforma a la IA de interlocutor a participante activo en tu entorno de desarrollo.&lt;/p>
&lt;/blockquote>
&lt;p>Con MCP le das a la IA acceso directo a herramientas y recursos. Puede leer archivos, ejecutar comandos, consultar bases de datos, obtener documentación. La inteligencia siempre estuvo ahí. MCP le da manos.&lt;/p>
&lt;h2 id="que-es-realmente-mcp">Qué es realmente MCP&lt;/h2>
&lt;p>MCP es un protocolo, no un producto. Un estándar abierto que define cómo los agentes de IA pueden conectarse a fuentes de datos y herramientas externas. Piensa en ello como un puente entre el modelo de IA y tu entorno de desarrollo.&lt;/p>
&lt;p>La arquitectura es simple: los servidores MCP exponen capacidades y los clientes de IA las consumen. Claude Desktop y Claude Code soportan MCP oficialmente, y cada vez más herramientas adoptan el protocolo.&lt;/p>
&lt;p>Por ejemplo, en Claude Code puedes añadir servidores a un archivo &lt;code>.mcp.json&lt;/code> en la raíz de tu proyecto. Claude Code lee este archivo al abrir el proyecto e inicia los servidores configurados automáticamente:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="json">&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">mcpServers&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">filesystem&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">npx&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">args&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">-y&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">@modelcontextprotocol/server-filesystem&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">./&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">github&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">npx&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">args&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">-y&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">@modelcontextprotocol/server-github&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">env&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">GITHUB_TOKEN&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">tu-token&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">postgres&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">command&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">npx&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">args&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">-y&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">@modelcontextprotocol/server-postgres&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">env&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span> {&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">DATABASE_URL&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">&amp;quot;&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">postgresql://localhost/mydb&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Cada servidor le da a la IA diferentes capacidades:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>filesystem&lt;/strong>: Leer y navegar los archivos de tu proyecto. La IA puede explorar tu código, verificar patrones existentes y entender la estructura de directorios antes de sugerir cambios.&lt;/li>
&lt;li>&lt;strong>github&lt;/strong>: Acceder a issues, pull requests y metadatos del repositorio. Pídele a la IA que resuma los issues abiertos, revise comentarios de PRs o entienda en qué trabaja tu equipo.&lt;/li>
&lt;li>&lt;strong>postgres&lt;/strong>: Consultar tu base de datos directamente. La IA puede inspeccionar tu esquema, ejecutar consultas de lectura y entender tu modelo de datos sin que copies definiciones de tablas.&lt;/li>
&lt;/ul>
&lt;p>Distintas herramientas, mismo protocolo. Configuras una vez, y cualquier cliente compatible con MCP puede usar estos servidores.&lt;/p>
&lt;h2 id="donde-destaca-mcp">Dónde destaca MCP&lt;/h2>
&lt;h3 id="trabajando-con-tu-codigo">Trabajando con tu código&lt;/h3>
&lt;p>El beneficio más inmediato es el acceso al sistema de archivos. La IA puede navegar tu proyecto, leer archivos fuente, entender tu estructura de directorios. Cuando sugiere código, puede verificar patrones existentes primero.&lt;/p>
&lt;p>La integración con Git va más allá. La IA puede ver tu historial de commits, entender qué cambió recientemente y sugerir modificaciones alineadas con la evolución de tu código.&lt;/p>
&lt;p>El acceso al esquema de base de datos significa que la IA entiende tu modelo de datos. No hace falta explicar relaciones entre tablas o tipos de columnas. Ve la estructura y genera consultas que funcionan de verdad.&lt;/p>
&lt;h3 id="documentacion-y-conocimiento">Documentación y conocimiento&lt;/h3>
&lt;p>Conecta tu documentación interna y la IA conocerá las decisiones de tu equipo. Especificaciones de API, documentos de arquitectura, guías de código. Todo disponible como contexto.&lt;/p>
&lt;p>Aquí es donde MCP empieza a notarse. La IA ya no genera código genérico. Genera código que encaja en tu proyecto.&lt;/p>
&lt;blockquote>
&lt;p>La mejor asistencia de IA viene de entender no solo qué construyes, sino cómo lo construye tu equipo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="integraciones-externas">Integraciones externas&lt;/h3>
&lt;p>La integración con GitHub permite que la IA lea issues, entienda discusiones de PRs y vea el contexto más amplio de en qué trabaja tu equipo. Slack u otras herramientas de comunicación pueden aportar aún más contexto sobre decisiones en curso.&lt;/p>
&lt;p>Las integraciones personalizadas te permiten conectar herramientas internas específicas de tu flujo de trabajo. El protocolo es extensible por diseño.&lt;/p>
&lt;h2 id="usando-mcp-efectivamente">Usando MCP efectivamente&lt;/h2>
&lt;p>MCP amplifica lo que conectes. Si tu documentación está desactualizada, la IA usará información desactualizada. Si tu código es desordenado, la IA aprenderá patrones desordenados.&lt;/p>
&lt;p>Es el efecto espejo que mencioné en &lt;a href="/es/blog/ai-gives-you-speed-not-quality">La IA te da velocidad, no calidad&lt;/a>. La IA refleja el contexto que le das. Buen contexto da resultados útiles. Mal contexto produce basura que suena convincente.&lt;/p>
&lt;blockquote>
&lt;p>Darle a la IA acceso a tu código no reemplaza tu responsabilidad de mantenerlo. Hace que la buena higiene sea más valiosa.&lt;/p>
&lt;/blockquote>
&lt;p>Algunas prácticas que ayudan:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Conecta solo lo que la IA necesita.&lt;/strong> Más contexto no siempre es mejor. Contexto enfocado sí.&lt;/li>
&lt;li>&lt;strong>Mantén tu documentación actualizada.&lt;/strong> Si la IA lee tus docs, esos docs importan más que antes.&lt;/li>
&lt;li>&lt;strong>Revisa tu configuración MCP de vez en cuando.&lt;/strong> A medida que tu proyecto evoluciona, también debería hacerlo tu configuración de contexto.&lt;/li>
&lt;li>&lt;strong>Empieza pequeño.&lt;/strong> Uno o dos servidores. Ve qué funciona. Expande desde ahí.&lt;/li>
&lt;/ul>
&lt;p>La seguridad también importa. Sé intencional sobre lo que expones. Los servidores MCP pueden acceder a información sensible. Trátalos como cualquier otra decisión de control de acceso.&lt;/p>
&lt;h2 id="lo-que-viene">Lo que viene&lt;/h2>
&lt;p>MCP es la base. Pero el ecosistema construye encima.&lt;/p>
&lt;p>&lt;strong>Flujos de trabajo agénticos.&lt;/strong> Herramientas como Claude Code y Cursor funcionan en “modo agente” donde la IA planifica y ejecuta tareas de múltiples pasos de forma autónoma. Lee archivos, hace cambios, ejecuta tests, corrige errores. Los servidores MCP son las manos. El bucle del agente es el cerebro que decide qué hacer.&lt;/p>
&lt;p>&lt;strong>Skills y comandos personalizados.&lt;/strong> Claude Code introdujo skills: comandos slash personalizados que encadenan herramientas MCP en flujos reutilizables. &lt;code>/deploy&lt;/code>, &lt;code>/test&lt;/code>, &lt;code>/review&lt;/code>. Los defines una vez y se convierten en parte de tu toolkit de desarrollo.&lt;/p>
&lt;p>&lt;strong>Protocolo A2A.&lt;/strong> El protocolo Agent-to-Agent de Google. Mientras MCP conecta IA con herramientas, A2A conecta agentes de IA entre sí. Múltiples agentes especializados colaborando en tareas complejas. Un agente escribe código, otro lo revisa, un tercero ejecuta tests.&lt;/p>
&lt;p>El patrón es claro: la IA está pasando de asistente a colaborador. De responder preguntas a ejecutar flujos de trabajo. MCP le dio a la IA acceso a tu entorno. Lo que viene es IA que sabe usar ese acceso de forma autónoma.&lt;/p>
&lt;blockquote>
&lt;p>La pregunta está cambiando de “¿a qué puede acceder la IA?” a “¿qué debería decidir la IA por su cuenta?”&lt;/p>
&lt;/blockquote>
&lt;p>El juicio humano no desaparece. Se mueve hacia arriba. En lugar de revisar cada línea que escribe la IA, diseñamos el contexto y los límites que moldean lo que produce.&lt;/p>
&lt;p>Ese sigue siendo nuestro trabajo. Y vale la pena hacerlo bien.&lt;/p>
&lt;p>&lt;img src="/images/blog/2026-01-11/footer.jpg" alt="mcp conectando la ia con herramientas" />&lt;/p></content></entry><entry xml:lang="es"><title>Cómo Funciona Bitcoin</title><subtitle>Blockchain, criptografía y consenso</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><published>2025-12-22T00:00:00+00:00</published><updated>2025-12-22T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/how-bitcoin-works/"/><id>https://chemaclass.com/es/blog/how-bitcoin-works/</id><summary type="html">Transacciones, bloques, minería, el modelo UTXO y Lightning Network -- cómo funciona Bitcoin por dentro, explicado en términos simples.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-12-21/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Este post explica cómo funciona Bitcoin por dentro. Si buscas entender por qué importa, empieza con &lt;a href="/es/blog/bitcoin-fundamentals/">Fundamentos de Bitcoin&lt;/a>.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>&lt;em>Para los técnicamente curiosos.&lt;/em>&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/bBC-nXj3Ng4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="la-blockchain">La Blockchain&lt;/h2>
&lt;h3 id="el-problema-del-doble-gasto">El problema del doble gasto&lt;/h3>
&lt;p>El dinero digital tiene un problema fundamental: ¿cómo evitas que alguien copie sus monedas y las gaste dos veces? Los sistemas tradicionales lo resuelven con una autoridad central (bancos, PayPal) que rastrea quién posee qué. El avance de Bitcoin fue resolver esto sin ningún intermediario.&lt;/p>
&lt;p>La solución: un libro mayor compartido que todos pueden verificar pero nadie controla.&lt;/p>
&lt;h3 id="como-funciona">Cómo funciona&lt;/h3>
&lt;p>Bitcoin usa una blockchain: una cadena de bloques donde cada bloque contiene transacciones y enlaza al bloque anterior a través de hashes criptográficos.&lt;/p>
&lt;p>Una &lt;strong>función hash&lt;/strong> toma cualquier entrada y produce una huella digital de tamaño fijo. Cambia un bit de la entrada y la salida cambia por completo. Esto hace evidente cualquier manipulación. Bitcoin usa SHA-256, que produce una salida de 256 bits.&lt;/p>
&lt;p>Cada bloque contiene:&lt;/p>
&lt;ul>
&lt;li>Una lista de transacciones&lt;/li>
&lt;li>Un hash del encabezado del bloque anterior&lt;/li>
&lt;li>Una solución proof-of-work (más abajo)&lt;/li>
&lt;/ul>
&lt;p>Antes de entrar en un bloque, las transacciones esperan en el mempool. Los mineros seleccionan de este pool, priorizando las que pagan más comisiones. Puedes verlo en tiempo real en &lt;a rel="external" href="https://mempool.space/">mempool.space&lt;/a>.&lt;/p>
&lt;p>Cada nodo guarda una copia completa de la blockchain. No hay un solo servidor que hackear ni una base de datos central que corromper. Para cambiar el historial, tendrías que reescribir bloques en la mayoría de nodos del mundo.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Estructura del bloque&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Un bloque tiene dos partes: el &lt;strong>encabezado&lt;/strong> (80 bytes) y el &lt;strong>cuerpo&lt;/strong> (transacciones).&lt;/p>
&lt;p>El encabezado contiene:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Versión&lt;/strong>: Versión del protocolo&lt;/li>
&lt;li>&lt;strong>Hash del bloque anterior&lt;/strong>: Enlaza a la cadena&lt;/li>
&lt;li>&lt;strong>Raíz Merkle&lt;/strong>: Hash de todas las transacciones en el bloque&lt;/li>
&lt;li>&lt;strong>Marca de tiempo&lt;/strong>: Cuándo se creó el bloque&lt;/li>
&lt;li>&lt;strong>Objetivo de dificultad&lt;/strong>: Qué tan difícil era el puzzle&lt;/li>
&lt;li>&lt;strong>Nonce&lt;/strong>: La solución que encontraron los mineros&lt;/li>
&lt;/ul>
&lt;p>Los &lt;strong>árboles Merkle&lt;/strong> organizan las transacciones de forma eficiente. Cada transacción se hashea, luego los pares de hashes se combinan y hashean de nuevo, hasta llegar a un único hash raíz. Esto permite probar que una transacción existe en un bloque sin descargar todas las demás. Muy útil para wallets ligeras.&lt;/p>
&lt;p>El peso del bloque se mide en bytes virtuales (vB). El límite es 4 millones de unidades de peso, aproximadamente 1-1.5 MB de datos por bloque.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="transacciones-y-criptografia">Transacciones y criptografía&lt;/h2>
&lt;h3 id="el-modelo-utxo">El modelo UTXO&lt;/h3>
&lt;p>Bitcoin no usa cuentas con saldos. En su lugar, rastrea &lt;strong>Salidas de Transacciones No Gastadas (UTXOs)&lt;/strong>. Piensa en ellas como monedas digitales de varios tamaños.&lt;/p>
&lt;p>Cuando recibes bitcoin, obtienes un UTXO. Cuando gastas, consumes UTXOs completos como entradas y creas nuevos como salidas. Si tienes un UTXO de 1 BTC y quieres enviar 0.3 BTC, gastas el UTXO entero y creas dos salidas: 0.3 BTC para el destinatario y unos 0.7 BTC de vuelta para ti (menos las comisiones).&lt;/p>
&lt;p>Tu “balance” es la suma de todos los UTXOs que puedes gastar.&lt;/p>
&lt;h3 id="criptografia-de-clave-publica">Criptografía de clave pública&lt;/h3>
&lt;p>Las transacciones de Bitcoin usan criptografía de clave pública:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Clave privada&lt;/strong>: Un número secreto de 256 bits. Demuestra la propiedad.&lt;/li>
&lt;li>&lt;strong>Clave pública&lt;/strong>: Se deriva matemáticamente de la clave privada. Se comparte públicamente.&lt;/li>
&lt;/ul>
&lt;p>Cuando envías bitcoin, firmas la transacción con tu clave privada. Esta firma demuestra que posees los UTXOs sin revelar la clave privada. Cualquiera puede verificar la firma usando tu clave pública.&lt;/p>
&lt;h3 id="dinero-programable">Dinero programable&lt;/h3>
&lt;p>Bitcoin no es solo efectivo digital. Tiene su propio lenguaje de programación llamado &lt;strong>Script&lt;/strong>. Cada transacción incluye un pequeño programa que define las condiciones para gastarla.&lt;/p>
&lt;p>La mayoría de transacciones usan scripts simples: “quien pueda demostrar que posee esta clave pública puede gastar estas monedas.” Pero Script permite mucho más: wallets multifirma que requieren varias claves, transacciones con bloqueo temporal que no pueden gastarse hasta cierta fecha, y condiciones complejas combinando múltiples requisitos.&lt;/p>
&lt;p>Esto convierte a Bitcoin en dinero programable. Para profundizar en Script y tipos de direcciones, mira &lt;a href="/es/blog/programmable-money/">Dinero Programable&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Criptografía de curva elíptica&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Bitcoin usa &lt;strong>ECDSA&lt;/strong> (Algoritmo de Firma Digital de Curva Elíptica) con la curva &lt;strong>secp256k1&lt;/strong>. Se eligió esta curva por su eficiencia y porque no la diseñó ninguna agencia gubernamental (a diferencia de las curvas NIST), lo que reduce preocupaciones sobre puertas traseras.&lt;/p>
&lt;p>Una clave privada es un entero aleatorio de 256 bits. La clave pública se deriva multiplicando ese número por un punto generador en la curva. Fácil de calcular en un sentido, prácticamente imposible de revertir.&lt;/p>
&lt;p>&lt;strong>La firma de transacciones&lt;/strong> implica:&lt;/p>
&lt;ol>
&lt;li>Hashear los datos de la transacción&lt;/li>
&lt;li>Crear una firma usando la clave privada&lt;/li>
&lt;li>Incluir la firma y clave pública en la transacción&lt;/li>
&lt;/ol>
&lt;p>&lt;strong>Las banderas SIGHASH&lt;/strong> controlan qué partes de una transacción cubre la firma:&lt;/p>
&lt;ul>
&lt;li>&lt;code>SIGHASH_ALL&lt;/code>: Firma todas las entradas y salidas (más común)&lt;/li>
&lt;li>&lt;code>SIGHASH_NONE&lt;/code>: Firma solo las entradas&lt;/li>
&lt;li>&lt;code>SIGHASH_SINGLE&lt;/code>: Firma una salida específica&lt;/li>
&lt;li>Estas pueden combinarse con &lt;code>ANYONECANPAY&lt;/code> para casos de uso avanzados&lt;/li>
&lt;/ul>
&lt;/div>
&lt;/details>
&lt;h2 id="mineria-y-consenso">Minería y consenso&lt;/h2>
&lt;p>¿Cómo se pone de acuerdo una red descentralizada sobre qué transacciones son válidas? Mediante minería proof-of-work.&lt;/p>
&lt;h3 id="el-puzzle">El puzzle&lt;/h3>
&lt;p>Los mineros compiten por encontrar un número (el &lt;strong>nonce&lt;/strong>) que, combinado con el encabezado del bloque y hasheado, produce un resultado por debajo de un valor objetivo. Es como tirar dados hasta sacar un número menor que 100, pero con 2^256 resultados posibles.&lt;/p>
&lt;p>El trabajo es:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Difícil de encontrar&lt;/strong>: Requiere billones de intentos&lt;/li>
&lt;li>&lt;strong>Fácil de verificar&lt;/strong>: Una comprobación de hash prueba la solución&lt;/li>
&lt;/ul>
&lt;p>Esta asimetría es clave. Cualquiera puede verificar un bloque al instante, pero crearlo requiere trabajo computacional real.&lt;/p>
&lt;h3 id="por-que-importa">Por qué importa&lt;/h3>
&lt;p>La minería sirve para tres propósitos:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Asegura la red&lt;/strong>: Reescribir la historia significa rehacer todo el trabajo de hash&lt;/li>
&lt;li>&lt;strong>Emite nuevas monedas&lt;/strong>: Siguiendo un calendario predecible (halving cada 210.000 bloques)&lt;/li>
&lt;li>&lt;strong>Procesa transacciones&lt;/strong>: Incluyéndolas en el registro permanente&lt;/li>
&lt;/ol>
&lt;p>Cada 2016 bloques (unas 2 semanas), la red ajusta la dificultad para mantener tiempos de bloque de unos 10 minutos. ¿Se suma más hashpower? Los puzzles se vuelven más difíciles. ¿El hashpower baja? Los puzzles se vuelven más fáciles.&lt;/p>
&lt;p>Explora los pools de minería y hashrate en &lt;a rel="external" href="https://mempool.space/mining">mempool.space/mining&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Dificultad y teoría de juegos&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>&lt;strong>Cálculo de dificultad&lt;/strong>: El objetivo es un número de 256 bits. Un hash de bloque válido debe estar por debajo de este objetivo. Objetivo más bajo = puzzle más difícil. La red ajusta cada 2016 bloques según cuánto tardaron realmente esos bloques frente a los 20.160 minutos esperados.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/S9JGmA5_unY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>&lt;strong>Hashrate y seguridad&lt;/strong>: La seguridad de Bitcoin viene del coste de reescribir el historial. Con unos 500 EH/s (exahashes por segundo) de hashrate, atacar la red requeriría controlar la mayoría del hashpower. Eso supone miles de millones en hardware y electricidad, y además el ataque haría colapsar el valor del activo.&lt;/p>
&lt;p>&lt;strong>Incentivos económicos&lt;/strong>: Los mineros gastan recursos reales (electricidad, hardware). Solo obtienen beneficio si juegan según las reglas. Un minero que crea bloques inválidos desperdicia su trabajo porque los nodos los rechazan. Esto alinea el beneficio individual con la seguridad de la red.&lt;/p>
&lt;p>&lt;strong>Ataques del 51%&lt;/strong>: Si un atacante controlara la mayoría del hashpower, en teoría podría hacer doble gasto minando una cadena alternativa. Pero la economía hace esto irracional para grandes valores: el ataque destruye el valor de lo que intentas robar.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="direcciones-y-wallets">Direcciones y wallets&lt;/h2>
&lt;p>Las direcciones de Bitcoin se derivan de las claves públicas. Han evolucionado diferentes formatos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>P2PKH&lt;/strong>: Direcciones legacy que empiezan con “1”&lt;/li>
&lt;li>&lt;strong>P2SH&lt;/strong>: Direcciones script que empiezan con “3”&lt;/li>
&lt;li>&lt;strong>P2WPKH&lt;/strong>: Direcciones SegWit nativas que empiezan con “bc1q”&lt;/li>
&lt;li>&lt;strong>P2TR&lt;/strong>: Direcciones Taproot que empiezan con “bc1p”&lt;/li>
&lt;/ul>
&lt;p>Para detalles técnicos de cada tipo, ve &lt;a href="/es/blog/programmable-money/#common-bitcoin-address-types">Dinero Programable&lt;/a>.&lt;/p>
&lt;h3 id="wallets">Wallets&lt;/h3>
&lt;p>Una wallet gestiona tus claves y construye transacciones. No contiene tus monedas: las monedas existen en la blockchain. La wallet contiene las claves que demuestran que puedes gastarlas.&lt;/p>
&lt;p>&lt;strong>Wallets calientes&lt;/strong> se conectan a internet. Convenientes para uso diario, más vulnerables. Ejemplos: apps de móvil, extensiones de navegador.&lt;/p>
&lt;p>&lt;strong>Wallets frías&lt;/strong> permanecen offline. Más seguras para ahorros. Ejemplos: hardware wallets (Ledger, Trezor), paper wallets.&lt;/p>
&lt;h3 id="wallets-hd-y-frases-semilla">Wallets HD y frases semilla&lt;/h3>
&lt;p>Las wallets modernas son &lt;strong>Deterministas Jerárquicas (HD)&lt;/strong>. Una semilla maestra genera claves ilimitadas en una estructura de árbol. Haces backup de la semilla una vez y puedes recuperar todo.&lt;/p>
&lt;p>&lt;strong>BIP-39&lt;/strong> define la frase semilla de 12 o 24 palabras que usa la mayoría de wallets. Estas palabras codifican entropía que deriva todas tus claves. Pierdes la frase, pierdes el acceso. Cualquiera con la frase controla los fondos.&lt;/p>
&lt;blockquote>
&lt;p>Nunca almacenes frases semilla digitalmente. Escríbelas. Guárdalas de forma segura offline.&lt;/p>
&lt;/blockquote>
&lt;p>¿Cómo de grande es el espacio de claves de BIP-39 en realidad? He construido &lt;a rel="external" href="https://github.com/Chemaclass/seed-hunter">seed-hunter&lt;/a>, una herramienta educativa de código abierto en Go que intenta hacer fuerza bruta sobre una semilla de 12 palabras contra la red real de Bitcoin. Registra cada intento y muestra el progreso en vivo con ETAs que abarcan de 10²⁹ a 10³⁹ años. Un ladrón comprobando un billón de frases semilla por segundo desde el Big Bang habría completado el 0.000_000_008% de la búsqueda hasta ahora. La idea no es romper Bitcoin, sino hacer las matemáticas viscerales y obvias: la termodinámica, no solo la computación, prohíbe el ataque.&lt;/p>
&lt;h2 id="la-red">La red&lt;/h2>
&lt;p>Bitcoin es una red peer-to-peer, sin servidores centrales. Los nodos se conectan entre sí, comparten transacciones y bloques, y hacen cumplir las reglas de forma independiente.&lt;/p>
&lt;h3 id="tipos-de-nodos">Tipos de nodos&lt;/h3>
&lt;p>&lt;strong>Nodos completos&lt;/strong> descargan y validan cada bloque y transacción. Hacen cumplir todas las reglas de consenso y no confían en nadie. Ejecutar un nodo completo significa verificar todo por ti mismo.&lt;/p>
&lt;p>&lt;strong>Clientes SPV (ligeros)&lt;/strong> solo descargan encabezados de bloque. Confían en que los mineros ya validaron las transacciones. Menos seguridad, pero funcionan en móviles y dispositivos de baja potencia.&lt;/p>
&lt;p>&lt;strong>Nodos de minería&lt;/strong> son nodos completos que también compiten por crear nuevos bloques.&lt;/p>
&lt;h3 id="como-se-propagan-las-transacciones">Cómo se propagan las transacciones&lt;/h3>
&lt;p>Cuando transmites una transacción:&lt;/p>
&lt;ol>
&lt;li>Tu wallet la envía a los nodos conectados&lt;/li>
&lt;li>Cada nodo valida y reenvía a sus pares&lt;/li>
&lt;li>En segundos, la transacción alcanza la mayor parte de la red&lt;/li>
&lt;li>Los mineros la incluyen en sus bloques candidatos&lt;/li>
&lt;/ol>
&lt;p>Los bloques se propagan de forma similar. Cuando un minero encuentra un bloque válido, se extiende por la red en segundos.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Arquitectura de red&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>&lt;strong>Descubrimiento de pares&lt;/strong>: Los nodos se encuentran mediante semillas DNS (direcciones hardcodeadas que devuelven IPs de nodos activos) y compartiendo direcciones de pares con otros nodos conectados.&lt;/p>
&lt;p>&lt;strong>Protocolo gossip&lt;/strong>: La información se propaga mediante mensajes “inv” (inventario). Un nodo anuncia que tiene algo nuevo, y los pares lo solicitan si les interesa. Esto evita desperdiciar ancho de banda con datos duplicados.&lt;/p>
&lt;p>&lt;strong>Bloques compactos&lt;/strong> (BIP-152) aceleran la propagación de bloques. Como los nodos ya tienen la mayoría de transacciones en su mempool, los bloques pueden transmitirse solo como el encabezado más IDs cortos de transacciones.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="seguridad-y-confirmaciones">Seguridad y confirmaciones&lt;/h2>
&lt;h3 id="por-que-importan-las-confirmaciones">Por qué importan las confirmaciones&lt;/h3>
&lt;p>Cuando una transacción se incluye en un bloque, tiene 1 confirmación. Cada bloque posterior añade otra confirmación.&lt;/p>
&lt;p>Más confirmaciones = más difícil de revertir. Para deshacer una transacción confirmada, un atacante tendría que minar una cadena alternativa más rápido que la red honesta. Cada bloque hace esto exponencialmente más difícil.&lt;/p>
&lt;p>&lt;strong>Guías generales:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>0 confirmaciones: Transacción transmitida pero aún no en un bloque. Puede ser doble gastada.&lt;/li>
&lt;li>1 confirmación: En un bloque. La reversión requiere hashpower significativo.&lt;/li>
&lt;li>6 confirmaciones: Estándar para grandes cantidades. Reversión prácticamente imposible.&lt;/li>
&lt;/ul>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Seguridad de confirmaciones&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>El whitepaper de Satoshi incluye el cálculo de probabilidad. Con un atacante que controla una fracción &lt;code>q&lt;/code> del hashpower:&lt;/p>
&lt;ul>
&lt;li>Si &lt;code>q &amp;lt; 0.5&lt;/code>: La probabilidad de alcanzar disminuye exponencialmente con cada confirmación&lt;/li>
&lt;li>A 6 confirmaciones con &lt;code>q = 0.1&lt;/code> (10% hashpower): Probabilidad de éxito &amp;lt; 0.1%&lt;/li>
&lt;/ul>
&lt;p>La regla de “6 confirmaciones” asume un atacante bien financiado con hashpower sustancial pero minoritario. Para transacciones más pequeñas, muchas veces bastan menos confirmaciones.&lt;/p>
&lt;p>&lt;strong>La finalidad en Bitcoin&lt;/strong> es probabilística, no absoluta. Pero tras suficientes confirmaciones, la probabilidad de reversión se acerca a cero para cualquier atacante realista.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="alineacion-de-incentivos">Alineación de incentivos&lt;/h2>
&lt;p>Bitcoin no es solo tecnología ingeniosa. Es un sistema donde el interés propio de cada participante fortalece la red.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Mineros&lt;/strong> invierten en hardware y electricidad. Solo obtienen beneficio produciendo bloques válidos. Hacer trampas desperdicia su inversión porque los nodos rechazan bloques inválidos al instante.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Nodos&lt;/strong> hacen cumplir las reglas para proteger sus propios fondos. Un operador de nodo que acepta transacciones inválidas devalúa su propio bitcoin. El interés propio los convierte en validadores honestos.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Usuarios&lt;/strong> pagan comisiones para que sus transacciones se procesen. Comisiones más altas significan confirmación más rápida. Esto crea demanda de espacio de bloque y financia la seguridad de la red.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Desarrolladores&lt;/strong> contribuyen a software que ellos mismos usan. Los bugs perjudican sus propias tenencias. Las mejoras benefician a todos, incluyéndoles.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Holders&lt;/strong> se benefician de la seguridad y adopción de la red. Cuanto más seguro y útil se vuelve Bitcoin, más valiosos son sus fondos. Tienen incentivos para apoyar el ecosistema.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Sin coordinador central. Sin necesidad de confianza. Todos actúan en su propio interés, y el sistema beneficia a todos.&lt;/p>
&lt;blockquote>
&lt;p>“No confíes, verifica.” Cualquiera puede ejecutar un nodo y verificar cada transacción, cada bloque, cada regla. No hace falta confiar en bancos, gobiernos, ni siquiera en otros usuarios de Bitcoin. Las matemáticas se demuestran solas.&lt;/p>
&lt;/blockquote>
&lt;h2 id="escalabilidad-lightning-network">Escalabilidad: Lightning Network&lt;/h2>
&lt;p>La capa base de Bitcoin procesa unas 7 transacciones por segundo. Es así por diseño: mantener la descentralización requiere bloques lo suficientemente pequeños para que cualquiera pueda verificar. Pero esto limita cuántas transacciones puede manejar.&lt;/p>
&lt;p>Lightning Network resuelve esto con una segunda capa construida sobre Bitcoin. Permite:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Pagos instantáneos&lt;/strong>: Sin esperar confirmaciones de bloque&lt;/li>
&lt;li>&lt;strong>Comisiones casi nulas&lt;/strong>: Fracciones de céntimo&lt;/li>
&lt;li>&lt;strong>Alta capacidad&lt;/strong>: Millones de transacciones por segundo&lt;/li>
&lt;/ul>
&lt;p>Lightning funciona abriendo “canales de pago” entre partes. Las transacciones dentro de un canal ocurren off-chain, al instante. Solo la apertura y cierre de canales requieren transacciones on-chain. Puedes visualizar la topología de la red y estadísticas en &lt;a rel="external" href="https://mempool.space/lightning">mempool.space/lightning&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>La capa base de Bitcoin proporciona seguridad y liquidación final. Lightning proporciona velocidad y escala. Diferentes herramientas para diferentes trabajos.&lt;/p>
&lt;/blockquote>
&lt;p>Si quieres ejecutar tu propio nodo Lightning y tomar control total de tus pagos, escribí una guía sobre cómo &lt;a href="/es/blog/run-your-ln-node/">Ejecutar tu nodo LN en una Raspberry Pi&lt;/a>.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Cómo funciona Lightning&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>Los canales de pago usan direcciones &lt;strong>multifirma 2-de-2&lt;/strong>. Ambas partes deben firmar para mover fondos. Esto crea una cuenta compartida de la que ninguna puede robar.&lt;/p>
&lt;p>&lt;strong>HTLCs (Contratos Hash Time-Locked)&lt;/strong> permiten pagos multi-salto. El mecanismo:&lt;/p>
&lt;ol>
&lt;li>Alice quiere pagar a Carol a través de Bob&lt;/li>
&lt;li>Carol genera un secreto y da a Alice el hash&lt;/li>
&lt;li>Alice crea un HTLC: “Bob recibe el pago si revela el secreto en 24 horas”&lt;/li>
&lt;li>Bob crea un HTLC similar con Carol&lt;/li>
&lt;li>Carol revela el secreto a Bob, reclamando el pago&lt;/li>
&lt;li>Bob usa el mismo secreto para reclamar de Alice&lt;/li>
&lt;/ol>
&lt;p>Si alguien no coopera, el timelock expira y los fondos vuelven. El secreto viaja hacia atrás, los pagos viajan hacia adelante.&lt;/p>
&lt;p>&lt;strong>Watchtowers&lt;/strong> monitorean la blockchain buscando intentos de trampa. Si tu contraparte intenta transmitir un estado antiguo del canal, el watchtower puede penalizarla, incluso mientras estás offline.&lt;/p>
&lt;/div>
&lt;/details>
&lt;h2 id="el-panorama-general">El panorama general&lt;/h2>
&lt;p>Lo que hace notable a Bitcoin no es ningún componente individual, sino cómo encajan todos en un sistema que se refuerza a sí mismo.&lt;/p>
&lt;p>La criptografía demuestra la propiedad sin autoridades de confianza. El proof-of-work hace costoso reescribir el historial. Los incentivos económicos convierten la codicia individual en seguridad colectiva. La descentralización elimina puntos únicos de fallo. Y la oferta fija crea escasez digital por primera vez en la historia.&lt;/p>
&lt;p>Cada pieza sostiene a las demás. Quita una, y el sistema se debilita. Juntas, crean algo que nunca había existido: dinero que no puede inflarse, transacciones que no pueden censurarse, y propiedad que no puede confiscarse.&lt;/p>
&lt;blockquote>
&lt;p>Sin bancos. Sin gobiernos. Sin terceros de confianza. Solo matemáticas, código, y una red global de nodos que hacen cumplir las mismas reglas.&lt;/p>
&lt;/blockquote>
&lt;p>Si eso te importa o no depende de dónde vivas y cuánto confíes en tus instituciones. Pero la opción ya existe. Y nadie puede quitártela.&lt;/p>
&lt;details class="deep-dive">
&lt;summary class="deep-dive__header">
&lt;span class="deep-dive__icon">&lt;/span>
&lt;span class="deep-dive__title">Deep Dive: Madrigueras&lt;/span>
&lt;/summary>
&lt;div class="deep-dive__content">
&lt;p>La profundidad técnica de Bitcoin va mucho más allá de lo que cabe en un post. Aquí hay temas que vale la pena explorar si quieres profundizar:&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/segregated-witness/">SegWit&lt;/a>&lt;/strong> (Testigo Segregado) fue la actualización de Bitcoin de 2017 que movió los datos de firma fuera de la estructura principal de la transacción. Arregló la maleabilidad de transacciones (un bug que impedía Lightning), introdujo el peso de bloque para un uso más eficiente del espacio, y lo hizo todo manteniendo compatibilidad con nodos antiguos.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/taproot/">Taproot y Schnorr&lt;/a>&lt;/strong> llegaron en 2021, actualizando la criptografía de Bitcoin. Las firmas Schnorr son más pequeñas y permiten agregación (varias firmas se convierten en una). Taproot hace que las condiciones de gasto complejas se vean idénticas a los pagos simples on-chain, mejorando tanto la privacidad como la eficiencia.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoin.stackexchange.com/questions/30817/what-is-a-soft-fork">Soft forks vs hard forks&lt;/a>&lt;/strong>: ¿Cómo se actualiza Bitcoin sin una autoridad central? Los soft forks añaden nuevas reglas que los nodos antiguos aún aceptan. Los hard forks cambian las reglas de formas que los nodos antiguos rechazan. Entender esta distinción explica por qué Bitcoin evoluciona lentamente y por qué los cambios controvertidos son raros.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://mempool.space/docs/faq#what-is-rbf">Mecánica de comisiones&lt;/a>&lt;/strong>: El mercado de comisiones tiene más matices que “paga más, confirma más rápido”. Replace-By-Fee (RBF) te permite aumentar la comisión de una transacción atascada. Child-Pays-For-Parent (CPFP) permite a los destinatarios acelerar pagos entrantes gastándolos con comisiones altas.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://bitcoinops.org/en/topics/timelocks/">Timelocks&lt;/a>&lt;/strong>: Bitcoin puede bloquear fondos hasta que se cumplan ciertas condiciones. &lt;code>CLTV&lt;/code> (CheckLockTimeVerify) bloquea hasta una altura de bloque o marca de tiempo específica. &lt;code>CSV&lt;/code> (CheckSequenceVerify) bloquea por un tiempo relativo tras la confirmación. Estas primitivas permiten canales Lightning, esquemas de herencia e intercambios atómicos.&lt;/p>
&lt;p>&lt;strong>&lt;a rel="external" href="https://learnmeabitcoin.com/technical/mining/coinbase-transaction/">Transacciones coinbase&lt;/a>&lt;/strong>: La única forma en que bitcoin nuevo entra en circulación. Cada bloque comienza con una transacción especial que paga al minero la recompensa del bloque más todas las comisiones. Estas monedas recién acuñadas no pueden gastarse durante 100 bloques, una regla que protege contra reorganizaciones de la cadena.&lt;/p>
&lt;p>Cuanto más profundo vas, más encuentras.&lt;/p>
&lt;/div>
&lt;/details></content></entry><entry xml:lang="es"><title>Capítulo 30: Diciembre, 2025</title><published>2025-12-09T00:00:00+00:00</published><updated>2025-12-09T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2025-diciembre/"/><id>https://chemaclass.com/es/books/oeur/2025-diciembre/</id><content type="html">&lt;h1 id="nueve-ramas">Nueve Ramas&lt;/h1>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/LfPmK6SfLmc"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="once-anos-despues">Once años después&lt;/h2>
&lt;p>Diciembre de 2025.
Afuera hace frío. De ese que te limpia la cara y te obliga a despertar.&lt;/p>
&lt;p>Once años después, sigo pensando en aquel chaval de veintiuno que cogió un vuelo a Lübeck sin entender lo que iba a costar. No hablo del idioma —un inglés para sobrevivir y nada de alemán—. Hablo de todo lo demás: la soledad, el miedo, la libertad, las personas que te salvan sin saberlo.&lt;/p>
&lt;p>No era valentía. Era urgencia.&lt;/p>
&lt;p>Me fui de mi ciudad porque quedarme ya no era una opción. No había futuro allí. Solo un pasado que necesitaba olvidar. Y Alemania, entonces, era una puerta que no podía dejar pasar.&lt;/p>
&lt;p>En Lübeck estuve seis meses trabajando por trescientos euros al mes. Tiraba de los ahorros de mi trabajo en Murcia.&lt;/p>
&lt;p>Pobre, pero feliz.&lt;/p>
&lt;p>Conociendo gente estupenda, buscando cada rincón para aprender, expandir horizontes, practicar idiomas.&lt;/p>
&lt;p>Tras esos primeros meses decidí que tenía que moverme. La empresa donde empecé era la típica que te pagaba lo mínimo para explotarte al máximo, con tecnologías obsoletas. Sentía que si no me movía, acabaría volviéndome obsoleto yo también.&lt;/p>
&lt;p>Así que, tras tres meses de búsqueda intensa, encontré trabajo en Berlín y me mudé con lo que tenía. Los primeros días dormí en el sofá de Alberto y Maricarmen, unos amigos del pueblo del coro donde estuve un verano años antes.&lt;/p>
&lt;p>De ahí en adelante, todo fue aventura. A una velocidad que nunca hubiera imaginado si no hubiera salido de mi ciudad.&lt;/p>
&lt;p>En 2015 empecé a escribir como forma de comunicarme con mis hermanos en la distancia. Lo que comenzó como pensamientos sueltos terminó convirtiéndose en un diario de dos años.&lt;/p>
&lt;p>Escribí en abril: «Echo de menos a mi familia. Aunque los veré en menos de treinta días, estoy empezando a hacerme a la idea de verlos dos veces al año. Y, la verdad, se hace complicado. Ser el mayor de toda una tropa hace que, sin pretenderlo, uno sea responsable. Necesitamos ser ejemplos».&lt;/p>
&lt;p>Once años después, esas palabras siguen siendo ciertas. Nos vemos una o dos veces al año: en Navidad y en las fiestas de mayo. He aprendido a saborear cada minuto cuando estamos juntos. No siempre es fácil. Pero el tiempo es el último igualador; da igual el color de las prendas ideológicas o políticas. Lo que más valoro es el esfuerzo, el ahorro, el trabajo duro. Eso nos enseña a apreciar lo que conseguimos.&lt;/p>
&lt;p>Nueve empresas diferentes. Siete de ellas en Alemania. He tropezado y me he levantado, siempre desde la cordura sin llegar a disparates.&lt;/p>
&lt;p>He conseguido crecer tanto en lo personal como en lo profesional, abriendo todo tipo de horizontes. Estoy orgulloso de la persona en la que me he convertido.&lt;/p>
&lt;p>Pero nada de esto tendría sentido sin vosotros.&lt;/p>
&lt;p>Y para entender el presente, a veces hay que mirar al pasado. Aunque duela.&lt;/p>
&lt;hr />
&lt;h2 id="de-donde-venimos">De donde venimos&lt;/h2>
&lt;p>No voy a mentir: tuvimos una juventud complicada. Una juventud que dejó marcas en todos nosotros. Cada uno las lleva a su manera, algunas más visibles que otras.&lt;/p>
&lt;p>Pero aquí seguimos. De pie.&lt;/p>
&lt;p>Mamá se fue demasiado pronto.&lt;/p>
&lt;p>Cincuenta y ocho años tendría hoy. Cuarenta y nueve cuando escribí «Números», aquel 25 de mayo de 2016. Treinta y siete cuando se fue.&lt;/p>
&lt;p>Yo tenía once años.&lt;/p>
&lt;p>No recuerdo cuándo fue la última vez que dije «mamá». Solo recuerdo su pelo rizado y su amable sonrisa tras el marco de la puerta a altas horas de la noche. Sin tiempo para despedirse. Sin tiempo para nada.&lt;/p>
&lt;p>Papá se quedó solo con ocho críos. La hermana mayor tenía trece años. Y la menor, dos semanas.&lt;/p>
&lt;p>La vida le obligó a tirar para adelante como pudo. Y lo hizo. No siempre bien, pero lo hizo.&lt;/p>
&lt;p>Años después llegó el castillo. Aquel dúplex donde los siete acabamos relegados al garaje, cual patio trasero. Con cerrojo en la puerta. Prohibido subir a las habitaciones principales salvo para comer o dormir.&lt;/p>
&lt;p>Las disputas. Los enfrentamientos. Las tempestades.&lt;/p>
&lt;p>Maricarmen fue enviada a estudiar lejos. Yo era el siguiente objetivo. Papá desbordado sin saber qué hacer.&lt;/p>
&lt;p>Aquello fue un infierno del que apenas quiero acordarme.&lt;/p>
&lt;p>Hasta que un día volvimos al piso donde nos habíamos criado con mamá. Nuestra casa. ¿Sabéis qué es despertarte un fin de semana, ver que es de día y que está lloviendo, y poder quedarte en la cama? Un recuerdo de alegría que jamás olvidaré.&lt;/p>
&lt;p>Pero eso ya lo sabéis. Lo vivisteis conmigo. Apenas guardo recuerdos claros de aquellos años de adolescencia. Mi mente hizo bien su trabajo: borró cuanto pudo para ayudarme a sanar. Quizá algún día vuelvan. Quizá sea mejor que no.&lt;/p>
&lt;p>Papá, nuestra relación fue difícil.&lt;/p>
&lt;p>La época y el contexto en los que nos tocó vivir y enfrentarnos no nos ayudaron. Hubo años de silencio, de rencor acumulado, de palabras que no se dijeron y otras que se dijeron de más.&lt;/p>
&lt;p>Pero a día de hoy la situación parece haberse tranquilizado. Llegamos a perdonarnos. Volvemos a hablarnos de vez en cuando. Y eso, después de todo lo vivido, es más de lo que muchos consiguen.&lt;/p>
&lt;p>No es perfecto, pero es real. Y lo real tiene más valor que cualquier ideal imposible.&lt;/p>
&lt;p>De un pasado tan turbio, me siento afortunado de no haber acabado en ningún otro camino que no sea este: el mío. Y cuando digo «el mío», me refiero al nuestro. Porque todos venimos del mismo sitio, de las mismas paredes, del mismo cielo de Caravaca.&lt;/p>
&lt;hr />
&lt;h2 id="nueve-ramas-1">Nueve ramas&lt;/h2>
&lt;p>Ocho hermanos del mismo padre y de la misma madre. Ocho ramas que crecieron juntas. Y una novena que vino después. Nueve en total. Del mismo árbol, cada una buscando su propio sol.&lt;/p>
&lt;p>&lt;strong>Maricarmen&lt;/strong>, la hermana mayor, que tuvo que aprender a ser mamá bien temprano. Cuando pudo, se enganchó a tierras belgas y allí está ahora, con dos hijos y un futuro por hacer.&lt;/p>
&lt;p>Nunca le agradecí lo suficiente por aquellos años en los que cargó con responsabilidades que no le correspondían. Era una niña que cuidaba a niños. Y lo hizo lo mejor que pudo.&lt;/p>
&lt;p>Ahora le toca construir su vida. La que eligió. La que se merece.&lt;/p>
&lt;p>&lt;strong>Juan&lt;/strong>, quizá el que más ha sufrido. El pasado le jugó mala suerte y ha tenido que aprender a base de muchos palos. La vida ha sido especialmente injusta con él en muchos aspectos.&lt;/p>
&lt;p>Y yo también lo fui. De pequeños era abusón con él. Le hice daño y eso es algo que llevo conmigo.&lt;/p>
&lt;p>Ojalá sepa perdonarme. Ojalá no se le olvide que estoy aquí para lo que necesite.&lt;/p>
&lt;p>Por suerte, desde hace bien poco, encontró su lugar. Lo tiene aún todo por delante. Pocos tienen la capacidad de levantarse después de caer tantas veces.&lt;/p>
&lt;p>&lt;strong>Jesús&lt;/strong>, el que parece de temperamento más tranquilo. Aprendió a sobrepasar las tempestades del castillo sin llamar demasiada atención. Me llena de orgullo ver quién es y en lo que se ha convertido: ponente en conferencias internacionales y una ayuda fundamental en los proyectos de código abierto que tenemos juntos.&lt;/p>
&lt;p>Vivimos cerca en Berlín y verle de vez en cuando me recuerda lo que significa tener familia. Disfruto mucho cuando quedamos para dar paseos por parques inmensos, andando durante horas hasta que se va la luz.&lt;/p>
&lt;p>Gracias por esos momentos. Hablar contigo en persona y saber que estás ahí es un regalo.&lt;/p>
&lt;p>&lt;strong>Ángel&lt;/strong>, el profesor de matemáticas. De los más inteligentes de la familia, sin lugar a dudas. De pequeño, sufrió una operación en la que perdió casi por completo un oído. Pero se superó, como siempre ha hecho.&lt;/p>
&lt;p>Tranquilo, humilde, nunca le gustó llamar la atención. Y siempre está ahí cuando un hermano le necesita.&lt;/p>
&lt;p>Y eso vale más que cualquier título.&lt;/p>
&lt;p>Un claro ejemplo de compromiso y pasión por su trabajo. Supo aprovechar las oportunidades conforme le vinieron. La prueba de que el esfuerzo da estupendos frutos.&lt;/p>
&lt;p>&lt;strong>Lola&lt;/strong>, luchadora y sensible a partes iguales. Es imposible negar lo vivido, lo mal que lo pasó de niña. Ella es quizá una de quienes más difícil lo han tenido.&lt;/p>
&lt;p>Pero hay que verla hoy.&lt;/p>
&lt;p>Aunque tengamos pensamientos diferentes en algunos aspectos, podemos entendernos a la perfección cuando se trata de humanidad, de ayuda, de familia. Y eso es lo que vale.&lt;/p>
&lt;p>De la niña que sufrió ha nacido una mujer que ayuda a otros a sufrir menos.&lt;/p>
&lt;p>Eso es convertir el dolor en propósito.&lt;/p>
&lt;p>&lt;strong>Cosme&lt;/strong>, el pequeño que ahora programa como los grandes. También tuvo una infancia difícil sin comprender lo que ocurría ni lo que le rodeaba. Todos fuimos desapareciendo cuando aún era un niño. Esa falta de afecto dejó huella.&lt;/p>
&lt;p>La empatía cuesta cuando, de pequeño, no la recibes. Pero está aprendiendo. Y eso es lo que cuenta.&lt;/p>
&lt;p>Por suerte encontró la pasión donde yo también la encontré: en el software. Pude guiarle como hermano mayor, ayudarle con todo mi ser, así como lo hice con Jesús y luego haría con Juan.&lt;/p>
&lt;p>Verle crecer profesionalmente ha sido una de mis mayores satisfacciones.&lt;/p>
&lt;p>&lt;strong>Anica&lt;/strong>, la más pequeña, la más lista. Ha sabido convertir la rabia en fuerza. Pilla y espabilada como pocas. Y pensar que no hace tanto odiaba el deporte…&lt;/p>
&lt;p>Quizá fue mi pasión por el boxeo lo que conseguí transmitirle. Hoy es entrenadora de gimnasio, compite en halterofilia y corre diez kilómetros de vez en cuando.&lt;/p>
&lt;p>Me emociona verla competir y ayudar a los demás. Disfruto mucho ir con ella a dar un paseo de hermanos o a hacer compras en Lidl.&lt;/p>
&lt;p>Esos momentos sencillos valen mucho.&lt;/p>
&lt;p>Transmitir pasión es una de las mejores herencias que uno puede legar. Y ella la ha hecho suya.&lt;/p>
&lt;p>Y por último está &lt;strong>Antonio&lt;/strong>. Otra rama, pero del mismo padre. Del mismo árbol al fin y al cabo.&lt;/p>
&lt;p>Apenas nos hemos visto un par de veces en la vida. Tuvo la suerte de llegar cuando las aguas ya estaban más calmadas. Tiene toda la vida por delante para estudiar, crecer como profesional, y ser quien quiera ser.&lt;/p>
&lt;p>Y si algún día le pica la curiosidad por aquellos pensamientos pasados, tiene un libro que publiqué en 2017 esperándole.&lt;/p>
&lt;p>Nueve ramas buscando su propio sol. Nueve formas de sobrevivir al mismo pasado. Nueve maneras de seguir adelante.&lt;/p>
&lt;hr />
&lt;h2 id="los-chachos">Los chachos&lt;/h2>
&lt;p>Pero la familia no es solo los hermanos.&lt;/p>
&lt;p>También están los que han estado ahí siempre, en lo bueno y en lo malo: los chachos de Caravaca. Mi tío Cosme y mi tía Angustias.&lt;/p>
&lt;p>Siempre habéis estado ahí. Para mí y para todos mis hermanos. Para hablar. Para escuchar. Para decir lo que necesitábamos oír.&lt;/p>
&lt;p>También estuvisteis en aquella época del castillo. No voy a entrar ahí. Solo quiero deciros que vuestro cariño en aquellos años me ayudó muchísimo.&lt;/p>
&lt;p>Pero esta vez, prefiero quedarme con otro recuerdo.&lt;/p>
&lt;p>Recuerdo cuando me echaron de mi primera empresa en Berlín, tras poco más de un año. De un día para otro. Algo me olía, pero no quería creerlo. Mirando atrás, yo también metí la pata más de una vez.&lt;/p>
&lt;p>«Te adocenaste», me dijo el chacho Cosme por teléfono al llegar a mi piso.&lt;/p>
&lt;p>Esa palabra se me quedó grabada. Tenía razón. Me había acomodado.&lt;/p>
&lt;p>Con mis ahorros podría haber aguantado unos meses. ¿Pero y después? ¿Y si no encontraba trabajo? La incertidumbre me obligó a mirarme de frente y reconocer mis errores.&lt;/p>
&lt;p>Tocaba enfocarse y surfear las olas. A las dos semanas de buscar —levantándome a las ocho y sin soltar el portátil hasta las cinco—, encontré trabajo.&lt;/p>
&lt;p>No podía darme por rendido. Y no lo hice.&lt;/p>
&lt;p>Y ese es solo un recuerdo de tantos. Las llamadas largas. Los consejos sin pedir. La sensación de tener a alguien que siempre escucha.&lt;/p>
&lt;p>Gracias, chachos. Por estar ahí. Por ser ese ancla que siempre ha estado en Caravaca esperando.&lt;/p>
&lt;p>Os quiero.&lt;/p>
&lt;hr />
&lt;h2 id="anna-lena">Anna-Lena&lt;/h2>
&lt;p>Y luego está ella. La que apareció cuando menos lo esperaba.&lt;/p>
&lt;p>Nos conocimos en un bar de cervezas, entre desconocidos, una noche cualquiera.&lt;/p>
&lt;p>Desde que te vi entrar, estuvimos hablando durante horas hasta que te tuviste que ir.&lt;/p>
&lt;p>Luego empezamos a ir juntos al cine, a otros bares, a pasear. Y al final nos empezamos a ver casi a diario. Un año después decidimos vivir juntos.&lt;/p>
&lt;p>En febrero de 2026 haremos ocho años. Ocho años construyendo algo juntos, día a día, sin prisas pero sin pausas.&lt;/p>
&lt;p>Gracias por estar ahí. Por aguantarme. Por quererme como soy. Por ser mi hogar en Berlín.&lt;/p>
&lt;p>Porque al final, eso es lo que importa: tener a alguien con quien compartir el camino.&lt;/p>
&lt;hr />
&lt;h2 id="lo-mas-importante">Lo más importante&lt;/h2>
&lt;p>Once años dan para mucho. Para caer y levantarse. Para perderse y encontrarse. Para aprender que la vida es movimiento y que la clave está en saber surfear cada etapa.&lt;/p>
&lt;p>Nadie dijo que fuera fácil. Y cuando no se puede más, pues a descansar de forma merecida.&lt;/p>
&lt;p>El futuro es incierto, pero lo que sí es universal es que nuestra vida es finita. No hablo de vivir como si no hubiera mañana, sino de no olvidar que el tiempo avanza.&lt;/p>
&lt;p>Hace diez años, en diciembre de 2015, decidí pasar la Navidad solo en Berlín. No tenía amigos entonces. No hice nada especial esos días.&lt;/p>
&lt;p>Me sentía muy solo.&lt;/p>
&lt;p>De ahí nacieron pensamientos oscuros que quedaron plasmados en «Ojos en un recuerdo». Ese año, 2016, fue bastante intenso. Me pasé enero escribiendo dos o cuatro horas casi cada día.&lt;/p>
&lt;p>Creo que mi cuerpo y mi mente intentaban decirme algo. Necesitaban expresarse.&lt;/p>
&lt;p>Qué alegría haber creado un libro. Otro proyecto más, otro de tantos ya realizados y de los que aún están por realizarse.&lt;/p>
&lt;p>Pequeñas victorias que endulzan el esfuerzo.&lt;/p>
&lt;p>Pero ninguna victoria tiene el mismo sabor si no hay con quien celebrarla.&lt;/p>
&lt;p>Y vosotros sois ese alguien: Papá. Maricarmen. Juan. Jesús. Ángel. Lola. Cosme. Anica. Antonio. Chacho Cosme. Chacha Angustias. Y Anna-Lena.&lt;/p>
&lt;p>Sois las ramas —y las raíces— de este árbol que sigo siendo.&lt;/p>
&lt;p>La distancia física no disminuye el amor. Las pocas veces que nos vemos al año no reducen lo que significáis para mí.&lt;/p>
&lt;p>Gracias por ser quienes sois. Gracias por seguir ahí. Gracias por perdonar cuando hubo que perdonar. Gracias por levantaros cada vez que la vida os tumbó.&lt;/p>
&lt;p>Estoy orgulloso de pertenecer a esta familia.&lt;/p>
&lt;p>Y aunque el tiempo pase y cada uno siga su camino, siempre seremos del mismo árbol. Mamá sigue aquí, en cada uno de nosotros.&lt;/p>
&lt;p>Siempre seremos ramas buscando nuestro propio sol.&lt;/p>
&lt;p>Con los ojos en un recuerdo, mirando hacia adelante.&lt;/p>
&lt;p>Trabaja. Quiere. Sueña. Sonríe.&lt;/p>
&lt;p>Pero juntos.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/familia.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Fundamentos de Bitcoin</title><subtitle>Una guía para principiantes sobre dinero sólido</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2025-11-21T00:00:00+00:00</published><updated>2025-11-21T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/bitcoin-fundamentals/"/><id>https://chemaclass.com/es/blog/bitcoin-fundamentals/</id><summary type="html">Límite de 21 millones, sin autoridad central, sin permisos y resistente a la censura. Bitcoin es dinero digital que realmente posees.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-12-21/footer.jpg" alt="blog-cover" />&lt;/p>
&lt;p>¿Qué harías si tu cuenta bancaria fuera congelada mañana? Sin aviso, sin explicación, sin acceso a tu propio dinero.&lt;/p>
&lt;p>Esto no es hipotético. En 2022, Canadá congeló cuentas bancarias de personas que donaron a una protesta. En 2015, los griegos solo podían retirar 60€ por día de los cajeros. En Argentina, Turquía y Líbano, la gente vio sus ahorros perder la mitad de su valor en meses.&lt;/p>
&lt;p>Bitcoin existe porque estas cosas pasan. Para entenderlo hay que volver a lo básico: qué es el dinero, por qué importa, y cómo encaja Bitcoin en todo esto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>&lt;em>No se requiere conocimiento técnico. Solo curiosidad.&lt;/em>&lt;/p>
&lt;h2 id="una-breve-historia-del-dinero">Una breve historia del dinero&lt;/h2>
&lt;p>El dinero es un acuerdo social. Un trozo de papel, una moneda de oro o un número en una pantalla tiene valor porque todos aceptamos que lo tiene. Ese acuerdo es lo que hace posible el comercio.&lt;/p>
&lt;p>A lo largo de la historia, el dinero ha evolucionado:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Intercambio directo&lt;/strong>: Intercambiar bienes por bienes. “Te doy mi pescado por tu pan.”&lt;/li>
&lt;li>&lt;strong>Cosas usadas como dinero&lt;/strong>: Conchas, sal, ganado. Valiosas porque eran útiles o difíciles de encontrar.&lt;/li>
&lt;li>&lt;strong>Metales preciosos&lt;/strong>: Oro y plata. Difíciles de encontrar, duraderos, fáciles de dividir y transportar.&lt;/li>
&lt;li>&lt;strong>Papel moneda respaldado por oro&lt;/strong>: Recibos representando oro almacenado en bóvedas.&lt;/li>
&lt;li>&lt;strong>Dinero del gobierno&lt;/strong>: Papel respaldado solo por una promesa del gobierno. ¿Por qué funciona? Porque los gobiernos te exigen pagar impuestos en su moneda, y eso obliga a todos a usarlo.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>El dinero es una forma de almacenar y transferir valor. Cuanto mejor realice estas funciones, mejor sirve como dinero.&lt;/p>
&lt;/blockquote>
&lt;p>¿Qué hace buen dinero? Estas propiedades:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Difícil de crear&lt;/strong>: No puede ser fácilmente fabricado o falsificado&lt;/li>
&lt;li>&lt;strong>Duradero&lt;/strong>: No se deteriora con el tiempo&lt;/li>
&lt;li>&lt;strong>Divisible&lt;/strong>: Puede dividirse en piezas más pequeñas&lt;/li>
&lt;li>&lt;strong>Fácil de mover&lt;/strong>: Simple de transportar y enviar&lt;/li>
&lt;li>&lt;strong>Fácil de verificar&lt;/strong>: Simple de comprobar si es real&lt;/li>
&lt;/ul>
&lt;p>El oro cumple bien con la mayoría. El papel moneda es fácil de mover y dividir, pero falla en ser difícil de crear: los gobiernos pueden imprimir tanto como quieran. Bitcoin, como veremos, cumple con todas.&lt;/p>
&lt;h2 id="que-es-bitcoin">¿Qué es Bitcoin?&lt;/h2>
&lt;p>Bitcoin es dinero digital que funciona sin bancos, gobiernos ni ninguna autoridad central. Lo creó en 2009 alguien (o algún grupo) bajo el seudónimo &lt;a rel="external" href="https://es.wikipedia.org/wiki/Satoshi_Nakamoto">Satoshi Nakamoto&lt;/a>. Nadie sabe quién es realmente.&lt;/p>
&lt;p>El primer bloque de Bitcoin (el &lt;a rel="external" href="https://en.bitcoin.it/wiki/Genesis_block">Bloque Génesis&lt;/a>) contiene un mensaje oculto: &lt;em>“The Times 03/Jan/2009 Chancellor on brink of second bailout for banks.”&lt;/em> Este titular del periódico The Times hacía referencia a la crisis financiera de 2008. No fue aleatorio: era una marca de tiempo y una declaración de propósito. Bitcoin nació como respuesta a los rescates bancarios y la manipulación monetaria.&lt;/p>
&lt;p>Bitcoin se construye sobre décadas de trabajo de criptógrafos y activistas de la privacidad. Si te interesa conocer a las personas e ideas que lo hicieron posible, escribí sobre &lt;a href="/es/blog/the-cypherpunks/">Los Cypherpunks&lt;/a> y su visión de la privacidad digital.&lt;/p>
&lt;p>En su núcleo, Bitcoin es:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Un protocolo&lt;/strong>: Un conjunto de reglas que las computadoras siguen para acordar quién posee qué&lt;/li>
&lt;li>&lt;strong>Una red&lt;/strong>: Miles de computadoras en todo el mundo ejecutando el software de Bitcoin&lt;/li>
&lt;li>&lt;strong>Una moneda&lt;/strong>: Unidades de cuenta llamadas bitcoins (BTC), divisibles hasta 8 decimales&lt;/li>
&lt;/ul>
&lt;p>No hay ninguna empresa detrás de Bitcoin. Sin CEO, sin oficinas centrales, sin soporte al cliente. Es software de código abierto que cualquiera puede ejecutar, inspeccionar o mejorar.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/d7ID3fKAFQM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="dinero-solido">Dinero sólido&lt;/h2>
&lt;h3 id="escasez">Escasez&lt;/h3>
&lt;p>Solo habrá 21 millones de bitcoins. Lo garantiza el código del protocolo, verificado por cada nodo en la red. Ningún gobierno, ningún comité, ninguna reunión de emergencia puede cambiar esto.&lt;/p>
&lt;p>Compáralo con el dinero del gobierno. Los bancos centrales pueden (y lo hacen) crear dinero cuando quieren. El dólar estadounidense ha perdido más del 95% de su poder adquisitivo desde 1913. El Euro, la Libra, el Yen: todos siguen el mismo patrón de perder valor poco a poco.&lt;/p>
&lt;blockquote>
&lt;p>En un mundo de impresión de dinero infinita, un límite máximo matemáticamente aplicado es revolucionario.&lt;/p>
&lt;/blockquote>
&lt;p>A Bitcoin le llaman “oro digital” porque comparte la escasez del oro, pero es más fácil de almacenar, dividir y transferir. Puedes enviar mil millones de dólares en Bitcoin a cualquier parte del mundo en minutos, por unos pocos dólares en comisiones. Intenta hacer eso con lingotes de oro.&lt;/p>
&lt;h3 id="proteccion-contra-la-inflacion">Protección contra la inflación&lt;/h3>
&lt;p>Cuando los gobiernos imprimen dinero, el valor del dinero existente disminuye. Eso es la inflación. Tus ahorros compran menos con el tiempo, aunque sigan intactos en tu cuenta bancaria.&lt;/p>
&lt;p>A la inflación le llaman “impuesto oculto” porque transfiere riqueza de los ahorradores a quienes reciben el dinero nuevo primero (normalmente gobiernos y bancos). Escribí más sobre esto en &lt;a href="/es/blog/understanding-taxes/">Entendiendo los Impuestos&lt;/a>.&lt;/p>
&lt;p>El calendario de emisión de Bitcoin es fijo y predecible. Los nuevos bitcoins se crean mediante minería, a un ritmo que se reduce a la mitad cada cuatro años aproximadamente. Alrededor del 2140 se habrán creado los 21 millones. Sin sorpresas, sin decisiones políticas de imprimir más.&lt;/p>
&lt;h2 id="libertad-y-soberania">Libertad y soberanía&lt;/h2>
&lt;h3 id="auto-custodia">Auto-custodia&lt;/h3>
&lt;p>Con Bitcoin puedes guardar tu propio dinero. No una promesa de un banco, no un saldo en los libros de otro. Propiedad real, asegurada por claves criptográficas que solo tú controlas.&lt;/p>
&lt;blockquote>
&lt;p>“No tus llaves, no tus monedas.”&lt;/p>
&lt;/blockquote>
&lt;p>Esta frase captura una verdad fundamental. Cuando depositas dinero en un banco, ya no lo posees. Tienes un derecho contra el banco. Si el banco congela tu cuenta, quiebra o decide que violaste sus términos de servicio, tu acceso desaparece.&lt;/p>
&lt;p>Con Bitcoin, no hay botón de congelar. No hay cuenta que cerrar. No hay términos de servicio que violar. Te conviertes en tu propio banco.&lt;/p>
&lt;h3 id="sin-permisos-y-sin-fronteras">Sin permisos y sin fronteras&lt;/h3>
&lt;p>A Bitcoin no le importan las fronteras, los horarios bancarios ni tu historial crediticio. Puedes enviar dinero a cualquiera con conexión a internet, en cualquier parte del mundo, a cualquier hora.&lt;/p>
&lt;p>Banca tradicional:&lt;/p>
&lt;ul>
&lt;li>Horario: Lunes-Viernes, 9-5 (quizás)&lt;/li>
&lt;li>Transferencias internacionales: 3-5 días hábiles&lt;/li>
&lt;li>Comisiones: Porcentaje de la transferencia + comisiones fijas&lt;/li>
&lt;li>Requisitos: DNI, prueba de domicilio, cuenta en buen estado&lt;/li>
&lt;/ul>
&lt;p>Bitcoin:&lt;/p>
&lt;ul>
&lt;li>Horario: 24/7/365&lt;/li>
&lt;li>Transferencias globales: ~10 minutos a una hora&lt;/li>
&lt;li>Comisiones: Basadas en tamaño de datos, no cantidad enviada&lt;/li>
&lt;li>Requisitos: Una dirección Bitcoin (gratis, instantánea, sin DNI)&lt;/li>
&lt;/ul>
&lt;h3 id="resistencia-a-la-censura">Resistencia a la censura&lt;/h3>
&lt;p>Ninguna autoridad central controla Bitcoin. Ninguna entidad puede detener una transacción ni revertir un pago. Una vez confirmada, es definitiva.&lt;/p>
&lt;p>Esto importa para quienes viven bajo gobiernos opresivos, enfrentan presión política o simplemente quieren privacidad financiera. Importa para donaciones a causas controversiales, para periodistas que protegen sus fuentes, para cualquiera que valore la libertad financiera.&lt;/p>
&lt;blockquote>
&lt;p>La libertad financiera no es solo ser rico. Es tener control sobre tu propio dinero, sin importar quién seas o dónde vivas.&lt;/p>
&lt;/blockquote>
&lt;h3 id="historias-reales">Historias reales&lt;/h3>
&lt;p>Estos no son casos extremos:&lt;/p>
&lt;div class="interactive-list" data-component="interactive-list" style="--interactive-list-nav-height: 450px;">
&lt;div class="interactive-list__container">
&lt;nav class="interactive-list__nav" role="tablist" aria-label="Historias reales">
&lt;button class="interactive-list__tab active" role="tab" aria-selected="true" data-target="wikileaks">
&lt;span class="interactive-list__label">WikiLeaks 2010&lt;/span>
&lt;span class="interactive-list__summary">Pagos bloqueados&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="cyprus">
&lt;span class="interactive-list__label">Chipre 2013&lt;/span>
&lt;span class="interactive-list__summary">Rescates bancarios&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="greece">
&lt;span class="interactive-list__label">Grecia 2015&lt;/span>
&lt;span class="interactive-list__summary">Controles de capital&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="venezuela">
&lt;span class="interactive-list__label">Venezuela 2016&lt;/span>
&lt;span class="interactive-list__summary">1.000.000% inflación&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="lebanon">
&lt;span class="interactive-list__label">Líbano 2019&lt;/span>
&lt;span class="interactive-list__summary">Colapso bancario&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="hongkong">
&lt;span class="interactive-list__label">Hong Kong 2019&lt;/span>
&lt;span class="interactive-list__summary">Financiación de protestas&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="belarus">
&lt;span class="interactive-list__label">Bielorrusia 2020&lt;/span>
&lt;span class="interactive-list__summary">Resistencia al régimen&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="nigeria">
&lt;span class="interactive-list__label">Nigeria 2021&lt;/span>
&lt;span class="interactive-list__summary">Prohibición fallida&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="turkey">
&lt;span class="interactive-list__label">Turquía 2021&lt;/span>
&lt;span class="interactive-list__summary">Devaluación de la lira&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="elsalvador">
&lt;span class="interactive-list__label">El Salvador 2021&lt;/span>
&lt;span class="interactive-list__summary">Moneda de curso legal&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="afghanistan">
&lt;span class="interactive-list__label">Afganistán 2021&lt;/span>
&lt;span class="interactive-list__summary">Ahorros de mujeres&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="ukraine">
&lt;span class="interactive-list__label">Ucrania 2022&lt;/span>
&lt;span class="interactive-list__summary">$100M+ en donaciones&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="canada">
&lt;span class="interactive-list__label">Canadá 2022&lt;/span>
&lt;span class="interactive-list__summary">Cuentas congeladas&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="russia">
&lt;span class="interactive-list__label">Rusia 2022&lt;/span>
&lt;span class="interactive-list__summary">Escape de sanciones&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="argentina">
&lt;span class="interactive-list__label">Argentina 2023-25&lt;/span>
&lt;span class="interactive-list__summary">Inflación reducida&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="remittances">
&lt;span class="interactive-list__label">Remesas 2023&lt;/span>
&lt;span class="interactive-list__summary">Transferencias más baratas&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="etfs">
&lt;span class="interactive-list__label">ETFs Bitcoin 2024&lt;/span>
&lt;span class="interactive-list__summary">Legitimidad institucional&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="gaza">
&lt;span class="interactive-list__label">Gaza 2024&lt;/span>
&lt;span class="interactive-list__summary">Línea de vida humanitaria&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="usreserve">
&lt;span class="interactive-list__label">Reserva EEUU 2025&lt;/span>
&lt;span class="interactive-list__summary">Estrategia nacional&lt;/span>
&lt;/button>
&lt;button class="interactive-list__tab" role="tab" aria-selected="false" data-target="machado">
&lt;span class="interactive-list__label">Venezuela 2025&lt;/span>
&lt;span class="interactive-list__summary">Resistencia Nobel&lt;/span>
&lt;/button>
&lt;/nav>
&lt;div class="interactive-list__panels">
&lt;div class="interactive-list__panel active" role="tabpanel" id="panel-wikileaks">
&lt;div class="interactive-list__content">
&lt;p>En diciembre de 2010, WikiLeaks publicó cables diplomáticos clasificados de EE.UU. En días, Visa, Mastercard, PayPal y Bank of America cortaron todo procesamiento de pagos. &lt;br> &lt;br> WikiLeaks perdió el 95% de sus ingresos de la noche a la mañana. En 2011, empezaron a aceptar Bitcoin. Fue uno de los primeros casos de uso importantes para la criptomoneda. El bloqueo financiero destinado a silenciarlos en cambio demostró el valor de Bitcoin como dinero resistente a la censura.&lt;/p>
&lt;/div>
&lt;a href="https://www.cnbc.com/2017/10/16/wikileaks-julian-assange-bitcoin-50000-percent-return-thanks-to-us-government.html" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-cyprus">
&lt;div class="interactive-list__content">
&lt;p>En marzo de 2013, los bancos de Chipre tomaron el 47.5% de todos los depósitos superiores a 100.000€ para rescatarse a sí mismos. Sin consentimiento, sin aviso. El dinero en el banco fue simplemente confiscado para salvar el sistema bancario. &lt;br> &lt;br> El precio de Bitcoin se duplicó en las semanas siguientes. El rescate de Chipre fue una llamada de atención: tu balance bancario es un pagaré, y cuando los bancos fallan, tú eres quien paga.&lt;/p>
&lt;/div>
&lt;a href="https://www.reuters.com/article/us-eurozone-cyprus-deposit-idUSBRE92O0R120130325/" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-greece">
&lt;div class="interactive-list__content">
&lt;p>En junio de 2015, Grecia cerró sus bancos durante tres semanas. Los retiros de cajeros se limitaron a 60€ por día. Los ciudadanos no podían acceder a su propio dinero. La crisis de deuda mostró a los europeos que los depósitos bancarios no son tan seguros como asumían. &lt;br> &lt;br> El interés en Bitcoin se disparó en Grecia durante la crisis. Fue una advertencia temprana: incluso en países "estables", tu acceso al dinero puede cortarse de la noche a la mañana.&lt;/p>
&lt;/div>
&lt;a href="https://www.nbcnews.com/business/business-news/greece-crisis-banks-shut-week-restrictions-imposed-atms-n383606" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-venezuela">
&lt;div class="interactive-list__content">
&lt;p>Entre 2016 y 2019, la inflación alcanzó el 53.000.000%. Los salarios se volvían inútiles en días. La gente no podía comprar comida, medicina o bienes básicos. Quienes convirtieron sus ahorros a Bitcoin antes del colapso preservaron su riqueza. &lt;br> &lt;br> Quienes confiaron en el sistema bancario perdieron todo. Bitcoin se convirtió en una línea de vida. No para especular, sino para sobrevivir.&lt;/p>
&lt;/div>
&lt;a href="https://www.ccn.com/education/crypto/venezuela-inflation-bitcoin-usdt-p2p-crypto-lifeline/" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-lebanon">
&lt;div class="interactive-list__content">
&lt;p>En 2019, los bancos libaneses empezaron a congelar depósitos. Para 2020, la gente no podía acceder a sus propios ahorros. La lira perdió el 90% de su valor. Los retiros de cajeros se limitaron a cantidades ínfimas. No fue una medida temporal. Los bancos simplemente no tenían el dinero. &lt;br> &lt;br>Quienes habían convertido a Bitcoin antes del colapso aún podían acceder a su riqueza. Quienes confiaron en los bancos descubrieron que "tu dinero" no era realmente tuyo.&lt;/p>
&lt;/div>
&lt;a href="https://www.cnbc.com/2022/11/05/-in-bankrupt-lebanon-locals-mine-bitcoin-and-buy-groceries-with-tether.html" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-hongkong">
&lt;div class="interactive-list__content">
&lt;p>Durante las protestas pro-democracia de 2019-2020, los activistas de Hong Kong enfrentaron vigilancia financiera. Los bancos podían congelar cuentas de manifestantes conocidos. Las donaciones a través de canales tradicionales podían ser rastreadas. &lt;br> &lt;br>Bitcoin ofreció una forma de financiar el movimiento sin dejar rastro para las autoridades. Los manifestantes usaron crypto para recibir apoyo internacional mientras protegían sus identidades. La privacidad financiera se convirtió en una herramienta de resistencia.&lt;/p>
&lt;/div>
&lt;a href="https://cointelegraph.com/news/spotlight-on-bitcoin-as-hsbc-shuts-hong-kong-protest-linked-account" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-belarus">
&lt;div class="interactive-list__content">
&lt;p>Después de las disputadas elecciones de 2020, Bielorrusia estalló en protestas. El régimen de Lukashenko respondió con violencia y represión financiera. Las cuentas bancarias de activistas, periodistas y ONGs fueron congeladas. &lt;br> &lt;br>El KGB monitoreaba todas las transferencias. Un fondo de solidaridad llamado BYSOL recaudó más de $2 millones en Bitcoin y los distribuyó directamente a manifestantes que perdieron sus trabajos o enfrentaron persecución. El único método de pago que las autoridades no podían controlar.&lt;/p>
&lt;/div>
&lt;a href="https://www.euronews.com/my-europe/2021/12/22/meet-the-ngo-turning-to-cryptocurrencies-to-help-desperate-belarusians" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-nigeria">
&lt;div class="interactive-list__content">
&lt;p>El Banco Central prohibió los exchanges de crypto en febrero de 2021 y ordenó a los bancos cerrar cuentas de cualquiera que tratara con criptomonedas. El objetivo era detener la adopción de Bitcoin. Salió mal. &lt;br> &lt;br>El trading peer-to-peer aumentó un 27% en los meses siguientes a la prohibición. Los nigerianos simplemente se movieron a plataformas descentralizadas. La naira continuó perdiendo valor mientras Bitcoin seguía funcionando. No puedes prohibir las matemáticas.&lt;/p>
&lt;/div>
&lt;a href="https://www.nasdaq.com/articles/bitcoin-peer-to-peer-trading-in-nigeria-rises-27-since-central-banks-ban-2021-04-23" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-turkey">
&lt;div class="interactive-list__content">
&lt;p>La lira turca ha perdido más del 80% de su valor frente al dólar desde 2018. Cada crisis monetaria dispara un pico en el trading de Bitcoin. En 2021, Turquía prohibió los pagos con crypto, pero los volúmenes de trading solo aumentaron. &lt;br> &lt;br>El gobierno no puede impedir que la gente proteja sus ahorros. Cuando la lira se desploma, las búsquedas de Bitcoin se disparan. Los turcos no están especulando. Están sobreviviendo.&lt;/p>
&lt;/div>
&lt;a href="https://www.reuters.com/world/middle-east/turkeys-slumping-lira-adds-fuels-crypto-trading-boom-2021-03-31/" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-elsalvador">
&lt;div class="interactive-list__content">
&lt;p>En septiembre de 2021, El Salvador se convirtió en el primer país en hacer Bitcoin moneda de curso legal. El gobierno del presidente Bukele instaló cajeros Bitcoin en todo el país, e incluso empezó a minar BTC usando energía geotérmica de volcanes. Los críticos predijeron un desastre. &lt;br> &lt;br>En cambio, el turismo aumentó, los costos de remesas cayeron, y el país ganó atención global. Una pequeña nación se convirtió en un laboratorio de Bitcoin.&lt;/p>
&lt;/div>
&lt;a href="https://cointelegraph.com/news/el-salvador-bitcoin-holdings-unrealized-gains" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-afghanistan">
&lt;div class="interactive-list__content">
&lt;p>Cuando los Talibán tomaron el control en agosto de 2021, los bancos se congelaron. Las transferencias internacionales se detuvieron. Las mujeres, prohibidas de trabajar, perdieron acceso a ingresos. Pero algunas mujeres afganas habían aprendido sobre Bitcoin antes del colapso. &lt;br> &lt;br>Podían recibir pagos del extranjero, almacenar valor que el régimen no podía confiscar, y mantener independencia financiera. En un país donde las mujeres no pueden abrir cuentas bancarias, Bitcoin se convirtió en una herramienta de resistencia silenciosa.&lt;/p>
&lt;/div>
&lt;a href="https://bitcoinmagazine.com/culture/bitcoin-financial-freedom-in-afghanistan" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-ukraine">
&lt;div class="interactive-list__content">
&lt;p>Cuando Rusia invadió, la ayuda tradicional era demasiado lenta. Los bancos estaban saturados, las transferencias bancarias tardaban días. Pero en horas después de publicar direcciones Bitcoin en Twitter, las donaciones llegaron de todo el mundo. Para marzo de 2022, Ucrania recibió más de $100 millones en crypto. &lt;br> &lt;br>Los fondos fueron directamente a chalecos antibalas, suministros médicos y equipos de comunicación. Sin burocracia, sin intermediarios, sin retrasos.&lt;/p>
&lt;/div>
&lt;a href="https://www.coindesk.com/business/2022/03/09/ukraine-has-received-close-to-100-million-in-crypto-donations" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-canada">
&lt;div class="interactive-list__content">
&lt;p>En febrero de 2022, el gobierno invocó la Ley de Emergencias para congelar cuentas bancarias de personas que donaron a las protestas de camioneros. Sin orden judicial necesaria. Más de 200 cuentas fueron congeladas de la noche a la mañana. Pero las donaciones en Bitcoin siguieron llegando. &lt;br> &lt;br>Los organizadores distribuyeron 14+ BTC directamente a los manifestantes. El gobierno no pudo tocar esos fondos. En 2024, un tribunal dictaminó que los congelamientos fueron inconstitucionales. La lección: el dinero custodiado puede ser usado como arma.&lt;/p>
&lt;/div>
&lt;a href="https://fortune.com/2022/03/15/how-canada-protest-crypto-crackdown-made-the-case-for-bitcoin-self-custody-nick-neuman/" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-russia">
&lt;div class="interactive-list__content">
&lt;p>Después de que Rusia invadió Ucrania en 2022, las sanciones occidentales cortaron a los bancos rusos de SWIFT. De repente, los rusos en el extranjero no podían acceder a su dinero. Muchos recurrieron a crypto, no para evadir sanciones, sino para sobrevivir. &lt;br> &lt;br>Mientras tanto, los ucranianos usaron Bitcoin para recibir donaciones y preservar ahorros. La misma tecnología sirvió a personas en ambos lados de un conflicto, basándose en sus necesidades individuales. Bitcoin no elige bandos.&lt;/p>
&lt;/div>
&lt;a href="https://us.boell.org/en/2022/04/08/crypto-both-sides-russia-ukraine-war" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-argentina">
&lt;div class="interactive-list__content">
&lt;p>Argentina sufrió 211% de inflación en 2023 bajo décadas de políticas de gobierno grande. Luego Javier Milei asumió el cargo. Redujo a la mitad los ministerios, despidió 40.000 empleados públicos, y terminó con la financiación monetaria. Resultado: la inflación cayó a 117% en 2024, luego a 31% a finales de 2025, la más baja en siete años. El PIB creció 7.6% en Q2 2025, el más fuerte en dos décadas. &lt;br> &lt;br>La pobreza cayó del 57% al 32%. Gobierno más pequeño, principios de dinero sólido. La adopción de Bitcoin sigue alta, los argentinos aprendieron a no confiar en ninguna moneda que no puedan verificar ellos mismos.&lt;/p>
&lt;/div>
&lt;a href="https://www.aljazeera.com/economy/2025/7/25/milei-tames-inflation-but-argentines-still-struggle-to-afford-basics" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-remittances">
&lt;div class="interactive-list__content">
&lt;p>Los trabajadores migrantes envían $700 mil millones a casa cada año. Los servicios tradicionales como Western Union toman 6-10% en comisiones. Para un trabajador enviando $200, eso son $20 que desaparecen. Dinero que su familia necesita desesperadamente. &lt;br> &lt;br>Bitcoin y Lightning Network transfieren valor a través de fronteras por centavos, liquidando en minutos en lugar de días. Empresas como Bitso procesaron $8 mil millones en remesas crypto en 2023. Transferencias más baratas significan más comida en la mesa.&lt;/p>
&lt;/div>
&lt;a href="https://www.coindesk.com/consensus-magazine/2023/04/17/send-globally-crypto-remittance-service" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-etfs">
&lt;div class="interactive-list__content">
&lt;p>En enero de 2024, la SEC aprobó ETFs de Bitcoin por primera vez. En meses, la inversión institucional se disparó un 400%. A finales de 2024, los inversores profesionales tenían $27.4 mil millones en ETFs de Bitcoin, más del 26% del AUM total. Solo el IBIT de BlackRock alcanzó $50 mil millones. &lt;br> &lt;br>Bitcoin ya no era solo para early adopters. Wall Street lo llamó "año cero de la adopción institucional". El activo que los bancos una vez desestimaron ahora está en fondos de pensiones.&lt;/p>
&lt;/div>
&lt;a href="https://www.cnbc.com/2024/01/10/sec-approves-rule-changes-that-pave-the-way-for-bitcoin-etfs.html" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-gaza">
&lt;div class="interactive-list__content">
&lt;p>Cuando las importaciones de efectivo a Gaza fueron bloqueadas en 2024, la infraestructura bancaria colapsó. Las transferencias tradicionales cobraban más del 30%, si funcionaban. Bitcoin se convirtió en una línea de vida. Un voluntario envió $123.000 en BTC que compraron comida, agua y construyeron refugios para familias desplazadas. &lt;br> &lt;br>Un taxista llamado Yusef recibió $48k en donaciones Bitcoin y construyó 100 tiendas. Cuando los bancos fallan, Bitcoin sigue funcionando. Sin permiso necesario.&lt;/p>
&lt;/div>
&lt;a href="https://bitcoinmagazine.com/culture/palestinian-taxi-driver-uses-bitcoin-to-save-civilians-in-gaza-" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-usreserve">
&lt;div class="interactive-list__content">
&lt;p>El 6 de marzo de 2025, el presidente Trump firmó una orden ejecutiva estableciendo una Reserva Estratégica de Bitcoin, un "Fort Knox digital". La reserva tiene ~200.000 BTC de activos incautados, con política de nunca vender. &lt;br> &lt;br>EE.UU. había perdido $17 mil millones vendiendo bitcoin incautado demasiado temprano. Ahora lo mantienen. Pakistán anunció su propia reserva semanas después. Naciones que una vez desestimaron Bitcoin ahora compiten por acumularlo.&lt;/p>
&lt;/div>
&lt;a href="https://www.whitehouse.gov/fact-sheets/2025/03/fact-sheet-president-donald-j-trump-establishes-the-strategic-bitcoin-reserve-and-u-s-digital-asset-stockpile/" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;div class="interactive-list__panel" role="tabpanel" id="panel-machado">
&lt;div class="interactive-list__content">
&lt;p>María Corina Machado ganó el Premio Nobel de la Paz 2025 por luchar contra la dictadura venezolana. Su campaña funciona con Bitcoin porque "las transferencias bancarias se bloquean, pero las donaciones de bitcoin no pueden ser incautadas". Con el bolívar caído un 98% en una década e inflación del 8.000%+, Bitcoin se convirtió en "un medio vital de resistencia". &lt;br> &lt;br>Prometió que una Venezuela democrática abrazaría Bitcoin en sus reservas nacionales. Dinero de libertad para una luchadora por la libertad.&lt;/p>
&lt;/div>
&lt;a href="https://cointelegraph.com/news/nobel-prize-maria-corina-machado-pro-bitcoin" class="interactive-list__link" target="_blank" rel="noopener">Leer artículo completo →&lt;/a>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;/div>
&lt;h2 id="objeciones-comunes">Objeciones comunes&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>“Se usa para el crimen.”&lt;/strong> También el efectivo. La diferencia: Bitcoin deja un registro permanente y rastreable. La blockchain es una &lt;a rel="external" href="https://www.chainalysis.com/blog/2025-crypto-crime-report-introduction/">herramienta forense&lt;/a>. La mayoría de los criminales prefieren dólares.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>“Es demasiado volátil.”&lt;/strong> Cierto a corto plazo. Pero si amplías el zoom, Bitcoin ha sido el &lt;a rel="external" href="https://www.coingecko.com/research/publications/bitcoin-versus-traditional-assets-price-returns">activo con mejor rendimiento de la última década&lt;/a>. La volatilidad baja conforme crece la adopción. No inviertas dinero que necesites el mes que viene.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>“Desperdicia energía.”&lt;/strong> La minería de Bitcoin usa electricidad para asegurar una red de un billón de dólares. Mucha viene de &lt;a rel="external" href="https://k33.com/research/archive/articles/bitcoin-mining-using-stranded-natural-gas-is-the-most-cost-effective-way-to">energía varada&lt;/a> (quema de gas, exceso hidro) que de otra forma se desperdiciaría. La pregunta real: ¿vale la pena ese coste energético a cambio de soberanía financiera? El aire acondicionado usa más.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>“Es demasiado tarde para comprar.”&lt;/strong> La gente decía esto a $100, $1.000, $10.000 y $100.000. Si Bitcoin alcanza aunque sea una fracción de la &lt;a rel="external" href="https://8marketcap.com/">capitalización de mercado del oro&lt;/a>, aún hay margen de crecimiento.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="advertencias-honestas">Advertencias honestas&lt;/h2>
&lt;p>Bitcoin no es perfecto. Ten en cuenta:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>La auto-custodia requiere responsabilidad.&lt;/strong> Pierde tu frase semilla, pierde tus fondos. Sin soporte al cliente.&lt;/li>
&lt;li>&lt;strong>Irreversibilidad.&lt;/strong> Sin contracargos. ¿Enviaste a la dirección equivocada? Perdido.&lt;/li>
&lt;li>&lt;strong>Curva de aprendizaje.&lt;/strong> Wallets, claves, comisiones, trading P2P. Cuanto más aprendes, más soberanía ganas. Los exchanges con KYC son más fáciles, pero vienen con condiciones regulatorias.&lt;/li>
&lt;li>&lt;strong>La privacidad requiere esfuerzo.&lt;/strong> La blockchain es transparente, no anónima. La verdadera privacidad requiere aprender a usar Bitcoin correctamente.&lt;/li>
&lt;li>&lt;strong>Compensaciones de escalabilidad.&lt;/strong> La capa base es lenta por diseño. Lightning añade velocidad pero también complejidad.&lt;/li>
&lt;/ul>
&lt;p>Ninguno de estos son obstáculos insuperables. Son compensaciones. Cuanto más aprendes, menos limitaciones enfrentas.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-12-21/footer.jpg" alt="blog-cover" />&lt;/p>
&lt;h2 id="bitcoin-hoy">Bitcoin hoy&lt;/h2>
&lt;p>Ya no es solo teoría.&lt;/p>
&lt;h3 id="adopcion-institucional">Adopción institucional&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>ETFs de Bitcoin de EE.UU.&lt;/strong> aprobados en 2024, trayendo miles de millones en dinero institucional (&lt;a rel="external" href="https://www.cnbc.com/2024/01/10/sec-approves-rule-changes-that-pave-the-way-for-bitcoin-etfs.html">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Strategy&lt;/strong> tiene más de 660.000 BTC como tesorería corporativa, inspirando a otros (&lt;a rel="external" href="https://www.strategy.com/purchases">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Grandes bancos&lt;/strong> ahora ofrecen custodia y trading de Bitcoin a clientes&lt;/li>
&lt;li>&lt;strong>Fondos de pensiones&lt;/strong> y gestores de activos están añadiendo Bitcoin a sus carteras&lt;/li>
&lt;/ul>
&lt;h3 id="adopcion-global">Adopción global&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>República Centroafricana&lt;/strong> adoptó Bitcoin como moneda de curso legal en 2022 (&lt;a rel="external" href="https://www.cnbc.com/2022/04/28/central-african-republic-adopts-bitcoin-as-legal-tender.html">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Suiza&lt;/strong> permite pagos de impuestos en Bitcoin en el Cantón de Zug desde 2021 (&lt;a rel="external" href="https://zg.ch/de/steuern-finanzen/steuern/steuerbezug/taxpaymentswithcryptocurrencies">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Mercados emergentes&lt;/strong> lideran en adopción de base: Vietnam, Filipinas, Nigeria&lt;/li>
&lt;/ul>
&lt;h3 id="uso-en-el-mundo-real">Uso en el mundo real&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Square&lt;/strong> acepta pagos Bitcoin desde nov. 2025 para más de 4M comerciantes (&lt;a rel="external" href="https://squareup.com/us/en/press/block-to-roll-out-bitcoin-payments-on-square">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Lightning Network&lt;/strong> (LN) procesa millones de pagos instantáneos mensualmente (&lt;a rel="external" href="https://lightning.network/">fuente&lt;/a>)&lt;/li>
&lt;li>&lt;strong>Comerciantes en todo el mundo&lt;/strong> aceptan Bitcoin, desde pequeñas tiendas hasta grandes minoristas (&lt;a rel="external" href="https://btcmap.org/">fuente&lt;/a>)&lt;/li>
&lt;/ul>
&lt;p>Puedes descartarlo, o puedes entenderlo.&lt;/p>
&lt;hr />
&lt;h2 id="empezando">Empezando&lt;/h2>
&lt;p>Bitcoin es dinero que nadie controla y todos pueden verificar. Escaso en un mundo de impresión monetaria infinita. Sin permisos en un mundo de guardianes financieros. Programable de formas que apenas empezamos a explorar.&lt;/p>
&lt;p>Entender Bitcoin no requiere creer que cambiará el mundo. Requiere entender qué es el dinero, cómo evolucionó y por qué importan estas propiedades. A partir de ahí, puedes sacar tus propias conclusiones.&lt;/p>
&lt;h3 id="quieres-probarlo">¿Quieres probarlo?&lt;/h3>
&lt;p>La mejor forma de entender Bitcoin es usarlo:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Empieza pequeño&lt;/strong>: Compra una pequeña cantidad en una plataforma confiable solo de Bitcoin como:
&lt;ul>
&lt;li>&lt;a rel="external" href="https://21bitcoin.app/">21bitcoin&lt;/a> o &lt;a rel="external" href="https://relai.app/">Relai&lt;/a>: Apps simples para ahorro automático en Bitcoin&lt;/li>
&lt;li>&lt;a rel="external" href="https://hodlhodl.com/">HodlHodl&lt;/a>: Trading peer-to-peer, sin custodia&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Muévelo a tu propia wallet&lt;/strong>: Descarga una wallet móvil y transfiere tu Bitcoin ahí. Siente lo que significa la auto-custodia. Algunas wallets como &lt;a rel="external" href="https://bluewallet.io/">BlueWallet&lt;/a>, &lt;a rel="external" href="https://nunchuk.io/">Nunchuk&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Envía una transacción&lt;/strong>: Envía algunos sats a un amigo. Míralo confirmar en ~10 minutos. Ponte curioso mirando tu transacción en el &lt;a rel="external" href="https://mempool.space/">mempool&lt;/a>.&lt;/li>
&lt;li>&lt;strong>Prueba Lightning&lt;/strong>: Envía un pago instantáneo, casi gratis. Este es el futuro de las transacciones cotidianas. Algunas wallets LN como &lt;a rel="external" href="https://getalby.com/alby-go">Alby Go&lt;/a>, &lt;a rel="external" href="https://muun.com/">Muun&lt;/a>.&lt;/li>
&lt;/ol>
&lt;p>No tienes que ir all in. Empieza pequeño y sigue aprendiendo, un paso a la vez.&lt;/p>
&lt;p>&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Pef22g53zsg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;strong>Lectura adicional&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://cosmevalera.dev/blog/bitcoin-101/">Bitcoin 101&lt;/a> &lt;small>por Cosme - Otra introducción amigable para principiantes&lt;/small>&lt;/li>
&lt;li>&lt;a rel="external" href="https://cosmevalera.dev/blog/bitcoin-102/">How to Buy Bitcoin Securely&lt;/a> &lt;small>por Cosme - Guía paso a paso&lt;/small>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>La IA te Da Velocidad, No Calidad</title><subtitle>El factor humano en la era del vibe-coding</subtitle><category term="ai" scheme="https://chemaclass.com/tags/ai/" label="Ai"/><category term="software-architecture" scheme="https://chemaclass.com/tags/software-architecture/" label="Software Architecture"/><category term="craftsmanship" scheme="https://chemaclass.com/tags/craftsmanship/" label="Craftsmanship"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2025-10-10T00:00:00+00:00</published><updated>2025-10-10T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/ai-gives-you-speed-not-quality/"/><id>https://chemaclass.com/es/blog/ai-gives-you-speed-not-quality/</id><summary type="html">La IA acelera tu producción pero no garantiza calidad. Eres responsable de cada línea que commiteas. Velocidad sin dirección es caos.</summary><content type="html">&lt;p>He estado usando asistentes de codificación IA extensivamente: ChatGPT, Codex, Claude con Sonnet y Opus. Son increíblemente útiles. Te dan velocidad como nada más.&lt;/p>
&lt;p>Pero la velocidad no es calidad.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-trampa-del-vibe-coding">La trampa del vibe-coding&lt;/h2>
&lt;p>Los modelos de IA son excelentes imitando su entorno. Dales contexto, y harán lo que sea necesario para completar la tarea. Esto se ha conocido como &lt;em>“vibe-coding”&lt;/em>: describes lo que quieres, y la IA produce algo que funciona. Rápido.&lt;/p>
&lt;p>¿El problema? La IA felizmente generará código desordenado si eso es lo que hace el trabajo. No le importa la mantenibilidad. No piensa en qué pasa cuando los requisitos cambien el próximo mes. Solo produce output.&lt;/p>
&lt;blockquote>
&lt;p>La IA es un espejo que refleja el contexto que le das. Si tu codebase está desordenado, generará más desorden. Si tus prompts son vagos, hará suposiciones.&lt;/p>
&lt;/blockquote>
&lt;p>Sin guía cuidadosa, terminas con parches sobre parches. Código legacy recién creado. Una codebase donde cada cambio se siente arriesgado y el equipo pasa más tiempo luchando contra el código que construyendo features.&lt;/p>
&lt;h2 id="el-arte-de-preguntar">El arte de preguntar&lt;/h2>
&lt;p>¿Recuerdas Stack Overflow? ¿Las búsquedas en Google que te llevaban a hilos de foros de 2011 donde alguien tenía exactamente el mismo problema?&lt;/p>
&lt;p>Hace diez años, ser desarrollador significaba aprender a hacer buenas preguntas. Elaborabas tu post de Stack Overflow cuidadosamente: describe el problema, muestra lo que intentaste, explica lo que esperabas versus lo que pasó. Si tu pregunta era vaga o perezosa, la comunidad te lo hacía saber. A veces duramente.&lt;/p>
&lt;p>Pero esa fricción nos enseñó algo valioso: &lt;strong>la calidad de tu respuesta depende de la calidad de tu pregunta&lt;/strong>.&lt;/p>
&lt;p>El mismo principio aplica a la IA. Un prompt vago obtiene una respuesta vaga. Un prompt bien estructurado con contexto claro, restricciones y ejemplos obtiene algo útil. La habilidad de formular buenas preguntas no se volvió obsoleta. Se volvió más importante.&lt;/p>
&lt;blockquote>
&lt;p>Aprender a hacer prompts a la IA efectivamente es el equivalente moderno de aprender a buscar en Google y preguntar en Stack Overflow. Los desarrolladores que dominen esto obtendrán mejores resultados.&lt;/p>
&lt;/blockquote>
&lt;p>Incluso cuando la IA te da una respuesta rápida e impresionante, &lt;strong>nunca aceptes código que no entiendas completamente&lt;/strong>. Es tentador. La respuesta aparece en segundos, se ve profesional, incluso podría funcionar. Pero si no puedes explicar qué hace y por qué, estás plantando una bomba de tiempo en tu codebase. Y cuando explote a las 2am, estarás debuggeando código que no escribiste sin modelo mental de por qué existe.&lt;/p>
&lt;p>Cuestiona el resultado. Pregunta: &lt;em>“¿Puedes simplificar esto?”&lt;/em> o &lt;em>“¿Hay código repetitivo aquí que podamos eliminar?”&lt;/em> La IA por defecto añade, no mejora. Generará abstracciones, funciones auxiliares y patrones que no pediste. No refactorizará a menos que se lo digas. Cuestiónala.&lt;/p>
&lt;p>Esto es especialmente crítico con los tests. Pide a la IA que genere tests y a menudo obtendrás tests que reflejan detalles de implementación en lugar de comportamiento. Se romperán en el momento que refactorices, incluso si la lógica permanece igual. Si quieres tests que verifiquen comportamiento, necesitas decirlo explícitamente. La IA no hará esa elección por ti.&lt;/p>
&lt;blockquote>
&lt;p>No te dejes seducir por la velocidad. A veces, una respuesta rápida que no entiendes es peor que una respuesta lenta que sí entiendes.&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-factor-humano">El factor humano&lt;/h2>
&lt;p>La IA puede escribir código rápido, pero no puede entender la arquitectura general. No sabe por qué ciertas decisiones se tomaron hace meses. No puede ver el panorama general de hacia dónde va el producto. Solo ve lo que le muestras, tomando decisiones locales sin entender las implicaciones globales. Ese es nuestro trabajo.&lt;/p>
&lt;p>Como exploré en &lt;a href="/es/blog/different-beliefs-about-software-quality">diferentes creencias sobre la calidad del software&lt;/a>, los equipos a menudo tienen estándares variables sobre qué significa &lt;em>“suficientemente bueno”&lt;/em>. Cuando añades IA a la mezcla, mantener ese entendimiento compartido se vuelve aún más crítico. La IA no comparte los valores de tu equipo. Solo genera código.&lt;/p>
&lt;blockquote>
&lt;p>La disciplina para mantener arquitectura limpia, para decir &lt;em>“no”&lt;/em> a hacks rápidos, para refactorizar antes de que las cosas empeoren. Eso es únicamente humano.&lt;/p>
&lt;/blockquote>
&lt;p>Libros como &lt;a href="/es/readings/clean-code/">Clean Code&lt;/a> y &lt;a href="/es/readings/clean-architecture/">Clean Architecture&lt;/a> no son menos relevantes en la era de la IA. Son más relevantes. Te ayudan a detectar cuando la IA va en la dirección equivocada.&lt;/p>
&lt;h2 id="colaboracion-sobre-automatizacion">Colaboración sobre automatización&lt;/h2>
&lt;p>Hay algo más que la IA no puede reemplazar: el equipo.&lt;/p>
&lt;p>Una conversación con un colega sobre &lt;em>“¿deberíamos extraer esto en un servicio?”&lt;/em> a menudo lleva a insights que ningún prompt de IA sacaría a la luz. Ese ida y vuelta, el cuestionar, el &lt;em>“¿qué si intentamos esto en su lugar?”&lt;/em>. Ahí es donde ocurre el entendimiento real.&lt;/p>
&lt;p>&lt;a href="/es/readings/extreme-programming-explained/">Extreme Programming Explained&lt;/a> enfatiza prácticas como pair programming y propiedad colectiva del código por buenas razones. Estas no son ineficiencias para automatizar. Son cómo los equipos construyen calidad en su proceso.&lt;/p>
&lt;p>Cuando saltas la discusión humana y solo dejas que la IA genere soluciones, pierdes la oportunidad de aprender, de desafiar suposiciones y de crecer como equipo.&lt;/p>
&lt;h2 id="tu-eres-dueno-del-codigo">Tú eres dueño del código&lt;/h2>
&lt;p>Cuando la IA escribe código y tú lo commiteas, lo revisas, lo apruebas, lo mergeas y lo deployeas, &lt;strong>es tu código&lt;/strong>. No puedes culpar a la IA cuando algo se rompe en producción. No puedes señalar a Claude o Copilot cuando la arquitectura se vuelve imposible de mantener.&lt;/p>
&lt;p>Como escribí sobre &lt;a href="/es/blog/the-art-of-testing/">el arte del testing&lt;/a>, la calidad es una elección que hacemos en cada paso. Cada commit es una decisión. Cada revisión es una oportunidad de detectar problemas. Cada merge es un respaldo de la calidad del código.&lt;/p>
&lt;blockquote>
&lt;p>Somos la última parte responsable del código que la IA escribe. El commit, la revisión, la aprobación, el merge, el deploy. Todo eso somos nosotros.&lt;/p>
&lt;/blockquote>
&lt;p>Moverse rápido en la dirección equivocada solo te lleva a perderte más rápido. Las líneas de código apareciendo en pantalla no es progreso. El valor que aportamos como desarrolladores no es la velocidad tecleando. Nuestro valor está en entender hacia dónde vamos, mantener disciplina sobre el caos, y asegurar que el código que entregamos hoy no se convierta en la pesadilla de mañana.&lt;/p>
&lt;p>Usa la IA. Abraza la velocidad. Pero nunca olvides: &lt;strong>tú eres quien conduce&lt;/strong>. Si sueltas el volante, terminarás en una pila de código imposible de mantener más rápido de lo que esperabas.&lt;/p>
&lt;p>Y cuando eso pase, no hay nadie más a quien culpar.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-10-10/footer.jpg" alt="tú eres quien conduce" />&lt;/p></content></entry><entry xml:lang="es"><title>Lo que el Éxito Significa para Mí</title><subtitle>Una definición simple que cambió cómo vivo</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2025-09-15T00:00:00+00:00</published><updated>2025-09-15T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/what-success-means-to-me/"/><id>https://chemaclass.com/es/blog/what-success-means-to-me/</id><summary type="html">El éxito es despertar sabiendo que lo que haces hace más felices a las personas a tu alrededor, y a ti mismo. Sin fórmula complicada. Solo consistencia sobre perfección, y construir hábitos que se alineen con lo que importa.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-11-15/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Durante mucho tiempo, pensé que el éxito se trataba de alcanzar ciertos hitos. Conseguir esa promoción. Ganar un salario específico. Construir algo que la gente reconociera.&lt;/p>
&lt;p>Pero me he dado cuenta de que eso no es lo que me hace levantarme por las mañanas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-verdadera-medida">La verdadera medida&lt;/h2>
&lt;p>El éxito, para mí, ahora es directo: &lt;strong>despertar sabiendo que lo que hago hace más felices a las personas a mi alrededor, y a mí mismo&lt;/strong>.&lt;/p>
&lt;p>Me costó llegar a esto. Puede que esta definición no le parezca simple a todo el mundo, y está bien. Pero para mí, lo clarificó todo.&lt;/p>
&lt;p>Sin fórmula complicada. Sin lista de logros.&lt;/p>
&lt;blockquote>
&lt;p>El éxito son esos pequeños momentos: ayudar a un colega con un problema complicado, compartir algo que hace sonreír a alguien, terminar el día sintiendo que aportaste algo bueno al mundo.&lt;/p>
&lt;/blockquote>
&lt;p>Aplica tanto si lideras un equipo como si simplemente eres tú mismo. Como escribí sobre &lt;a href="/es/blog/great-leadership">gran liderazgo&lt;/a>, el verdadero liderazgo empieza con tu propia vida y comportamiento. Se trata de hacer mejores a quienes te rodean, no solo de alcanzar objetivos.&lt;/p>
&lt;h2 id="por-que-importa-la-felicidad">Por qué importa la felicidad&lt;/h2>
&lt;p>Antes pensaba que enfocarse en la felicidad era algo trivial. Como si no fuera un objetivo “serio”. Pero he aprendido que hacer feliz a la gente de verdad es una de las cosas más difíciles y gratificantes que puedes hacer.&lt;/p>
&lt;h3 id="que-significa-esto-en-la-practica">¿Qué significa esto en la práctica?&lt;/h3>
&lt;ul>
&lt;li>Estar presente cuando alguien te necesita&lt;/li>
&lt;li>Crear cosas que resuelvan problemas reales&lt;/li>
&lt;li>Elegir la amabilidad sobre tener razón&lt;/li>
&lt;li>Encontrar alegría en lo que haces, incluso en días difíciles&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Cuando te enfocas en hacer felices a otros, sueles acabar más feliz tú también. No es un juego de suma cero. Se multiplica.&lt;/p>
&lt;/blockquote>
&lt;p>Conecta mucho con &lt;a href="/es/blog/understanding-people">entender a las personas&lt;/a> y cómo piensan. Cuando entiendes que cada uno procesa el mundo de forma diferente, te vuelves mejor creando felicidad genuina. No la que tú crees que debería hacerles felices.&lt;/p>
&lt;h2 id="la-practica-diaria">La práctica diaria&lt;/h2>
&lt;h3 id="como-se-ve-esto-en-la-vida-diaria">¿Cómo se ve esto en la vida diaria?&lt;/h3>
&lt;p>Para mí, es preguntarme con frecuencia: “¿Lo que hice hoy mejoró las cosas?” No perfecto. No revolucionario. Solo mejor.&lt;/p>
&lt;p>A veces es escribir código que ayuda a un equipo a trabajar mejor. A veces es tomarse tiempo para escuchar de verdad a alguien. A veces es simplemente tener paciencia cuando todo parece un caos.&lt;/p>
&lt;p>No siempre es fácil. Algunos días fallas. Pero tener esta definición simple de éxito aclara las decisiones. Cuando dudas si aceptar un proyecto, una oportunidad, o decir que no a algo, puedes preguntarte: “¿Esto nos hará más felices a mí y a quienes me rodean?”&lt;/p>
&lt;h3 id="consistencia-sobre-perfeccionismo">Consistencia sobre perfeccionismo&lt;/h3>
&lt;p>Aquí hay algo que he aprendido por las malas: &lt;strong>el éxito se construye a través de la consistencia, no la perfección&lt;/strong>.&lt;/p>
&lt;p>El perfeccionismo te paraliza. Te susurra que nada es suficientemente bueno, que deberías esperar a que las condiciones sean ideales, que un error lo invalida todo. Es una trampa.&lt;/p>
&lt;p>¿Qué funciona de verdad? Aparecer. Día tras día. Construir pequeños hábitos que se acumulan con el tiempo.&lt;/p>
&lt;p>Como explica James Clear en &lt;a href="/es/readings/atomic-habits/">Hábitos atómicos&lt;/a>, el cambio real viene del efecto acumulado de cientos de pequeñas decisiones. No necesitas ser perfecto. Necesitas ser constante.&lt;/p>
&lt;blockquote>
&lt;p>No intentes hacer un hábito perfecto, solo repítelo.&lt;/p>
&lt;/blockquote>
&lt;p>Eso significa:&lt;/p>
&lt;ul>
&lt;li>Escribir unas líneas de código cada día supera esperar la arquitectura perfecta&lt;/li>
&lt;li>Una conversación corta y genuina supera esperar el momento perfecto&lt;/li>
&lt;li>Pequeñas mejoras constantes superan esperar el gran avance&lt;/li>
&lt;/ul>
&lt;p>El objetivo no es no fallar nunca. Es construir hábitos que te hagan más feliz a ti y a otros, y seguir apareciendo incluso cuando tropiezas.&lt;/p>
&lt;blockquote>
&lt;p>Aquí es donde &lt;a href="/es/blog/the-process-itself-is-the-goal">el proceso mismo se convierte en el objetivo&lt;/a>. No se trata de llegar a un destino final de “ser exitoso”. Se trata de construir hábitos diarios que se alineen con lo que realmente te importa.&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-exito-es-personal">El éxito es personal&lt;/h2>
&lt;p>Tu definición de éxito probablemente sea diferente a la mía. Y eso no solo está bien, es necesario.&lt;/p>
&lt;p>“&lt;a href="/es/blog/have-you-always-been-like-this/">¿Siempre he sido así?&lt;/a>” No. Claro que no. Lo que nos importa evoluciona mientras crecemos. Eso es parte del viaje.&lt;/p>
&lt;p>Si te sientes atascado o no sabes hacia qué trabajas, prueba esto: &lt;strong>descubre qué te hace feliz de verdad a ti y a quienes te importan&lt;/strong>. No lo que crees que debería hacerte feliz. No lo que queda bien de cara a los demás.&lt;/p>
&lt;p>Solo lo que realmente funciona para ti.&lt;/p>
&lt;p>Y prepárate para &lt;a href="/es/blog/embrace-the-change">abrazar el cambio&lt;/a> cuando tu definición cambie. &lt;strong>Porque cambiará&lt;/strong>. Lo que el éxito significa hoy puede ser distinto mañana. Eso no es fracaso. Es crecimiento.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>Al final del día, si despiertas sabiendo que lo que haces trae más felicidad al mundo (incluida la tuya), probablemente estás haciendo algo bien.&lt;/p>
&lt;/blockquote>
&lt;p>Eso se siente como éxito para mí.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-11-15/footer.jpg" alt="lo que el éxito significa para mí" />&lt;/p>
&lt;hr />
&lt;p>&lt;strong>Gracias&lt;/strong> a mi amigo Toni, por &lt;a rel="external" href="https://x.com/Chemaclass/status/1989652323925377462">plantear&lt;/a> esta pregunta e inspirar esta reflexión.&lt;/p></content></entry><entry xml:lang="es"><title>Principios de Economía</title><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2025-06-22T00:00:00+00:00</published><updated>2025-06-22T00:00:00+00:00</updated><author><name>
Saifedean Ammous</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/principles-of-economics/"/><id>https://chemaclass.com/es/readings/principles-of-economics/</id><summary type="html">¿Por qué los precios suben y el dinero pierde valor? Saifedean Ammous lo explica desde la economía austriaca. Un libro directo que cambia cómo ves el mundo.</summary><content type="html">&lt;p>¿Te has preguntado alguna vez por qué los precios suben o por qué el dinero pierde valor? Principios de Economía de Saifedean Ammous puede cambiarte la perspectiva.&lt;/p>
&lt;p>No es el típico libro de economía aburrido. Es una guía directa para entender cómo funciona el mundo desde la economía austriaca. Esto es lo que más me marcó.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="1-economia-accion-humana">1. Economía = acción humana&lt;/h2>
&lt;p>Ammous arranca con algo simple pero potente: la economía son personas tomando decisiones. Cada vez que eliges una cosa sobre otra, eso es economía en acción.&lt;/p>
&lt;p>Olvídate de gráficos y ecuaciones. La economía real empieza contigo tratando de mejorar tu vida, una decisión a la vez.&lt;/p>
&lt;h2 id="2-preferencia-temporal-cuanto-valoras-el-futuro">2. Preferencia temporal = cuánto valoras el futuro&lt;/h2>
&lt;p>Esta idea me cambió la forma de ver las cosas: tu preferencia temporal es cuánto valoras el ahora frente al después.&lt;/p>
&lt;ul>
&lt;li>Si gastas todo hoy, tienes preferencia temporal alta.&lt;/li>
&lt;li>Si ahorras y planificas, tienes preferencia temporal baja.&lt;/li>
&lt;/ul>
&lt;p>La preferencia temporal baja construye cosas grandes: negocios, familias, rascacielos, civilizaciones. La alta es comida rápida, compras impulsivas, pensamiento cortoplacista.&lt;/p>
&lt;h2 id="3-buen-dinero-sociedad-fuerte">3. Buen dinero = sociedad fuerte&lt;/h2>
&lt;p>La calidad del dinero afecta todo. Si tu dinero pierde valor constantemente (&lt;em>hola, inflación&lt;/em>), la gente deja de ahorrar y vive solo para hoy.&lt;/p>
&lt;p>Ammous señala al dinero fiat controlado por gobiernos como el problema. Y defiende volver al “dinero duro” (oro o &lt;a href="/tags/bitcoin/">Bitcoin&lt;/a>) que mantiene su valor. El buen dinero permite planificar, ahorrar y crear riqueza a largo plazo.&lt;/p>
&lt;h2 id="4-producir-lleva-tiempo-y-eso-importa">4. Producir lleva tiempo, y eso importa&lt;/h2>
&lt;p>Hacer cosas no es instantáneo. Requiere tiempo, herramientas y planificación. Ammous explica que las economías avanzadas existen porque la gente invierte a largo plazo: fábricas, máquinas, cadenas de suministro.&lt;/p>
&lt;p>Eso solo ocurre cuando confías en tu dinero y en tu futuro. De nuevo, la preferencia temporal baja es clave.&lt;/p>
&lt;h2 id="5-los-emprendedores-impulsan-el-progreso-no-los-gobiernos">5. Los emprendedores impulsan el progreso, no los gobiernos&lt;/h2>
&lt;p>El héroe de este libro es &lt;strong>el emprendedor&lt;/strong>: quien &lt;strong>toma riesgos&lt;/strong>, construye negocios y &lt;strong>crea valor&lt;/strong>.&lt;/p>
&lt;p>Ammous no tiene simpatía por planificadores centrales, regulaciones ni rescates gubernamentales. Defiende mercados libres donde la gente resuelva problemas sin interferencias. Con precios honestos y dinero sólido, la gente se las arregla sola.&lt;/p>
&lt;h2 id="6-inflacion-y-planificacion-central-senales-de-alarma">6. Inflación y planificación central: señales de alarma&lt;/h2>
&lt;p>Ammous no se anda con rodeos. Critica duramente cómo los gobiernos gestionan el dinero.&lt;/p>
&lt;p>Ve la inflación como robo encubierto. Y cree que la intervención constante (imprimir dinero, fijar tasas de interés) solo empeora las cosas. También cuestiona campos como la economía climática y ESG, que considera más políticos que económicos.&lt;/p>
&lt;h2 id="7-bitcoin-el-gran-final">7. Bitcoin: el gran final&lt;/h2>
&lt;p>El libro no trata solo de Bitcoin, pero claramente lleva hacia allí. Tras explicar por qué el sistema monetario actual está roto, Ammous presenta Bitcoin como la mejor solución en más de un siglo.&lt;/p>
&lt;p>Es digital, limitado y nadie puede manipularlo. Bitcoin representa el regreso del dinero sólido. Una oportunidad de arreglar mucho de lo que hoy está mal.&lt;/p>
&lt;h2 id="un-curso-intensivo-de-economia-real">Un curso intensivo de economía real&lt;/h2>
&lt;p>“Principios de Economía” es una píldora roja. Directo, audaz y a veces brutal. Si estás cansado de las tonterías financieras habituales, este libro es aire fresco.&lt;/p>
&lt;p>Sales con una lente nueva para ver el mundo: por qué suben los precios, por qué importa ahorrar y por qué el tipo de dinero que usamos lo moldea todo.&lt;/p>
&lt;h2 id="economia-austriaca-vs-economia-keynesiana">Economía Austriaca vs Economía Keynesiana&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GUvTJ0xy74c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Ship, Show, Ask</title><subtitle>Colaboración impulsada por la cultura a la velocidad del código</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="code-review" scheme="https://chemaclass.com/tags/code-review/" label="Code Review"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2025-04-12T00:00:00+00:00</published><updated>2025-04-12T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/ship-show-ask/"/><id>https://chemaclass.com/es/blog/ship-show-ask/</id><summary type="html">En equipos que se mueven rápido, una de las mayores tensiones que enfrentamos es esta: ¿Cómo seguimos entregando sin comprometer la calidad o la colaboración? El enfoque tradicional de pull requests a menudo ralentiza las cosas. Esperamos horas—o días—por aprobaciones, incluso para cambios triviales. Pero la alternativa—simplemente mergear directamente—puede sentirse imprudente o invisible para el resto del equipo. Ahí es donde entra la estrategia Ship-Show-Ask.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-04-12/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>En equipos que se mueven rápido, una de las mayores tensiones que enfrentamos es esta: ¿Cómo seguimos entregando sin comprometer la calidad o la colaboración?&lt;/p>
&lt;p>El enfoque tradicional de pull requests a menudo ralentiza las cosas. Esperamos horas, o días, por aprobaciones, incluso para cambios triviales. Pero la alternativa, simplemente mergear directamente, puede sentirse imprudente o invisible para el resto del equipo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Ahí es donde entra la estrategia Ship-Show-Ask. Originalmente descrita por &lt;a rel="external" href="https://martinfowler.com/articles/ship-show-ask.html">Rouan Wilsenach&lt;/a>, este modelo ofrece una forma más flexible y reflexiva de manejar cambios de código. No es solo una estrategia de branching, es un cambio en cómo los equipos colaboran, confían y toman propiedad.&lt;/p>
&lt;h2 id="que-es-ship-show-ask">¿Qué es Ship, Show, Ask?&lt;/h2>
&lt;p>Es un modelo que clasifica los cambios basándose en cuánta revisión requieren:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Ship&lt;/strong> – Mergear directamente a main (sin PR)&lt;/li>
&lt;li>&lt;strong>Show&lt;/strong> – Abrir un pull request, pero mergearlo inmediatamente&lt;/li>
&lt;li>&lt;strong>Ask&lt;/strong> – Abrir un pull request y esperar revisión&lt;/li>
&lt;/ul>
&lt;p>La idea clave es usar Ask como el default para la mayoría del trabajo, recurrir a Show cuando el contexto lo hace seguro, y evitar Ship (o reservarlo para casos extremadamente triviales, si se usa).&lt;/p>
&lt;h2 id="por-que-prefiero-ask-y-show">Por qué prefiero Ask y Show&lt;/h2>
&lt;p>En mi experiencia, ayuda tratar cada cambio, incluso los pequeños, como algo que vale la pena compartir. Siempre creo una rama y abro un PR. Proporciona visibilidad, construye un historial compartido, y crea un espacio para opiniones opcionales o asíncronas.&lt;/p>
&lt;p>Pero no todos los PRs necesitan seguir el mismo proceso de revisión.&lt;/p>
&lt;h3 id="por-defecto-uso-ask">Por defecto uso Ask&lt;/h3>
&lt;p>Prefiero esperar una revisión de un compañero cuando:&lt;/p>
&lt;ul>
&lt;li>El cambio involucra lógica arriesgada o compleja&lt;/li>
&lt;li>Podría impactar a otros desarrolladores o equipos&lt;/li>
&lt;li>Introduce decisiones arquitectónicas o estructurales que no se han acordado aún&lt;/li>
&lt;li>Se beneficia de input compartido o un segundo par de ojos&lt;/li>
&lt;/ul>
&lt;p>Dicho esto, &lt;strong>Ask no significa sobre-ingeniar el proceso&lt;/strong>. A menudo, un revisor reflexivo es suficiente, especialmente si está familiarizado con el dominio. Si el cambio toca un área específica, pediré la opinión de la persona que posee (o mejor entiende) esa parte del código. No necesita involucrar a todos.&lt;/p>
&lt;blockquote>
&lt;p>En equipos pequeños, requerir dos aprobaciones en cada PR puede convertirse rápidamente en un cuello de botella y ralentizar la entrega de valor. El objetivo es alineamiento y calidad, no ceremonia por sí misma.&lt;/p>
&lt;/blockquote>
&lt;h3 id="uso-show-para-cambios-seguros-y-de-bajo-impacto">Uso Show para cambios seguros y de bajo impacto&lt;/h3>
&lt;p>Podría mergear inmediatamente cuando:&lt;/p>
&lt;ul>
&lt;li>Practico pair programming (la revisión ya ocurrió en vivo)&lt;/li>
&lt;li>Corrijo erratas o enlaces rotos&lt;/li>
&lt;li>Actualizo documentación o changelogs&lt;/li>
&lt;li>Refactorizo dentro de un módulo que poseo&lt;/li>
&lt;li>Añado tests para comportamiento existente&lt;/li>
&lt;li>Hago ajustes no funcionales (formato, logs, comentarios)&lt;/li>
&lt;li>Aplico ajustes de UI o estilo sin cambio de lógica&lt;/li>
&lt;/ul>
&lt;p>El principio clave: &lt;strong>Show es opcional, nunca obligatorio&lt;/strong>. Elijo Show solo si el cambio es de bajo riesgo y encaja con las expectativas del equipo. Cuando uso Show, me hago responsable del resultado. La responsabilidad es mía.&lt;/p>
&lt;h2 id="por-que-este-enfoque-funciona-para-mi">Por qué este enfoque funciona para mí&lt;/h2>
&lt;p>Este modelo me ayuda a:&lt;/p>
&lt;ul>
&lt;li>Entregar más rápido sin comprometer la calidad&lt;/li>
&lt;li>Trabajar con mayor autonomía y propiedad&lt;/li>
&lt;li>Evitar cuellos de botella, especialmente en equipos pequeños o async&lt;/li>
&lt;li>Fomentar una mentalidad de confianza, responsabilidad y toma de decisiones reflexiva&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Cambia el objetivo de simplemente obtener aprobación a compartir intención y ser dueño del resultado.&lt;/p>
&lt;/blockquote>
&lt;h2 id="que-hace-un-buen-show">¿Qué hace un buen “Show”?&lt;/h2>
&lt;p>Un PR Show podría ser la elección correcta cuando:&lt;/p>
&lt;ul>
&lt;li>El cambio es trivial y dentro de mi área de responsabilidad&lt;/li>
&lt;li>Nadie está disponible para revisar, y esperar bloquearía el progreso&lt;/li>
&lt;li>El PR incluye contexto y razonamiento claro&lt;/li>
&lt;li>Estoy abierto a comentarios post-merge&lt;/li>
&lt;li>Estoy listo para hacer ajustes de seguimiento si es necesario&lt;/li>
&lt;/ul>
&lt;h2 id="consejos-para-que-funcione">Consejos para que funcione&lt;/h2>
&lt;p>Algunos consejos prácticos de la experiencia:&lt;/p>
&lt;ul>
&lt;li>Clarifica las expectativas del equipo sobre cuándo usar Show vs Ask&lt;/li>
&lt;li>Siempre proporciona contexto en tu PR, incluso si mergeas inmediatamente&lt;/li>
&lt;li>Escribe tests para cualquier lógica o comportamiento nuevo&lt;/li>
&lt;li>Da la bienvenida a los comentarios post-merge, la revisión no termina en el merge&lt;/li>
&lt;li>Reflexiona regularmente como equipo y ajusta el enfoque según sea necesario&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Ship, Show, Ask es más que higiene de branching.&lt;/p>
&lt;p>Para mí, se trata de construir una cultura de claridad, responsabilidad y confianza, donde los desarrolladores están empoderados para moverse rápido mientras permanecen reflexivos.&lt;/p>
&lt;p>Si estás cansado de colas lentas de PR y aprobaciones sobre-ingeniadas, esto podría valer la pena intentarlo.&lt;/p>
&lt;blockquote>
&lt;p>¿Curioso por profundizar? Mira el &lt;a rel="external" href="https://martinfowler.com/articles/ship-show-ask.html">post de Rouan Wilsenach&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-04-12/footer.jpg" alt="footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Camino de servidumbre</title><subtitle>Cómo la planificación central puede erosionar lentamente la libertad</subtitle><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><published>2025-03-31T00:00:00+00:00</published><updated>2025-03-31T00:00:00+00:00</updated><author><name>
Friedrich A. Hayek</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-road-to-serfdom/"/><id>https://chemaclass.com/es/readings/the-road-to-serfdom/</id><summary type="html">Un resumen rápido y en lenguaje sencillo del clásico de Hayek sobre libertad, planificación y por qué las buenas intenciones pueden salir muy mal.</summary><content type="html">&lt;p>Publicado en 1944, Camino de servidumbre sigue vigente. Friedrich Hayek, economista austriaco, lo escribió durante la Segunda Guerra Mundial para advertir sobre algo que veía como peligroso: la planificación económica central.&lt;/p>
&lt;p>Su mensaje es claro: incluso el control gubernamental con buenas intenciones puede quitarnos la libertad poco a poco. Y en el peor caso, llevarnos hacia la dictadura.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="1-el-peligro-de-la-planificacion-central">1. El peligro de la planificación central&lt;/h2>
&lt;p>El argumento de Hayek es directo: &lt;strong>cuando el gobierno controla la economía, acaba controlando la vida de las personas&lt;/strong>. Si el estado decide quién obtiene qué, también decide quién puede hacer qué.&lt;/p>
&lt;p>Puede empezar con buenas intenciones, pero termina en coerción. La gente tiene objetivos distintos y los planificadores no pueden satisfacer a todos.&lt;/p>
&lt;blockquote>
&lt;p>“Controlar la economía significa controlar todo lo que las personas quieren hacer. (Capítulo 7)”&lt;/p>
&lt;/blockquote>
&lt;h2 id="2-la-ilusion-del-socialismo-bueno">2. La ilusión del socialismo “bueno”&lt;/h2>
&lt;p>Hay quienes creen en el socialismo democrático: mezclar libertad con planificación compartida. Hayek no se lo tragaba.&lt;/p>
&lt;p>Sostiene que &lt;strong>no se puede separar el socialismo del autoritarismo&lt;/strong>. Planificar “en nombre del grupo” implica ignorar las elecciones individuales. Tarde o temprano, quienes dirigen el sistema necesitan silenciar a los disidentes. Y eso abre la puerta a los peores líderes.&lt;/p>
&lt;blockquote>
&lt;p>“Los peores llegan a la cima. (Capítulo 10)”&lt;/p>
&lt;/blockquote>
&lt;h2 id="3-estado-de-derecho-vs-gobierno-discrecional">3. Estado de derecho vs. gobierno discrecional&lt;/h2>
&lt;p>En una sociedad libre, las reglas se aplican a todos, se conocen de antemano y son consistentes. Como las normas de tráfico.&lt;/p>
&lt;p>&lt;strong>La planificación necesita reglas flexibles.&lt;/strong> Los burócratas toman decisiones sobre la marcha, lo que les da mucho poder. Para Hayek, eso es un problema. Cuanta más discreción tienen los funcionarios, menos protección tiene el individuo.&lt;/p>
&lt;blockquote>
&lt;p>“Nada distingue más claramente las condiciones en un país libre de las de un país bajo gobierno arbitrario que la observancia en el primero de los grandes principios conocidos como el Estado de Derecho. (Capítulo 6)”&lt;/p>
&lt;/blockquote>
&lt;h2 id="4-los-mercados-funcionan-porque-nadie-los-dirige">4. Los mercados funcionan porque nadie los dirige&lt;/h2>
&lt;p>Hayek creía que ningún planificador, por listo que sea, puede reemplazar lo que el mercado hace solo.&lt;/p>
&lt;p>¿Por qué? Los mercados usan &lt;strong>señales de precios&lt;/strong> para compartir información. Millones de personas tomando decisiones envían señales sobre lo que se necesita y lo que no. Gestionar eso desde arriba es ineficiente y casi siempre falla.&lt;/p>
&lt;blockquote>
&lt;p>“Cuanto más ‘planifica’ el estado, más difícil se vuelve la planificación para el individuo. (Capítulo 5)”&lt;/p>
&lt;/blockquote>
&lt;h2 id="5-perdida-gradual-de-libertad">5. Pérdida gradual de libertad&lt;/h2>
&lt;p>Hayek no advertía sobre dictaduras de un día para otro. Le preocupaba &lt;strong>la pérdida lenta de libertad&lt;/strong>: controles de precios aquí, industrias nacionalizadas allá.&lt;/p>
&lt;p>Cada paso parece inofensivo, pero se acumulan. Cuando la gente depende demasiado del estado, cuesta decir no a la siguiente “solución” desde arriba.&lt;/p>
&lt;blockquote>
&lt;p>“El peligro de tiranía surge inevitablemente de los métodos del colectivismo. (Capítulo 10)”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="sigue-vigente-hayek">¿Sigue vigente Hayek?&lt;/h2>
&lt;p>Sin duda. El mundo ha cambiado, pero la tensión entre libertad y control sigue ahí. Hayek nos recuerda que la libertad no desaparece de golpe. Se desvanece cuando dejamos de prestarle atención.&lt;/p>
&lt;p>Claro, algo de gobierno hace falta. Pero su advertencia permanece: demasiado control, aunque venga con buenas intenciones, puede llevarnos donde no queremos estar.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/2oG2SLzNo-E"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Ejecuta tu Nodo LN en una Raspberry Pi</title><subtitle>Toma el control total de tus pagos Lightning con Alby Hub</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="tutorial" scheme="https://chemaclass.com/tags/tutorial/" label="Tutorial"/><published>2025-02-17T00:00:00+00:00</published><updated>2025-02-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/run-your-ln-node/"/><id>https://chemaclass.com/es/blog/run-your-ln-node/</id><summary type="html">En esta guía te muestro cómo configurar un nodo de Lightning Network (LN) con Alby Hub en una Raspberry Pi. Tendrás control total sobre tu nodo. Alby Hub ofrece una versión DIY gratuita para una wallet Lightning auto-custodiada: tus fondos son tuyos, y el código es 100% open-source.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-02-17/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>En esta guía te muestro cómo configurar un nodo de Lightning Network (LN) con Alby Hub en una Raspberry Pi. Tendrás control total sobre tu nodo. Alby Hub ofrece una versión DIY gratuita para una wallet Lightning auto-custodiada: tus fondos son tuyos, y el código es 100% open-source.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Soporta direcciones Lightning y Nostr, conectando ambos ecosistemas sin problemas. Se integra con docenas de aplicaciones Bitcoin. Con los servicios LSP (Lightning Service Provider) integrados y la app Alby Go, gestionar tu nodo desde el móvil es muy fácil.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>Importante: Esto NO es un minero de Bitcoin ni un nodo completo. Es simplemente una Raspberry Pi ejecutándose en una tarjeta SD eficiente en energía y de bajo coste.&lt;/p>
&lt;/blockquote>
&lt;p>⚠️ &lt;strong>Aviso&lt;/strong> ⚠️&lt;/p>
&lt;ul>
&lt;li>Asumo que &lt;strong>entiendes los conceptos fundamentales de &lt;a rel="external" href="https://bitcoin.org/">Bitcoin&lt;/a>&lt;/strong>.&lt;/li>
&lt;li>Asumo que sabes &lt;strong>cómo funciona la &lt;a rel="external" href="https://lightning.network/">Lightning Network&lt;/a> (LN)&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>De todos modos, he incluido un breve repaso de los fundamentos de Lightning Network abajo.&lt;/p>
&lt;h2 id="que-es-la-lightning-network">¿Qué es la Lightning Network?&lt;/h2>
&lt;p>La LN es una capa construida sobre Bitcoin que permite transacciones rápidas, baratas y escalables.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>¿Por qué?&lt;/strong> La capa base de Bitcoin es segura pero lenta y cara para pagos pequeños, por los límites de bloque y las comisiones.&lt;/li>
&lt;li>&lt;strong>¿Cómo?&lt;/strong> LN usa canales de pago fuera de la cadena. Puedes enviar pagos al instante sin esperar confirmaciones en la blockchain.&lt;/li>
&lt;/ul>
&lt;h3 id="conceptos-clave">Conceptos clave&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Canales de pago&lt;/strong>: Abres un canal con una transacción on-chain. Después puedes enviar pagos instantáneos e ilimitados dentro de ese canal.&lt;/li>
&lt;li>&lt;strong>Enrutamiento&lt;/strong>: No necesitas canal directo con todos. Los pagos se enrutan a través de múltiples nodos conectados.&lt;/li>
&lt;li>&lt;strong>Comisiones bajas&lt;/strong>: Solo abrir y cerrar canales requiere comisiones on-chain. El resto cuesta fracciones de céntimo.&lt;/li>
&lt;/ul>
&lt;h3 id="objetivo">Objetivo&lt;/h3>
&lt;p>LN hace Bitcoin usable para el día a día. Puedes comprar un café sin esperar 10 minutos por confirmaciones.&lt;/p>
&lt;blockquote>
&lt;p>En resumen: Lightning Network = Pagos Bitcoin instantáneos + baratos, asegurados por la blockchain de Bitcoin.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="configurando-alby-hub">Configurando Alby Hub&lt;/h2>
&lt;p>&lt;a rel="external" href="https://albyhub.com/">Alby Hub&lt;/a> es un nodo de Lightning Network gratuito, open-source (&lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/alby-hub/faq-alby-hub/should-i-open-a-private-or-public-channel">idealmente privado&lt;/a>).&lt;/p>
&lt;h3 id="requisitos">Requisitos&lt;/h3>
&lt;p>Antes de empezar, vas a necesitar las siguientes cosas:&lt;/p>
&lt;ul>
&lt;li>Un ordenador con windows, mac o linux&lt;/li>
&lt;li>&lt;strong>Raspberry Pi 4&lt;/strong> o &lt;strong>5&lt;/strong> (Para &lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/hidden-archives/raspberry-pi-zero">&lt;strong>Zero 2W&lt;/strong> mira este tutorial!&lt;/a>)
&lt;ul>
&lt;li>&lt;em>En este tutorial, estoy usando una raspi-4b (~60€)&lt;/em>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El cargador para tu raspi &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;li>Tarjeta de memoria SD (32/64gb) &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;li>Adaptador de tarjeta SD a USB (para flashear el SO en la raspi) &lt;em>(~10€)&lt;/em>&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2025-02-17/requirements.jpg" alt="tutorial" />&lt;/p>
&lt;h3 id="pasos-de-instalacion">Pasos de instalación&lt;/h3>
&lt;h4 id="1-flashear-un-kernel-linux-en-la-tarjeta-sd">1. Flashear un kernel Linux en la tarjeta SD&lt;/h4>
&lt;blockquote>
&lt;p>Sugerencia: Puedes usar &lt;a rel="external" href="https://www.raspberrypi.com/software/">RPI imager&lt;/a> en tu ordenador.
Úsalo para flashear el SO raspi recomendado para ti&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-1.jpg" alt="tutorial" />&lt;/p>
&lt;p>En Storage verás tu tarjeta SD después de insertarla en tu portátil.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-2.jpg" alt="tutorial" />&lt;/p>
&lt;p>Una vez hagas clic en “Next”, verás diferentes ajustes. Haz clic en &lt;strong>Edit Settings&lt;/strong>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-3.jpg" alt="tutorial" />&lt;/p>
&lt;p>En &lt;code>Settings &amp;gt; General&lt;/code>: establece tu hostname, el nombre de usuario y contraseña para tu usuario admin.
Asegúrate de habilitar tu WIFI, de lo contrario tendrás que conectarla al router con un RJ-45.
&lt;span id="hostname-setup">&lt;/span>&lt;/p>
&lt;blockquote>
&lt;p>Para este tutorial, estoy usando &lt;code>testhub&lt;/code> como hostname, puedes usar &lt;code>albyhub&lt;/code> o lo que prefieras.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-4.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="pi-enable-ssh">&lt;/span>
En &lt;code>Settings &amp;gt; Services&lt;/code>: asegúrate de que el acceso vía SSH está habilitado. Lo vamos a necesitar para instalar Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-5.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “Save” y haz clic en “Yes” para iniciar la instalación.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-6.jpg" alt="tutorial" />&lt;/p>
&lt;p>Verás una confirmación. Haz clic en “Yes”. Tardará ~10 mins…&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-7.jpg" alt="tutorial" />&lt;/p>
&lt;p>¡Ahora tenemos la SD con un kernel linux fresco listo para usar!&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-8.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="2-insertar-la-sd-en-la-raspi">2. Insertar la SD en la raspi&lt;/h4>
&lt;p>Extrae la SD del portátil e insértala en la raspi primero.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-9.jpg" alt="tutorial" />&lt;/p>
&lt;p>Una vez insertada la SD, conecta el cable de alimentación. Se encenderá automáticamente en cuanto la conectes.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-10.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="3-instalacion-de-alby-hub">3. Instalación de Alby Hub&lt;/h4>
&lt;p>Tardará ~5mins desde que la encendiste para poder acceder a ella. ¿Cómo puedes asegurarte de que está viva? Abre la terminal y haz ping al hostname que definiste mientras flasheabas la SD en &lt;a href="/es/blog/run-your-ln-node/#hostname-setup">Settings &amp;gt; General&lt;/a>, recuerda que terminaba con &lt;code>.local&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ping&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub.local&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Es normal si no obtienes respuesta al principio… hasta que la obtienes.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-11.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="pi-install-alby-hub">&lt;/span>
Ahora puedes &lt;strong>instalar Alby Hub&lt;/strong> en tu raspi &lt;strong>usando la conexión SSH&lt;/strong> que &lt;a href="/es/blog/run-your-ln-node/#pi-enable-ssh">habilitaste antes&lt;/a>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Código fuente: https://github.com/getAlby/hub/tree/master/scripts/pi-aarch64&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ssh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub@testhub.local&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">/bin/bash -c &amp;quot;$(curl -fsSL https://getalby.com/install/hub/pi-aarch64-install.sh)&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Se te pedirá que escribas la palabra “yes”; escríbela.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-12.jpg" alt="tutorial" />&lt;/p>
&lt;p>Luego, se te pedirá que introduzcas tu contraseña. Introduce la contraseña que elegiste en &lt;a href="/es/blog/run-your-ln-node/#hostname-setup">Settings &amp;gt; General&lt;/a> para el nombre de usuario.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-13.jpg" alt="tutorial" />&lt;/p>
&lt;h4 id="4-configuracion-de-alby-hub">4. Configuración de Alby Hub&lt;/h4>
&lt;p>Espera otros 2-3 mins y visita tu host: &lt;a rel="external" href="http://testhub.local/">http://testhub.local/&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-14.jpg" alt="tutorial" />&lt;/p>
&lt;p>Tu Alby hub ya está funcionando. ¡Vamos a conectarlo a tu cuenta GetAlby!&lt;/p>
&lt;hr />
&lt;h2 id="crear-una-cuenta-getalby">Crear una cuenta GetAlby&lt;/h2>
&lt;p>🔗 &lt;a rel="external" href="https://getalby.com/">getalby.com&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-15.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="conectando-getalby-con-alby-hub">Conectando GetAlby con Alby Hub&lt;/h2>
&lt;p>Creé una cuenta llamada testhub.&lt;/p>
&lt;p>&lt;strong>Izquierda&lt;/strong>: la cuenta GetAlby. &lt;strong>Derecha&lt;/strong>: el nodo en la raspi.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-16.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “&lt;strong>Connect Now&lt;/strong>”.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-17.jpg" alt="tutorial" />&lt;/p>
&lt;p>Haz clic en “&lt;strong>Request Authorization Code&lt;/strong>”.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-18.jpg" alt="tutorial" />&lt;/p>
&lt;p>Obtienes el código de autorización (&lt;strong>izquierda&lt;/strong>) que necesitas insertar en tu configuración (&lt;strong>derecha&lt;/strong>).&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-19.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;span id="alby-hub-password">&lt;/span>
Crea una &lt;strong>Contraseña&lt;/strong> para tu Alby Hub instalado en tu raspi. Puede ser diferente de la contraseña que configuraste para tu usuario root en la raspi misma.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-20.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-21.jpg" alt="tutorial" />&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-22.jpg" alt="tutorial" />&lt;/p>
&lt;p>Ahora es momento de &lt;strong>Vincular tu Cuenta Alby&lt;/strong>&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-23.jpg" alt="tutorial" />&lt;/p>
&lt;p>A menos que especifiques lo contrario, establece el “Budget renewal: &lt;em>Monthly 1M sats&lt;/em>” por defecto.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-24.jpg" alt="tutorial" />
&lt;img src="/images/blog/2025-02-17/tuto-25.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="abriendo-canales-lightning">Abriendo canales Lightning&lt;/h2>
&lt;p>Recomiendo seguir los &lt;strong>Pasos Iniciales&lt;/strong> para configurar tu Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-27.jpg" alt="tutorial" />&lt;/p>
&lt;p>Abramos el primer canal.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-28.jpg" alt="tutorial" />&lt;/p>
&lt;p>Necesitas pagar ~$20 en sats para abrir un canal de &lt;em>&lt;strong>liquidez entrante&lt;/strong>&lt;/em> de 1M sats.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-29.jpg" alt="tutorial" />&lt;/p>
&lt;p>Después del pago, verás el canal abierto. Puede tardar un par de minutos hasta que la &lt;strong>&lt;em>transacción de financiación&lt;/em>&lt;/strong> sea minada en el siguiente bloque.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-30.jpg" alt="tutorial" />&lt;/p>
&lt;hr />
&lt;h2 id="recibiendo-sats">Recibiendo Sats&lt;/h2>
&lt;p>Puedes recibir sats usando tu Dirección LN.&lt;/p>
&lt;p>&lt;strong>Izquierda&lt;/strong>: Página pública vinculada a tu &lt;a rel="external" href="https://getalby.com/p/chemaclass">nodo&lt;/a>.
&lt;strong>Derecha&lt;/strong>: Página privada de tu Alby Hub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-33.jpg" alt="tutorial" />&lt;/p>
&lt;blockquote>
&lt;p>Opcional: Puedes añadir fondos ln a tu wallet usando los servicios de terceros de GetAlby: &lt;a rel="external" href="https://getalby.com/topup">getalby.com/topup&lt;/a> - ten en cuenta el KYC…&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="usando-tus-sats">Usando tus Sats&lt;/h2>
&lt;p>Después de eso, podrás usarlos a través de la &lt;a rel="external" href="https://getalby.com/">Extensión Alby&lt;/a> o &lt;a rel="external" href="https://albygo.com/">AlbyGo&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-31.jpg" alt="tutorial" />&lt;/p>
&lt;p>Tu nodo es la fuente de verdad. Conecta estas apps y podrás usar tus sats en cualquier plataforma sin problemas.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-02-17/tuto-32.jpg" alt="tutorial" />&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Aviso&lt;/strong>: la dirección LN testhub fue creada solo para propósitos de testing y tutorial. Mi dirección real es &lt;a rel="external" href="https://getalby.com/p/chemaclass">chemaclass&lt;/a> ;)&lt;/p>
&lt;/blockquote>
&lt;h2 id="mantenimiento-y-solucion-de-problemas">Mantenimiento y solución de problemas&lt;/h2>
&lt;h3 id="actualizando-tu-nodo">Actualizando tu nodo&lt;/h3>
&lt;p>Como en la instalación, hay un script para actualizar tu nodo. Lo encuentras en el repositorio: &lt;a rel="external" href="https://github.com/getAlby/hub/tree/master/scripts/pi-aarch64">GitHub - Script de actualización Alby Hub&lt;/a>&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">ssh&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> testhub@testhub.local&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">/bin/bash -c &amp;quot;$(curl -fsSL https://getalby.com/install/hub/pi-aarch64-update.sh)&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="manejando-cortes-de-energia">Manejando cortes de energía&lt;/h3>
&lt;p>Si se va la luz, la Raspberry Pi se apaga. Cuando vuelva, se reinicia sola. Alby Hub te pedirá la contraseña que configuraste antes.&lt;/p>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://guides.getalby.com/">GetAlby - Guía de usuario&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://guides.getalby.com/user-guide/alby-account-and-browser-extension/hidden-archives/raspberry-pi-zero">Instalando Alby Hub en una Raspberry Zero&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Minimalismo digital</title><subtitle>Eligiendo una Vida Enfocada en un Mundo Ruidoso</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2025-02-16T00:00:00+00:00</published><updated>2025-02-16T00:00:00+00:00</updated><author><name>
Cal Newport</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/digital-minimalism/"/><id>https://chemaclass.com/es/readings/digital-minimalism/</id><summary type="html">Cal Newport propone usar la tecnología con intención, no rechazarla. Una guía práctica para recuperar tu atención, reducir la ansiedad y construir relaciones más auténticas.</summary><content type="html">&lt;p>Vivimos conectados todo el tiempo. El minimalismo digital de Cal Newport no propone rechazar la tecnología, sino usarla con intención. El resultado: recuperas tu enfoque, reduces la ansiedad y construyes relaciones más profundas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="los-tres-principios-del-minimalismo-digital">Los tres principios del minimalismo digital&lt;/h2>
&lt;p>Newport basa su enfoque en tres ideas:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>El desorden cuesta caro&lt;/strong> – Las distracciones digitales fragmentan tu atención y agotan tu energía mental. Ordenar tu vida digital te devuelve el control.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Optimizar es esencial&lt;/strong> – No aceptes cada app o plataforma sin pensar. Elige solo las que encajan con tus valores y metas.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>La intención lo es todo&lt;/strong> – No se trata solo de reducir el tiempo de pantalla. Se trata de decidir cuándo y cómo usas la tecnología.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="el-detox-digital-de-30-dias">El detox digital de 30 días&lt;/h2>
&lt;p>Una de las estrategias más prácticas de Newport:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Descanso de 30 días&lt;/strong> de todas las herramientas digitales no esenciales.&lt;/li>
&lt;li>&lt;strong>Explora actividades offline&lt;/strong> que te satisfagan de verdad.&lt;/li>
&lt;li>&lt;strong>Reintroduce solo&lt;/strong> lo que añada valor real a tu vida.&lt;/li>
&lt;/ul>
&lt;p>Es un reinicio. Te ayuda a ver qué tecnologías mejoran tu vida y cuáles solo te roban tiempo.&lt;/p>
&lt;h2 id="que-ganas-con-el-minimalismo-digital">Qué ganas con el minimalismo digital&lt;/h2>
&lt;p>Quienes lo adoptan notan:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Mejor enfoque&lt;/strong> – Menos distracciones significa trabajo profundo más accesible.&lt;/li>
&lt;li>&lt;strong>Menos ansiedad&lt;/strong> – Sin redes sociales ni notificaciones constantes, tu mente se calma.&lt;/li>
&lt;li>&lt;strong>Relaciones más ricas&lt;/strong> – Priorizar lo presencial fortalece los vínculos reales.&lt;/li>
&lt;li>&lt;strong>Mayor productividad&lt;/strong> – Menos ruido digital, más eficiencia y creatividad.&lt;/li>
&lt;/ul>
&lt;h2 id="como-empezar">Cómo empezar&lt;/h2>
&lt;p>Algunos pasos concretos:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Audita tu vida digital&lt;/strong> – ¿Qué apps te quitan tiempo sin darte nada a cambio?&lt;/li>
&lt;li>&lt;strong>Pon límites de pantalla&lt;/strong> – Usa las herramientas del móvil para restringir ciertas apps.&lt;/li>
&lt;li>&lt;strong>Crea zonas libres de tecnología&lt;/strong> – El dormitorio o la mesa del comedor, por ejemplo.&lt;/li>
&lt;li>&lt;strong>Vuelve a lo analógico&lt;/strong> – Libros, hobbies, conversaciones cara a cara.&lt;/li>
&lt;li>&lt;strong>Programa horas offline&lt;/strong> – Momentos del día donde te desconectas del todo.&lt;/li>
&lt;/ul>
&lt;h2 id="para-cerrar">Para cerrar&lt;/h2>
&lt;p>El minimalismo digital &lt;strong>no rechaza la tecnología&lt;/strong>. La usa &lt;strong>de forma que mejore tu vida&lt;/strong>, no que la consuma. Con un enfoque más consciente de tus &lt;a href="/tags/habits/">hábitos&lt;/a> digitales, recuperas tiempo, bienestar y atención para lo que de verdad importa.&lt;/p>
&lt;hr />
&lt;h2 id="resumen-en-video">Resumen en Video&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/sJdZ7kmA2QQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="cal-newport-entrevistado-por-lex-fridman">Cal Newport entrevistado por Lex Fridman&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/y3Umo_jd5AA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Criptoria</title><subtitle>De Turing a Nakamoto</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><published>2025-02-09T00:00:00+00:00</published><updated>2025-02-09T00:00:00+00:00</updated><author><name>
Alfre Mancera</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/criptoria/"/><id>https://chemaclass.com/es/readings/criptoria/</id><summary type="html">De Grecia a Bitcoin: cómo nacieron las computadoras, las redes y el dinero digital. Un viaje por los hitos que conectan matemáticas, criptografía y la lucha por la soberanía individual.</summary><content type="html">&lt;p>¿Cómo llegamos de la Grecia antigua a Bitcoin? Criptoria cuenta esa historia: el nacimiento de las computadoras, las redes y el dinero digital.&lt;/p>
&lt;p>El libro recorre los hitos antes y después de Alan Turing. Personas, organizaciones e inventos que revelan el vínculo profundo entre matemáticas, criptografía y la búsqueda de soberanía individual.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Un libro para quienes creen que hay formas de organización social y económica más allá de las heredadas o impuestas.&lt;/p>
&lt;hr />
&lt;h2 id="contenido">Contenido&lt;/h2>
&lt;h2 id="parte-i-antes-de-turing">Parte I: Antes de Turing&lt;/h2>
&lt;h3 id="1-el-principio-del-fin">1. El Principio del Fin&lt;/h3>
&lt;ul>
&lt;li>Los Chicos Que Amaban los Puzzles
&lt;ul>
&lt;li>Alan Turing&lt;/li>
&lt;li>Irving John Good&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Los Hombres Que Amaban Sus Genes
&lt;ul>
&lt;li>La Quimera de Galton&lt;/li>
&lt;li>La Mutación de Lugénesis&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El Poder de la Ciencia Ficción
&lt;ul>
&lt;li>Hugo Gernsback&lt;/li>
&lt;li>Amazing Stories&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El Descenso de San Judas&lt;/li>
&lt;/ul>
&lt;h3 id="2-en-busca-de-la-verdad">2. En Busca de la Verdad&lt;/h3>
&lt;ul>
&lt;li>Como Lo Conocemos&lt;/li>
&lt;li>Organon&lt;/li>
&lt;li>El Efecto Mosaico de la Ciencia&lt;/li>
&lt;/ul>
&lt;h3 id="3-los-numeros-te-haran-libre">3. Los Números Te Harán Libre&lt;/h3>
&lt;ul>
&lt;li>Matemáticas Soberanas
&lt;ul>
&lt;li>Lenguaje Formal&lt;/li>
&lt;li>Teoría de Conjuntos&lt;/li>
&lt;li>Aritmética Modular&lt;/li>
&lt;li>Congruencia&lt;/li>
&lt;li>Gauss&lt;/li>
&lt;li>Gauss, Fermat y Euler&lt;/li>
&lt;li>Álgebra Booleana&lt;/li>
&lt;li>Tablas de Verdad&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Axiomatizar o Morir&lt;/li>
&lt;li>Problemas No Resueltos
&lt;ul>
&lt;li>Principia Mathematica&lt;/li>
&lt;li>Bolonia 1928&lt;/li>
&lt;li>La Revelación de Gödel&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>La Máquina de Turing
&lt;ul>
&lt;li>Números Computables&lt;/li>
&lt;li>Máquina de Computación&lt;/li>
&lt;li>Conclusiones 1936&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="4-las-matematicas-del-secreto">4. Las Matemáticas del Secreto&lt;/h3>
&lt;ul>
&lt;li>Una Breve Historia de los Números&lt;/li>
&lt;li>Herramienta de Guerra&lt;/li>
&lt;li>Enlazados por Señales&lt;/li>
&lt;li>La Fábrica de Persuasión&lt;/li>
&lt;li>Bletchley Park&lt;/li>
&lt;li>Ratio Club&lt;/li>
&lt;li>Inteligencia Metálica&lt;/li>
&lt;li>Alan Eterno&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/readings/2025-02-09/criptoria-book.jpg" alt="cover" />&lt;/p>
&lt;h2 id="parte-ii-despues-de-turing">Parte II: Después de Turing&lt;/h2>
&lt;h3 id="5-computacion-moderna">5. Computación Moderna&lt;/h3>
&lt;ul>
&lt;li>Bell Labs&lt;/li>
&lt;li>Claude Shannon
&lt;ul>
&lt;li>Me Alegro de Que Hayas Venido&lt;/li>
&lt;li>Teoría de la Información&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>La Era UNIX
&lt;ul>
&lt;li>Nuevos Lenguajes&lt;/li>
&lt;li>Nuevo Reloj&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El Primer Microprocesador&lt;/li>
&lt;li>Horst Feistel
&lt;ul>
&lt;li>Lucifer&lt;/li>
&lt;li>DES&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>ARPANET&lt;/li>
&lt;li>Primeras Empresas&lt;/li>
&lt;li>Complejidad Computacional&lt;/li>
&lt;/ul>
&lt;h3 id="6-el-amanecer-de-la-criptografia-fuerte">6. El Amanecer de la Criptografía Fuerte&lt;/h3>
&lt;ul>
&lt;li>Criptografía Prohibida
&lt;ul>
&lt;li>Una Ley Para Prohibirlas a Todas&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Criptografía de Clave Pública&lt;/li>
&lt;li>Diffie-Hellman-Merkle
&lt;ul>
&lt;li>Martin Hellman&lt;/li>
&lt;li>Whitfield Diffie&lt;/li>
&lt;li>Whit conoce a Martin&lt;/li>
&lt;li>Diffie investiga con Hellman&lt;/li>
&lt;li>Técnicas criptográficas multiusuario&lt;/li>
&lt;li>Ralph Merkle&lt;/li>
&lt;li>Merkle 1974&lt;/li>
&lt;li>Puzzles de Merkle&lt;/li>
&lt;li>Ralph conoce a Whit y Martin&lt;/li>
&lt;li>Nuevas direcciones en criptografía&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El Equipo RSA
&lt;ul>
&lt;li>Ron, Adi y Len&lt;/li>
&lt;li>El Sistema RSA&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Centros de Distribución de Claves (KDC)&lt;/li>
&lt;li>Redes Distribuidas&lt;/li>
&lt;li>Árbol de Merkle&lt;/li>
&lt;/ul>
&lt;h3 id="7-haciendo-legion">7. Haciendo Legión&lt;/h3>
&lt;ul>
&lt;li>Universo Internet&lt;/li>
&lt;li>USENET&lt;/li>
&lt;li>CPSR&lt;/li>
&lt;li>David Chaum
&lt;ul>
&lt;li>Conferencias Cripto&lt;/li>
&lt;li>CRYPTO ’82&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Prueba de Conocimiento Cero&lt;/li>
&lt;li>Software Libre
&lt;ul>
&lt;li>Proyecto GNU&lt;/li>
&lt;li>Free Software Foundation&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="8-camino-al-libertario">8. Camino al Libertario&lt;/h3>
&lt;ul>
&lt;li>Firmas Digitales
&lt;ul>
&lt;li>Taher Elgamal&lt;/li>
&lt;li>Claus Schnorr&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Curvas Elípticas&lt;/li>
&lt;li>David vs. Gran Hermano&lt;/li>
&lt;li>Criptoanarquía&lt;/li>
&lt;li>Extropianos&lt;/li>
&lt;/ul>
&lt;h3 id="9-soldados-de-la-privacidad">9. Soldados de la Privacidad&lt;/h3>
&lt;ul>
&lt;li>EFF
&lt;ul>
&lt;li>John Perry Barlow&lt;/li>
&lt;li>John Gilmore&lt;/li>
&lt;li>Mitch Kapor&lt;/li>
&lt;li>Frontera Electrónica&lt;/li>
&lt;li>Independencia del Ciberespacio&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>EPIC&lt;/li>
&lt;li>PGP
&lt;ul>
&lt;li>Phil Zimmermann&lt;/li>
&lt;li>Hal Finney&lt;/li>
&lt;li>Danzando con Lobos&lt;/li>
&lt;li>OpenPGP&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cypherpunks
&lt;ul>
&lt;li>Cyphernomicon&lt;/li>
&lt;li>Manifiesto Cypherpunk&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Clipper Chip&lt;/li>
&lt;/ul>
&lt;h3 id="10-dinero-digital">10. Dinero Digital&lt;/h3>
&lt;ul>
&lt;li>Tatsuakki Okamoto&lt;/li>
&lt;li>Prueba de Trabajo&lt;/li>
&lt;li>Digicash&lt;/li>
&lt;li>Hal 1993&lt;/li>
&lt;li>Magic Money Digicash&lt;/li>
&lt;li>Contratos Inteligentes&lt;/li>
&lt;li>La Casa de la Moneda del Palacio&lt;/li>
&lt;li>Hashcash&lt;/li>
&lt;li>B-money&lt;/li>
&lt;li>Bit Gold&lt;/li>
&lt;li>RPOW&lt;/li>
&lt;/ul>
&lt;h3 id="11-la-era-de-satoshi">11. La Era de Satoshi&lt;/h3>
&lt;ul>
&lt;li>Satoshi Nakamoto&lt;/li>
&lt;li>Whitepaper&lt;/li>
&lt;li>Binarios&lt;/li>
&lt;li>Primera TX&lt;/li>
&lt;li>Bitcoin&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="es-videos-relacionados">🇪🇸 Videos relacionados&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/7CvsAVaOjlQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/DN3UKsf_Wmk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Sitio web del libro: &lt;a rel="external" href="https://www.prometeabtc.com/criptoria">www.prometeabtc.com/criptoria&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Bitcoin con Rigor</title><subtitle>Un estudio técnico sobre cómo funciona Bitcoin</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2025-01-18T00:00:00+00:00</published><updated>2025-01-18T00:00:00+00:00</updated><author><name>
Jose Sanchis</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/bitcoin-with-rigor/"/><id>https://chemaclass.com/es/readings/bitcoin-with-rigor/</id><summary type="html">Un análisis detallado de cómo funciona Bitcoin, desglosando sus componentes de forma clara. Explora su potencial y riesgos como experimento monetario que, aunque no ha superado la prueba del tiempo como el oro, tiene un diseño prometedor para el presente y futuro.</summary><content type="html">&lt;p>Un análisis detallado de cómo funciona Bitcoin, desglosando sus componentes de forma clara para entender tanto las partes como el sistema completo. Explora su potencial y riesgos como experimento monetario que, aunque no ha superado la prueba del tiempo como el oro, tiene un diseño prometedor.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Bitcoin es difícil de entender del todo. Requiere conocimientos de computación, economía y finanzas, y además es un activo digital sin precedente histórico que sirva de guía. Pero igual que Internet (también joven pero innegablemente transformador), Bitcoin tiene el potencial de redefinir sistemas y dejar un impacto duradero.&lt;/p>
&lt;p>Este libro busca darte las herramientas para entender cómo funciona Bitcoin. Así podrás formar tu propia opinión informada sobre su papel en la sociedad o, si lo decides, empezar una carrera profesional en este sector. Está escrito con rigor pero sin tecnicismos excesivos: conciso, accesible y pensado para que comprendas Bitcoin de verdad.&lt;/p>
&lt;hr />
&lt;h2 id="contenido">Contenido&lt;/h2>
&lt;h3 id="1-conceptos-basicos-de-computacion">1. Conceptos Básicos de Computación&lt;/h3>
&lt;ul>
&lt;li>Información y Comunicación&lt;/li>
&lt;li>Cómo Funcionan las Computadoras&lt;/li>
&lt;li>Lenguajes y Protocolos&lt;/li>
&lt;li>El Modelo OSI: La Cebolla de la Computación&lt;/li>
&lt;li>Puertas Lógicas: Funciones Fundamentales de Computación&lt;/li>
&lt;li>Redes Cliente-Servidor y P2P&lt;/li>
&lt;/ul>
&lt;h3 id="2-conceptos-basicos-de-criptografia">2. Conceptos Básicos de Criptografía&lt;/h3>
&lt;ul>
&lt;li>Complejidad Asimétrica&lt;/li>
&lt;li>Cifrados, Claves y Criptografía Simétrica&lt;/li>
&lt;li>Criptografía Asimétrica&lt;/li>
&lt;li>El Movimiento Cypherpunk&lt;/li>
&lt;li>Funciones Hash Criptográficas&lt;/li>
&lt;/ul>
&lt;h3 id="3-los-fundamentos-de-bitcoin-y-las-criptomonedas">3. Los Fundamentos de Bitcoin y las Criptomonedas&lt;/h3>
&lt;ul>
&lt;li>Generadores de Claves y Aleatoriedad&lt;/li>
&lt;li>Firmas Criptográficas&lt;/li>
&lt;li>El Problema del Logaritmo Discreto&lt;/li>
&lt;li>Criptografía de Curva Elíptica&lt;/li>
&lt;li>Árbol de Merkle&lt;/li>
&lt;li>Dinero Digital Tradicional&lt;/li>
&lt;li>Algoritmos de Consenso Distribuido&lt;/li>
&lt;li>Prueba de Trabajo (PoW)&lt;/li>
&lt;/ul>
&lt;h3 id="4-bitcoin-pieza-por-pieza">4. Bitcoin Pieza por Pieza&lt;/h3>
&lt;ul>
&lt;li>¿Blockchain o Hashchain?&lt;/li>
&lt;li>Sincronización de Bloques&lt;/li>
&lt;li>La Headerchain&lt;/li>
&lt;li>Claves y Firmas en Bitcoin&lt;/li>
&lt;li>Transacciones y el Modelo UTXO&lt;/li>
&lt;li>Bitcoin Script y Opcodes&lt;/li>
&lt;li>P2PKH (Pay to Public Key Hash) y P2PK&lt;/li>
&lt;li>Multifirmas y P2SH (Pay to Script Hash)&lt;/li>
&lt;/ul>
&lt;h3 id="5-nodos-y-blockchain-en-detalle">5. Nodos y Blockchain en Detalle&lt;/h3>
&lt;ul>
&lt;li>Tamaño y Frecuencia de Transacciones&lt;/li>
&lt;li>Inicialización de un Nodo de Red Completo&lt;/li>
&lt;li>Bases de Datos y Pruning&lt;/li>
&lt;li>Cómo Funciona una Wallet&lt;/li>
&lt;li>Wallets, Nodos SPV y Otros&lt;/li>
&lt;li>Del Mempool a la Blockchain&lt;/li>
&lt;li>Forks y Criticidad del Consenso&lt;/li>
&lt;li>Hard Fork vs. Soft Fork&lt;/li>
&lt;/ul>
&lt;h3 id="6-actualizaciones-y-aplicaciones-de-bitcoin">6. Actualizaciones y Aplicaciones de Bitcoin&lt;/h3>
&lt;ul>
&lt;li>Mucho Trabajo por Delante&lt;/li>
&lt;li>Maleabilidad de Transacciones&lt;/li>
&lt;li>Segregated Witness (SegWit)&lt;/li>
&lt;li>P2WPKH y P2WSH&lt;/li>
&lt;li>Canales de Pago Unilaterales&lt;/li>
&lt;li>Canales Lightning&lt;/li>
&lt;li>Pagos Multicanal y HTLCs&lt;/li>
&lt;li>Lightning Network&lt;/li>
&lt;li>Discreet Log Contracts (DLCs)&lt;/li>
&lt;li>MAST, P2SMR y P2CH&lt;/li>
&lt;li>Taproot y Grafroot&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="presentacion-del-libro">Presentación del libro&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/55ZRM7j1Jzc"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Sitio web del libro: &lt;a rel="external" href="https://www.bitcoinconrigor.com">www.bitcoinconrigor.com&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Entendiendo los Impuestos</title><subtitle>A dónde va tu dinero y cómo repensar el sistema</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><published>2025-01-02T00:00:00+00:00</published><updated>2025-01-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/understanding-taxes/"/><id>https://chemaclass.com/es/blog/understanding-taxes/</id><summary type="html">Los impuestos son inevitables. Ya sea tu sueldo, el café de la mañana o la casa que acabas de comprar, los impuestos están en todas partes. Si alguna vez te has preguntado a dónde va tu dinero después del día de pago o por qué comprar una propiedad viene con tasas adicionales, este post es para ti.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2025-01-02/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Los impuestos son inevitables. Tu sueldo, el café de la mañana, la casa que acabas de comprar: todos llevan impuestos. Si alguna vez te has preguntado a dónde va tu dinero o por qué comprar una propiedad incluye tasas extra, este post es para ti. Voy a mantenerlo simple, sin complicaciones legales.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;ol>
&lt;li>Impuestos 101&lt;/li>
&lt;li>Tipos de impuestos&lt;/li>
&lt;li>¿Cómo funcionan?&lt;/li>
&lt;li>¿Por qué pagamos impuestos?&lt;/li>
&lt;li>Una nueva perspectiva&lt;/li>
&lt;/ol>
&lt;hr />
&lt;h2 id="impuestos-101">Impuestos 101&lt;/h2>
&lt;ol>
&lt;li>Cuando ganas:
&lt;ul>
&lt;li>Impuesto sobre la Renta: Deducido de tu salario.&lt;/li>
&lt;li>Cotizaciones a la Seguridad Social: Para sanidad, pensiones y desempleo.&lt;/li>
&lt;li>Impuesto de Autónomos: Cubre impuestos y seguridad social para freelancers.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando gastas:
&lt;ul>
&lt;li>Impuesto sobre el Valor Añadido (IVA): Añade del 10%-25% a la mayoría de bienes y servicios.&lt;/li>
&lt;li>Impuestos Especiales: Cargos extra sobre combustible, alcohol, tabaco y artículos de lujo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando posees:
&lt;ul>
&lt;li>Impuesto sobre Bienes Inmuebles (IBI): Pagado anualmente sobre propiedades.&lt;/li>
&lt;li>Impuesto sobre el Patrimonio: Cobrado sobre activos sustanciales en algunos países.&lt;/li>
&lt;li>Impuesto de Circulación: Tasa anual por poseer u operar un vehículo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando transfieres o heredas:
&lt;ul>
&lt;li>Impuesto de Transmisiones: Aplicado a compras como propiedades de segunda mano.&lt;/li>
&lt;li>Impuesto de Sucesiones/Donaciones: Pagadero sobre activos heredados o grandes regalos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando vendes:
&lt;ul>
&lt;li>Impuesto sobre Ganancias de Capital: Sobre el beneficio al vender propiedades, acciones o inversiones.&lt;/li>
&lt;li>Impuesto sobre el Incremento del Valor de los Terrenos: Sobre el aumento del valor del terreno durante la propiedad.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando usas servicios:
&lt;ul>
&lt;li>Tasas Locales: Por recogida de basuras, matriculación de vehículos o licencias de obras.&lt;/li>
&lt;li>Tasa Turística: Por alojamiento o ciertos servicios relacionados con el turismo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cuando ganas la lotería:
&lt;ul>
&lt;li>Impuesto sobre la Lotería: Una porción sustancial de tus ganancias va al gobierno.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ol>
&lt;hr />
&lt;h2 id="tipos-de-impuestos">Tipos de impuestos&lt;/h2>
&lt;p>Considera los impuestos como un menú de tres platos: &lt;strong>directos&lt;/strong>, &lt;strong>indirectos&lt;/strong> y &lt;strong>especiales&lt;/strong>.&lt;/p>
&lt;h3 id="impuestos-directos-lo-que-ganas-y-posees">Impuestos directos: Lo que ganas y posees&lt;/h3>
&lt;p>Estos impuestos se basan en tus ingresos, activos o ganancias:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Impuesto sobre la Renta:&lt;/strong> El más importante. Es progresivo: cuanto más ganas, mayor porcentaje pagas. El IRPF se aplica a salarios, ingresos de freelance, alquileres y ganancias de inversiones.&lt;/li>
&lt;li>&lt;strong>Impuesto de Sociedades:&lt;/strong> Se paga sobre los beneficios de las empresas. Las tasas varían por país, pero el 20-30% es lo habitual.&lt;/li>
&lt;li>&lt;strong>Impuesto sobre el Patrimonio:&lt;/strong> Algunos países gravan a personas con alto patrimonio sobre sus activos totales (propiedades, ahorros). Las tasas y exenciones dependen de dónde vivas.&lt;/li>
&lt;li>&lt;strong>Impuesto de Sucesiones y Donaciones:&lt;/strong> Cuando heredas activos o recibes un regalo significativo, debes pagar impuestos. La tasa a menudo depende de tu relación con el donante.&lt;/li>
&lt;/ul>
&lt;h3 id="impuestos-indirectos-lo-que-gastas">Impuestos indirectos: Lo que gastas&lt;/h3>
&lt;p>Estos impuestos están incorporados en el precio de bienes y servicios:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Impuesto sobre el Valor Añadido (IVA):&lt;/strong> Va incluido en casi todo lo que compras. Las tasas estándar van del 10-25%, aunque productos esenciales como alimentos y medicinas suelen tener tasas reducidas.&lt;/li>
&lt;li>&lt;strong>Impuestos especiales:&lt;/strong> Gravan productos como alcohol, tabaco y combustible. Recaudan dinero y, de paso, desincentivan el consumo.&lt;/li>
&lt;/ul>
&lt;h3 id="impuestos-sobre-propiedades-y-locales-poseer-cosas-cuesta-dinero">Impuestos sobre propiedades y locales: Poseer cosas cuesta dinero&lt;/h3>
&lt;p>Si posees, alquilas o vendes propiedades, estos impuestos entran en juego:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>IBI:&lt;/strong> Pagado anualmente basado en el valor de tu casa o terreno.&lt;/li>
&lt;li>&lt;strong>Impuesto de Transmisiones:&lt;/strong> Al comprar una propiedad de segunda mano, puedes pagar un % de su precio.&lt;/li>
&lt;li>&lt;strong>Impuesto sobre Ganancias de Capital:&lt;/strong> Al vender una propiedad u otros activos con beneficio.&lt;/li>
&lt;/ul>
&lt;h3 id="otros-impuestos-y-tasas-los-pequenos-extras">Otros impuestos y tasas: Los pequeños extras&lt;/h3>
&lt;p>Aquí entran tasas de matriculación, recogida de basuras, permisos de obra. Parecen poca cosa, pero se acumulan.&lt;/p>
&lt;hr />
&lt;h2 id="como-funcionan">¿Cómo funcionan?&lt;/h2>
&lt;p>&lt;img src="/images/blog/2025-01-02/middle.jpg" alt="cómo funcionan los impuestos" />&lt;/p>
&lt;p>Los impuestos suelen ser una mezcla de responsabilidades &lt;strong>nacionales&lt;/strong>, &lt;strong>regionales&lt;/strong> y &lt;strong>locales&lt;/strong>:&lt;/p>
&lt;ul>
&lt;li>Los impuestos nacionales tienen &lt;strong>tasas estandarizadas&lt;/strong>, como el IRPF o el IVA.&lt;/li>
&lt;li>Los impuestos regionales varían &lt;strong>dependiendo de dónde vivas&lt;/strong>, como el patrimonio o sucesiones.&lt;/li>
&lt;li>Los impuestos locales son &lt;strong>específicos de tu ciudad&lt;/strong> o pueblo, como el IBI o tasas de basuras.&lt;/li>
&lt;/ul>
&lt;p>A los empleados les descuentan los impuestos directamente de la nómina. Los freelancers y dueños de negocios tienen que calcularlos y pagarlos ellos mismos.&lt;/p>
&lt;h2 id="por-que-pagamos-impuestos">¿Por qué pagamos impuestos?&lt;/h2>
&lt;p>Los impuestos &lt;strong>financian servicios públicos&lt;/strong>: carreteras, sanidad, escuelas, pensiones. Deberían mejorar la vida de todos. Pero la complejidad del sistema y cómo se gasta el dinero hacen que muchos lo sientan injusto.&lt;/p>
&lt;h3 id="son-justos-los-impuestos">¿Son justos los impuestos?&lt;/h3>
&lt;p>Esto depende de dos grandes preguntas: &lt;strong>¿Quién debería pagar? ¿Cuánto es justo?&lt;/strong>&lt;/p>
&lt;h4 id="el-caso-a-favor-de-los-impuestos">El caso a favor de los impuestos&lt;/h4>
&lt;ul>
&lt;li>Los impuestos &lt;strong>financian servicios esenciales&lt;/strong> que todos usamos, como hospitales y escuelas.&lt;/li>
&lt;li>&lt;strong>Los impuestos progresivos&lt;/strong>, donde los que más ganan pagan más, ayudan a reducir la desigualdad y crear comunidades más fuertes.&lt;/li>
&lt;/ul>
&lt;h4 id="el-caso-en-contra-de-los-impuestos">El caso en contra de los impuestos&lt;/h4>
&lt;ul>
&lt;li>Algunos impuestos, como &lt;strong>patrimonio o sucesiones, se sienten injustos&lt;/strong>. Gravan dinero que ya ganaste.&lt;/li>
&lt;li>Peor aún, cuando los gobiernos &lt;strong>desperdician el dinero de los impuestos en corrupción o malas decisiones&lt;/strong>, la gente siente que está pagando por nada.&lt;/li>
&lt;/ul>
&lt;p>Resulta &lt;strong>injusto cuando los gobiernos desperdician el dinero&lt;/strong>. Si los servicios no mejoran o se gestionan mal, &lt;strong>frustra ver tu dinero desaparecer sin beneficio&lt;/strong>.&lt;/p>
&lt;p>Los impuestos parecerían más justos si la gente confiara en que se gastan bien. Sin esa confianza, pagar &lt;strong>impuestos se siente como tirar dinero a un agujero negro&lt;/strong>.&lt;/p>
&lt;hr />
&lt;h2 id="una-nueva-perspectiva">Una nueva perspectiva&lt;/h2>
&lt;p>&lt;img src="/images/blog/2025-01-02/middle-2.jpg" alt="una nueva perspectiva sobre los impuestos" />&lt;/p>
&lt;p>Se supone que los impuestos financian servicios públicos esenciales. Pero el gran problema con los impuestos (y los gobiernos grandes) es que suelen traer &lt;strong>ineficiencia y corrupción&lt;/strong>. Cuanto más poder tiene un gobierno, más probable es que lo use mal. Por eso creo que los gobiernos deberían ser &lt;strong>pequeños, enfocados y eficientes&lt;/strong>: dar servicios esenciales sin complicar las cosas ni meterse en la vida de la gente.&lt;/p>
&lt;p>Aquí es donde &lt;strong>Bitcoin ofrece una alternativa interesante&lt;/strong>. Es descentralizado: nadie lo controla. Ni gobiernos, ni bancos, ni nadie. Eso elimina el riesgo de corrupción o mala gestión por parte de instituciones poderosas. Cada transacción se registra en un libro mayor público que cualquiera puede verificar. Es &lt;strong>transparente y resistente a la manipulación&lt;/strong>.&lt;/p>
&lt;p>Aunque la mayoría de países quieren gravar las transacciones de Bitcoin, usarlo &lt;strong>da más control sobre tu dinero&lt;/strong>. Las monedas tradicionales se pueden imprimir sin límite (causando inflación y reduciendo el valor de tus ahorros). Bitcoin tiene una &lt;strong>oferta limitada&lt;/strong>, así que su valor no se puede diluir igual. Además, no tiene fronteras: puedes enviar y recibir dinero sin depender de bancos ni intermediarios que se queden una parte o añadan retrasos.&lt;/p>
&lt;h3 id="por-que-funciona-el-dinero-del-gobierno">Por qué funciona el dinero del gobierno&lt;/h3>
&lt;p>¿Por qué el papel moneda tiene valor si no está respaldado por oro? La respuesta son los impuestos. &lt;strong>Los gobiernos te exigen que pagues impuestos en su moneda&lt;/strong>. Eso crea demanda forzada: todos necesitan euros, dólares o yenes para pagar al gobierno. Es un sistema circular. El gobierno crea el dinero, te exige que lo ganes, y luego toma una parte a través de impuestos. Por eso el dinero del gobierno se llama “fiat” (del latín “hágase”). Funciona porque el gobierno lo dice, respaldándolo con el sistema tributario.&lt;/p>
&lt;h3 id="inflacion-el-impuesto-oculto">Inflación: El impuesto oculto&lt;/h3>
&lt;p>La &lt;strong>inflación&lt;/strong> se llama a menudo “&lt;strong>impuesto oculto&lt;/strong>”, y con razón. Cuando los gobiernos imprimen dinero sin parar para financiar sus gastos, el valor del dinero existente cae. &lt;strong>Tus ahorros compran menos con el tiempo&lt;/strong>.&lt;/p>
&lt;p>Los políticos se benefician a corto plazo: tienen más dinero sin subir impuestos directamente. Pero la gente común paga el precio con costos de vida más altos. &lt;strong>La inflación es un robo silencioso&lt;/strong>: quita valor al dinero de todos para cubrir las malas decisiones financieras del gobierno.&lt;/p>
&lt;p>Bitcoin tiene una &lt;strong>oferta fija de 21 millones&lt;/strong> de monedas. No se puede inflar. &lt;strong>Su escasez garantiza que nadie&lt;/strong>, ni siquiera los políticos, &lt;strong>manipule su valor&lt;/strong>. Para quienes están hartos de precios que suben y ahorros que se devalúan, Bitcoin ofrece una forma de proteger su riqueza. Es &lt;strong>un sistema diseñado para recompensar a los ahorradores&lt;/strong>, no castigarlos.&lt;/p>
&lt;h3 id="reflexiones-finales">Reflexiones finales&lt;/h3>
&lt;p>&lt;strong>Bitcoin&lt;/strong> no elimina los impuestos ni los servicios públicos, pero &lt;strong>cuestiona cómo pensamos sobre el dinero y el poder&lt;/strong>. Da a la gente más &lt;strong>control sobre su riqueza&lt;/strong> y demuestra que los sistemas financieros pueden funcionar sin grandes instituciones (a menudo corruptas). Es &lt;strong>un paso hacia un mundo con más libertad individual&lt;/strong> y gobiernos pequeños, eficientes y justos.&lt;/p>
&lt;p>&lt;img src="/images/blog/2025-01-02/footer.jpg" alt="bitcoin y libertad" />&lt;/p></content></entry><entry xml:lang="es"><title>Los Cypherpunks</title><subtitle>Pioneros de la privacidad en la era digital</subtitle><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><category term="security" scheme="https://chemaclass.com/tags/security/" label="Security"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2024-12-11T00:00:00+00:00</published><updated>2024-12-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-cypherpunks/"/><id>https://chemaclass.com/es/blog/the-cypherpunks/</id><summary type="html">A principios de los 90, con el auge de internet, surgió un grupo llamado los Cypherpunks para defender la privacidad digital. Impulsaron el cifrado y la tecnología de privacidad, moldeando nuestro mundo digital con su visión e ideales.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-12-11/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>A principios de los 90, con el auge de internet, surgió un grupo llamado los Cypherpunks para defender la privacidad digital. Impulsaron el cifrado y la privacidad, moldeando nuestro mundo digital con su visión.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="quienes-eran-los-cypherpunks">¿Quiénes eran los Cypherpunks?&lt;/h2>
&lt;p>El término “Cypherpunk” combina “cipher” (una referencia al cifrado) con “punk”, reflejando el espíritu rebelde y anti-establishment del grupo.&lt;/p>
&lt;p>No eran una organización formal, sino una mezcla de visionarios, tecnólogos y activistas unidos por ideales comunes. El movimiento arrancó en 1992, cuando Eric Hughes, Timothy May y John Gilmore crearon la lista de correo cypherpunks. Algunas figuras clave:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Eric Hughes&lt;/strong> quien escribió “A Cypherpunk’s Manifesto”, estableciendo la base filosófica del movimiento.&lt;/li>
&lt;li>&lt;strong>Timothy C. May&lt;/strong> escribió “The Crypto Anarchist Manifesto”, que imaginaba una sociedad donde la criptografía podría fomentar un nuevo orden anárquico.&lt;/li>
&lt;li>&lt;strong>John Gilmore&lt;/strong>, cofundador de la Electronic Frontier Foundation (EFF), fue fundamental en la defensa temprana de la privacidad en internet.&lt;/li>
&lt;li>&lt;strong>Julian Assange&lt;/strong>, más tarde conocido por WikiLeaks, participó en estas discusiones.&lt;/li>
&lt;li>&lt;strong>Phil Zimmermann&lt;/strong> revolucionó la privacidad del email con su creación de PGP.&lt;/li>
&lt;li>&lt;strong>Jude Milhon&lt;/strong> (St. Jude), hacker y escritora, acuñó el término “cypherpunk” junto con Eric Hughes.&lt;/li>
&lt;li>&lt;strong>Nick Szabo&lt;/strong> trabajó en contratos y monedas digitales, y conceptualizó “bit gold” antes de Bitcoin.&lt;/li>
&lt;li>&lt;strong>Hal Finney&lt;/strong>, uno de los primeros desarrolladores de Bitcoin, trabajó en software criptográfico como PGP.&lt;/li>
&lt;li>&lt;strong>Adam Back&lt;/strong> creó Hashcash, que luego inspiró la prueba de trabajo de Bitcoin.&lt;/li>
&lt;li>&lt;strong>Wei Dai&lt;/strong> propuso “b-money”, una idea temprana para sistemas de dinero digital anónimo, que influyó en el desarrollo de Bitcoin.&lt;/li>
&lt;li>&lt;strong>Zooko Wilcox-O’Hearn&lt;/strong> trajo privacidad avanzada a las criptomonedas con su trabajo en Zcash.&lt;/li>
&lt;li>&lt;strong>David Chaum&lt;/strong>, conocido como el “padrino de los cypherpunks”, fue pionero del dinero digital con DigiCash (1989). Su trabajo sobre privacidad electrónica precedió e inspiró al movimiento.&lt;/li>
&lt;li>&lt;strong>Bram Cohen&lt;/strong> desarrolló BitTorrent, mostrando el ethos cypherpunk de descentralización en el intercambio de archivos.&lt;/li>
&lt;/ul>
&lt;p>Su trabajo se basó en la investigación criptográfica fundamental de &lt;strong>Whitfield Diffie&lt;/strong> y &lt;strong>Martin Hellman&lt;/strong>, quienes inventaron la criptografía de clave pública en 1976, haciendo posible la comunicación segura entre desconocidos.&lt;/p>
&lt;p>Se reunían online en la lista de correo cypherpunks. En su mejor momento, tenía unos 2000 suscriptores que intercambiaban más de 30 mensajes al día. Su lema: &lt;strong>“Cypherpunks write code.”&lt;/strong> No solo hablaban de privacidad. La construían.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-12-11/manifesto.jpg" alt="a cypherpunk’s manifesto" />&lt;/p>
&lt;h2 id="filosofia-y-objetivos">Filosofía y objetivos&lt;/h2>
&lt;p>La filosofía central de los Cypherpunks se centraba en la privacidad, la libertad de expresión y el potencial de la criptografía para proteger estos derechos. Sus principios principales incluían:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>La privacidad como derecho fundamental&lt;/strong>: Creían que la privacidad era esencial para la libertad personal y que la comunicación digital debería ser privada.&lt;/li>
&lt;li>&lt;strong>Descentralización&lt;/strong>: Desconfiaban del control centralizado sobre la información, así que impulsaron sistemas descentralizados donde cada persona pudiera controlar sus propios datos.&lt;/li>
&lt;li>&lt;strong>La criptografía como herramienta&lt;/strong>: Veían el cifrado no solo como un medio para asegurar datos sino como una herramienta política contra la vigilancia y los regímenes opresivos.&lt;/li>
&lt;/ul>
&lt;h3 id="sus-objetivos-eran">Sus objetivos eran&lt;/h3>
&lt;ol>
&lt;li>Crear y promover herramientas para cifrado, anonimato y dinero digital.&lt;/li>
&lt;li>Educar al público sobre la importancia de la criptografía.&lt;/li>
&lt;li>Resistir los esfuerzos gubernamentales y corporativos para controlar o monitorear las comunicaciones digitales.&lt;/li>
&lt;/ol>
&lt;h2 id="impacto-actualmente">Impacto actualmente&lt;/h2>
&lt;h3 id="desarrollo-de-tecnologias-clave">Desarrollo de tecnologías clave&lt;/h3>
&lt;p>Los Cypherpunks construyeron herramientas, no solo teorías:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>PGP&lt;/strong> (1991): Cifrado de email para todos&lt;/li>
&lt;li>&lt;strong>Tor&lt;/strong> (2002): Navegación anónima a través de enrutamiento cebolla&lt;/li>
&lt;li>&lt;strong>BitTorrent&lt;/strong> (2001): Intercambio de archivos descentralizado&lt;/li>
&lt;li>&lt;strong>Bitcoin&lt;/strong> (2009): Dinero digital sin bancos&lt;/li>
&lt;li>&lt;strong>Protocolo Signal&lt;/strong>: El cifrado detrás de Signal, WhatsApp y otros mensajeros&lt;/li>
&lt;/ul>
&lt;p>Cuando envías un mensaje cifrado hoy, estás usando tecnología cypherpunk.&lt;/p>
&lt;h3 id="cambio-cultural">Cambio cultural&lt;/h3>
&lt;p>Cambiaron cómo la sociedad ve la privacidad. Antes de ellos, el cifrado era principalmente para gobiernos o expertos. Hoy, es una parte estándar de herramientas como aplicaciones de mensajería y navegadores web. Al promover el cifrado y el anonimato, hicieron de la privacidad una prioridad y animaron a las personas a tomar control de sus datos.&lt;/p>
&lt;h3 id="influencia-legal-y-politica-las-crypto-wars">Influencia legal y política: Las Crypto Wars&lt;/h3>
&lt;p>Los años 90 vieron una batalla real entre los cypherpunks y los gobiernos, conocida como las “Crypto Wars”. EE.UU. clasificó el cifrado fuerte como arma y prohibió su exportación. Cuando Phil Zimmermann lanzó PGP, fue investigado por “exportar municiones” porque el software se extendió globalmente a través de internet.&lt;/p>
&lt;p>Los cypherpunks contraatacaron creativamente. Imprimieron el código fuente de PGP en libros, ya que los libros eran discurso protegido. Usaron camisetas con código de cifrado. Finalmente, ganaron. Las restricciones de exportación se relajaron en 2000. La mensajería cifrada de hoy existe gracias a esa lucha.&lt;/p>
&lt;h2 id="desafios-y-criticas">Desafíos y críticas&lt;/h2>
&lt;p>Los Cypherpunks enfrentan estas críticas principales:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Accesibilidad&lt;/strong>: Sus herramientas son demasiado complejas para mucha gente. Solo quienes tienen conocimientos técnicos pueden usarlas, dejando al resto fuera.&lt;/li>
&lt;li>&lt;strong>Riesgo de mal uso&lt;/strong>: Su tecnología de cifrado puede caer en malas manos. Los Cypherpunks creen que la privacidad es un derecho para todos, pero las autoridades temen que estas herramientas oculten actividades ilegales.&lt;/li>
&lt;/ul>
&lt;p>Es la eterna tensión entre privacidad y seguridad en el mundo digital.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-12-11/btc-p2p.jpg" alt="bitcoin dinero entre pares" />&lt;/p>
&lt;h2 id="precursores-de-bitcoin">Precursores de Bitcoin&lt;/h2>
&lt;p>Bitcoin es el resultado más conocido de la filosofía cypherpunk. Encarna sus valores: descentralización, privacidad e independencia del control gubernamental sobre el dinero. El misterioso Satoshi Nakamoto lo compartió por primera vez en la lista de correo cypherpunks en 2008.&lt;/p>
&lt;p>Pero Bitcoin no surgió de la nada. Es el resultado de muchos intentos previos dentro de este grupo. Usa ideas de Hashcash (prueba de trabajo), b-money y bit gold, todas reflejando el sueño cypherpunk de una moneda que nadie controle.&lt;/p>
&lt;h3 id="digicash-ecash">DigiCash (eCash)&lt;/h3>
&lt;p>David Chaum lo desarrolló a finales de los 80 y lo lanzó en 1990. Fue uno de los primeros intentos de pago electrónico. Usaba criptografía para garantizar privacidad, pero fracasó por problemas de adopción, centralización y el famoso problema del doble gasto.&lt;/p>
&lt;h3 id="b-money">B-Money&lt;/h3>
&lt;p>Wei Dai lo propuso en 1998 como un marco conceptual para dinero electrónico anónimo y distribuido. Quería resolver el doble gasto sin autoridad central, pero nunca se implementó. Sus ideas influyeron en el diseño de Bitcoin.&lt;/p>
&lt;h3 id="bit-gold">Bit Gold&lt;/h3>
&lt;p>Nick Szabo lo conceptualizó en 1998. Proponía una moneda con propiedades similares al oro usando prueba de trabajo criptográfica. Nunca se terminó, pero contribuyó al desarrollo de Bitcoin, especialmente su sistema de prueba de trabajo.&lt;/p>
&lt;h3 id="hashcash">Hashcash&lt;/h3>
&lt;p>Adam Back lo introdujo en 1997. No era una moneda, sino un sistema para combatir el spam de email usando prueba de trabajo. Bitcoin adoptaría este concepto para la minería.&lt;/p>
&lt;blockquote>
&lt;p>Ninguno de estos proyectos logró crear una moneda digital funcional. Pero sentaron las bases teóricas de Bitcoin al abordar problemas clave: el doble gasto, la privacidad y la descentralización.&lt;/p>
&lt;/blockquote>
&lt;h2 id="legado-cypherpunk">Legado cypherpunk&lt;/h2>
&lt;p>Bitcoin ha cambiado cómo entendemos el dinero, la privacidad y la seguridad:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Control descentralizado&lt;/strong>: Bitcoin no es administrado por ningún banco o gobierno, lo que encaja perfectamente con el escepticismo cypherpunk hacia el poder centralizado.&lt;/li>
&lt;li>&lt;strong>Privacidad&lt;/strong>: Aunque no es completamente anónimo, las transacciones de Bitcoin usan pseudónimos, ofreciendo cierta protección contra la supervisión financiera.&lt;/li>
&lt;li>&lt;strong>Transacciones inmutables&lt;/strong>: Una vez que una transacción está en la blockchain, es casi inalterable, fomentando la confianza en las transacciones digitales.&lt;/li>
&lt;/ul>
&lt;p>Bitcoin dio vida a los ideales cypherpunk. Ha provocado debates globales sobre privacidad financiera, la naturaleza del dinero y el poder de la criptografía. Y sigue evolucionando con desarrollos como &lt;a rel="external" href="https://en.wikipedia.org/wiki/Lightning_Network">Lightning Network&lt;/a> para transacciones más rápidas y privadas, y &lt;a href="/es/blog/programmable-money/#p2tr-pay-to-taproot-taproot-up">Taproot&lt;/a> para mayor privacidad.&lt;/p>
&lt;h2 id="conclusion">Conclusión&lt;/h2>
&lt;p>Los cypherpunks demostraron que un pequeño grupo de personas que escriben código pueden cambiar el mundo. Cada mensaje cifrado que envías, cada transacción de Bitcoin, cada navegación anónima: su legado.&lt;/p>
&lt;p>La privacidad no está muerta. Ellos se aseguraron de eso.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/9vM0oIEhMag"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Aprende más: &lt;a href="/pgp">¿Qué es el cifrado PGP?&lt;/a> &lt;small>Un tutorial de 3 minutos para principiantes&lt;/small>&lt;/li>
&lt;li>Artículo de Wikipedia: &lt;a rel="external" href="https://en.wikipedia.org/wiki/Cypherpunk">wikipedia.org/Cypherpunk&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>El hombre en busca de sentido</title><subtitle>Propósito en la desesperación: la mirada de Frankl desde el Holocausto</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2024-11-29T00:00:00+00:00</published><updated>2024-11-29T00:00:00+00:00</updated><author><name>
Viktor E. Frankl</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/mans-search-for-meaning/"/><id>https://chemaclass.com/es/readings/mans-search-for-meaning/</id><summary type="html">Frankl comparte sus desgarradoras experiencias del Holocausto y presenta una filosofía profunda sobre la condición humana. Un testimonio de la resiliencia del espíritu humano: incluso en los momentos más oscuros, uno puede encontrar propósito y sentido.</summary><content type="html">&lt;p>Frankl comparte sus desgarradoras experiencias del Holocausto y presenta una filosofía profunda sobre la condición humana. Un testimonio de la resiliencia del espíritu humano: incluso en los momentos más oscuros, uno puede encontrar propósito y sentido.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Su visión sobre la psicología de la supervivencia y el desarrollo de la &lt;a rel="external" href="https://es.wikipedia.org/wiki/Logoterapia">logoterapia&lt;/a> nos dan una perspectiva única para mirar nuestras propias vidas. Al adentrarnos en su narrativa, reflexionamos sobre nuestra propia búsqueda de sentido y cómo encontrar propósito entre las pruebas que nos pone la vida.&lt;/p>
&lt;h2 id="parte-1-experiencias-en-un-campo-de-concentracion">Parte 1: Experiencias en un campo de concentración&lt;/h2>
&lt;p>Frankl, psiquiatra austriaco, relata sus experiencias en campos de concentración nazis como Auschwitz y Dachau durante la Segunda Guerra Mundial.&lt;/p>
&lt;p>Describe las etapas psicológicas de los prisioneros: shock al llegar, apatía (se volvían emocionalmente insensibles para sobrevivir) y finalmente desilusión o amargura si eran liberados.&lt;/p>
&lt;p>Frankl subraya que incluso en las condiciones más horribles, encontrar un propósito da fuerza para sobrevivir. Quienes tenían algo por lo que vivir (un ser querido, un proyecto personal) resistían mejor.&lt;/p>
&lt;h2 id="parte-2-la-logoterapia-en-pocas-palabras">Parte 2: La logoterapia en pocas palabras&lt;/h2>
&lt;p>Aquí Frankl presenta su método psicoterapéutico, desarrollado a partir de sus experiencias. La logoterapia se centra en el sentido de la existencia humana y la búsqueda de ese sentido.&lt;/p>
&lt;p>A diferencia de la “voluntad de placer” de Freud o la “voluntad de poder” de Adler, Frankl propone la “voluntad de sentido” como la fuerza motivacional primaria del ser humano.&lt;/p>
&lt;p>Tres caminos hacia el sentido:&lt;/p>
&lt;ul>
&lt;li>Logro: hacer una obra o crear algo.&lt;/li>
&lt;li>Experiencia: vivir algo o encontrar a alguien (amor).&lt;/li>
&lt;li>Actitud: la postura que tomamos ante el sufrimiento inevitable.&lt;/li>
&lt;/ul>
&lt;p>Incluso en situaciones extremas, uno puede elegir su actitud. Y esa elección puede ser una fuente poderosa de sentido.&lt;/p>
&lt;p>Frankl también habla del vacío existencial: la falta de sentido en la sociedad moderna, que lleva a problemas psicológicos. La logoterapia busca guiar a cada persona a encontrar su propio sentido.&lt;/p>
&lt;h2 id="puntos-clave">Puntos clave&lt;/h2>
&lt;h3 id="sentido-de-la-vida">Sentido de la vida&lt;/h3>
&lt;p>Frankl sostiene que no hay un sentido universal de la vida. El sentido es único para cada persona y puede cambiar con el tiempo.&lt;/p>
&lt;h3 id="sufrimiento-y-sentido">Sufrimiento y sentido&lt;/h3>
&lt;p>El sufrimiento no tiene por qué carecer de sentido. Puede ser un camino para encontrarlo o reafirmarlo.&lt;/p>
&lt;h3 id="responsabilidad">Responsabilidad&lt;/h3>
&lt;p>Cada uno tiene la responsabilidad de encontrar su propio sentido, lo que implica también la libertad de elegir su camino.&lt;/p>
&lt;p>El libro de Frankl no es solo unas memorias, sino un testimonio de la resiliencia humana y del poder del espíritu para trascender las peores circunstancias a través del descubrimiento del sentido.&lt;/p>
&lt;hr />
&lt;h2 id="citas">Citas&lt;/h2>
&lt;blockquote>
&lt;p>“En última instancia, el hombre no debería preguntar cuál es el sentido de su vida, sino reconocer que es él quien está siendo cuestionado.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Teníamos que dejar de preguntar por el sentido de la vida y pensar en nosotros mismos como quienes estaban siendo cuestionados por la vida, diaria y constantemente.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Todo puede arrebatársele a un hombre excepto una cosa: la última de las libertades humanas, elegir la actitud ante cualquier circunstancia, elegir el propio camino.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“La libertad no es la última palabra. Es solo parte de la historia y la mitad de la verdad. La libertad es el aspecto negativo del fenómeno completo; el aspecto positivo es la responsabilidad.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="notas-personales">Notas personales&lt;/h2>
&lt;p>Lo que más me gusta del libro es cómo presenta la vida como un cambio continuo de perspectivas, tanto desde dentro como en relación con el mundo. Es como ajustar el zoom de una cámara según el contexto, reconociendo que somos a la vez individuos y parte de algo más grande.&lt;/p>
&lt;p>Este enfoque ayuda a ganar perspectiva: ser consciente de tus limitaciones y de tu importancia en cada situación. Al final, la vida no tiene un sentido inherente. Es el sentido que elegimos darle lo que da forma a nuestra existencia.&lt;/p>
&lt;hr />
&lt;h2 id="resumen-animado-del-libro">Resumen animado del libro&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/-srD1Deh9Xg?t=64"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Commits de Git Verificados</title><subtitle>Aumentando la confianza y seguridad en tu código</subtitle><category term="git" scheme="https://chemaclass.com/tags/git/" label="Git"/><category term="security" scheme="https://chemaclass.com/tags/security/" label="Security"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><published>2024-11-17T00:00:00+00:00</published><updated>2024-11-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/verified-git-commits/"/><id>https://chemaclass.com/es/blog/verified-git-commits/</id><summary type="html">Firma tus commits de Git con GPG para demostrar que son tuyos. Sin firmas, cualquiera puede falsificar commits con tu email. Se configura en 5 minutos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-11-17/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>En desarrollo de software, la confianza y la seguridad son clave. Una forma fácil de mejorar ambas: usar commits verificados.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Ya trabajes en open-source o en una empresa privada, los commits verificados aseguran que tus contribuciones son legítimas. Veamos qué son, por qué importan y cómo empezar a usarlos.&lt;/p>
&lt;h2 id="que-son-los-commits-verificados">¿Qué son los commits verificados?&lt;/h2>
&lt;p>Un commit verificado es un commit de Git firmado digitalmente por su autor. La firma demuestra que el commit viene de quien dice haberlo hecho. Herramientas como &lt;a rel="external" href="https://gnupg.org/">GPG (GNU Privacy Guard)&lt;/a> permiten adjuntar esta firma.&lt;/p>
&lt;p>En plataformas como GitHub verás una insignia “Verified” junto a los commits firmados. Es una forma rápida de mostrar que el commit es auténtico.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-11-17/verified-commit-example.jpg" alt="blog-cover" />&lt;/p>
&lt;h2 id="por-que-son-importantes">¿Por qué son importantes?&lt;/h2>
&lt;p>Los commits firmados mantienen tus contribuciones auténticas y confiables. La firma criptográfica demuestra que los cambios vinieron de ti. En entornos colaborativos, donde la confianza y la responsabilidad importan mucho, esto es clave.&lt;/p>
&lt;p>Sin firmar, cualquiera puede falsificar un commit usando tu email. GitHub lo vincularía a tu perfil, pareciendo que hiciste los cambios aunque no fuera así. Nada bueno.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-11-17/impersonating-commit.jpg" alt="blog-cover" />&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-11-17/impersonating-commit4.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Al firmar tus commits, demuestras que el trabajo es tuyo. Evitas la suplantación, generas confianza y mantienes todo transparente.&lt;/p>
&lt;blockquote>
&lt;p>&lt;small>Nota: Para esta demo, usé un email público de Linus Torvalds. Al hacer push, GitHub reconoció el email y lo vinculó a su perfil. Suplantación solo con fines de demo para mostrar los riesgos. Usa siempre tu propio email para commits.&lt;/small>&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="como-empezar-con-commits-verificados">Cómo empezar con commits verificados&lt;/h2>
&lt;h3 id="configura-una-clave-gpg">Configura una clave GPG&lt;/h3>
&lt;p>Primero necesitas una clave GPG. Así se hace:&lt;/p>
&lt;p>Genera una clave GPG:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">gpg&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-full-generate-key&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Encuentra tu ID de clave:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">gpg&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-list-secret-keys&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-keyid-format=long&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Dile a Git que use tu clave:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> config&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-global&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> user.signingkey&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">tu-id-de-clav&lt;/span>&lt;span>e&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Haz que firmar commits sea el valor por defecto:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> config&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-global&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> commit.gpgsign&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> true&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="anade-tu-clave-a-github-gitlab">Añade tu clave a &lt;a rel="external" href="https://github.com/settings/keys">GitHub&lt;/a>/&lt;a rel="external" href="https://docs.gitlab.com/user/project/repository/signed_commits/gpg/">GitLab&lt;/a>&lt;/h3>
&lt;p>Exporta tu clave pública:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">gpg&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-armor&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-export&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">tu-id-de-clav&lt;/span>&lt;span>e&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Navega a “Settings &amp;gt; SSH and GPG keys,” y pega tu clave.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-11-17/gpg-keys.jpg" alt="blog-cover" />&lt;/p>
&lt;h3 id="empieza-a-firmar-commits">Empieza a firmar commits&lt;/h3>
&lt;p>A partir de ahora, Git firmará tus commits automáticamente.&lt;/p>
&lt;p>Si quieres firmar un commit a mano, usa la bandera &lt;code>-S&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> commit&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">S&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">m&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Tu mensaje de commit&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Puedes &lt;strong>verificar&lt;/strong> la firma del commit con:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> log&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-show-signature&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>También puedes hacer clic en la insignia “Verified” en GitHub.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-11-17/gpg-verify.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Los commits verificados parecen un paso pequeño, pero hacen tu código más confiable. Una capa extra de protección fácil de añadir. Pruébalo.&lt;/p>
&lt;hr />
&lt;h3 id="extra-configuracion-completa-en-espanol">Extra: Configuración completa en español&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/0DzQBu7U2f4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Aprende más: &lt;a href="/pgp">¿Qué es el cifrado PGP?&lt;/a> &lt;small>Un tutorial de 3 minutos para principiantes&lt;/small>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>bashunit</title><subtitle>Convirtiendo frustraciones en herramientas para mejor desarrollo</subtitle><category term="bash" scheme="https://chemaclass.com/tags/bash/" label="Bash"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><published>2024-10-30T00:00:00+00:00</published><updated>2024-10-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/bashunit/"/><id>https://chemaclass.com/es/blog/bashunit/</id><summary type="html">bashunit es un framework de testing ligero y fácil de usar para Bash, repleto de características útiles como testing paralelo y de snapshots, dobles de test, data providers y toneladas de assertions incorporadas. Respaldado por documentación clara y una comunidad activa, se ha convertido en un favorito para testing confiable en Bash. Lo que comenzó como una simple frustración de desarrollo ha crecido hasta convertirse en una herramienta open-source que hace que el testing en Bash sea mucho más fácil y divertido.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-10-30/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>bashunit es un framework de testing ligero y fácil de usar para Bash. Características como testing paralelo y de snapshots, dobles de test, data providers y toneladas de assertions incorporadas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Respaldado por documentación clara y una comunidad activa, se ha convertido en un favorito para testing confiable en Bash. Lo que comenzó como una simple frustración de desarrollo ha crecido hasta convertirse en una herramienta open-source que hace que el testing en Bash sea mucho más fácil y divertido.&lt;/p>
&lt;ol>
&lt;li>La historia detrás de bashunit&lt;/li>
&lt;li>¿Por qué crear otra librería de testing?&lt;/li>
&lt;li>¿Cómo está hoy en día?&lt;/li>
&lt;li>Características principales&lt;/li>
&lt;li>Lightning tech talk&lt;/li>
&lt;/ol>
&lt;h2 id="la-historia-detras-de-bashunit">La historia detrás de bashunit&lt;/h2>
&lt;p>El viaje para crear bashunit comenzó con una simple frustración: trabajaba con un equipo donde cada commit tenía que empezar con el nombre del ticket. Como me gusta trabajar en pequeños pasos con commits rápidos e iterativos, añadir la clave y número del ticket a cada commit se convirtió en un gran obstáculo, ralentizando mi flujo de desarrollo con fricción innecesaria.&lt;/p>
&lt;p>Después de unos días así, decidí automatizarlo. Git tiene un hook útil, &lt;code>prepare-commit-msg&lt;/code>, que te permite alterar los mensajes de commit antes de que se finalicen. Creé un (&lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/blob/main/git-hooks/prepare-commit-msg.sh">script&lt;/a>) en Bash que automáticamente obtiene la clave y número del ticket del nombre de la rama y lo inserta en el mensaje del commit, haciendo mi proceso más fluido y eficiente.&lt;/p>
&lt;p>Como alguien que valora la mejora continua, comencé a añadir más características a este script. Sin embargo, se hizo evidente que mantener y probar estos cambios manualmente llevaba demasiado tiempo y era propenso a errores. Para hacer el desarrollo más seguro y eficiente, creé una función &lt;code>assert&lt;/code>(&lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/blob/705489a3487a4607183090d5574827bf6fedabda/git-hooks/prepare-commit-msg_test.sh">enlace&lt;/a>), permitiendo tests automatizados que verificaban el comportamiento esperado basado en la salida del script.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/bashunit-original-assert.jpg" alt="bashunit-original-assert.jpg" />&lt;/p>
&lt;p>La función &lt;code>assert&lt;/code> me permitió definir múltiples assertions en un archivo separado, facilitando la validación de que cualquier refactorización del hook original mantuviera el comportamiento esperado. Si un cambio rompía inadvertidamente la funcionalidad existente, lo señalaría instantáneamente, haciéndome saber de inmediato que algo necesitaba arreglarse. Esta configuración proporcionaba retroalimentación inmediata y ayudaba a asegurar que cualquier actualización al script no interrumpiera su lógica prevista. Por ejemplo:&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/conventional-commits-original-tests.jpg" alt="conventional-commits-original-tests.jpg" />&lt;/p>
&lt;p>En el ejemplo anterior, notarás que ejecuto el “&lt;code>SCRIPT&lt;/code>” real como el segundo argumento en la función assert, comparando su salida con el valor esperado proporcionado como primer argumento. Aquí, tenemos dos casos de test, cada uno exportando &lt;code>TEST_BRANCH&lt;/code> para simular cómo el mensaje del commit variaría según el nombre de la rama. Esta configuración emula el comportamiento real, permitiéndonos probar cómo diferentes nombres de rama afectan el formato del mensaje del commit. Más ejemplos &lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/blob/27aeebe4e76afe0a2e91cba85537399eab112eb4/test/prepare-commit-msg_test.sh">aquí&lt;/a>.&lt;/p>
&lt;p>Decidí separar la función &lt;code>assert&lt;/code> de los casos de test, como se muestra &lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/commit/5458e5728296bb94b1e8e6b25eeccde6cc700589">aquí&lt;/a>, para mantener las cosas modulares y reutilizables. Luego, creé un &lt;code>runner&lt;/code> para ejecutar cada caso de test independientemente, reduciendo la interferencia entre tests y mejorando la confiabilidad. Puedes ver esa configuración &lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/commit/92a5880d7f26b3422de6b91b51c04f9ff7b961fd">aquí&lt;/a>. Esta estructura hizo el testing automatizado más fácil y la refactorización más segura.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/conventional-commits-call_test_functions.jpg" alt="conventional-commits-call_test_functions.jpg" />&lt;/p>
&lt;p>Esta fue una gran mejora porque facilitó separar los &lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/blob/4c7dae8d44d425ff06fbb48654388f90c2beb3c4/tests/prepare-commit-msg_test.sh">casos de test&lt;/a> de la lógica del runner de tests en sí. Esta estructura clara ha simplificado tanto la creación como la gestión de tests.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/conventional-commits-refactor-test-cases.jpg" alt="conventional-commits-refactor-test-cases.jpg" />&lt;/p>
&lt;p>Ahora los tests estaban organizados y tuve una &lt;a rel="external" href="https://github.com/Chemaclass/conventional-commits/commit/f459f43cecc271becb1e5eb6ca95d24c97e87830">idea&lt;/a>:&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/bashunit-idea.jpg" alt="nota de la idea de bashunit" />&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="markdown">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;">##&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);font-weight: bold;"> Idea de seguimiento&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Separar la lógica de testing en otro repositorio,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>para que pueda ser reutilizada en cualquier lugar.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Y así &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/commit/27269c21c8d0b03bcb3f2000767f4a27b8bf08a1">comenzó&lt;/a>. En ese momento, no sabía mucho sobre Bash o las mejores formas de usar un proyecto Bash como dependencia. Pero sabía que podía empezar usando un submódulo de Git, aunque no soy muy fan de ellos.&lt;/p>
&lt;p>El 4 de septiembre de 2023, lancé la versión &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/commit/fc9aac40eb8e5ad4483f08d79eb678a3650dcf78">0.1&lt;/a>, que presentaba un runner funcional y una única función de assertion: &lt;code>assertEquals&lt;/code>. Más tarde, se lanzó la versión &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/commit/b546c693198870dd75d1a102b94f4ddad6f4f3ea#diff-06572a96a58dc510037d5efa622f9bec8519bc1beab13c9f251e97e657a9d4edR12">0.2&lt;/a>, permitiendo que &lt;code>./bashunit&lt;/code> fuera un ejecutable independiente, ejecutable desde cualquier carpeta. Así es como se veía entonces:&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/bashunit-02-demo.jpg" alt="bashunit-02-demo.jpg" />&lt;/p>
&lt;p>Compartí el proyecto con algunos amigos que rápidamente se unieron para ayudar con la documentación, el sitio web, assertions adicionales, testing de snapshots y decisiones clave. Para enfatizar su espíritu open-source y propiedad comunitaria, lo moví a una organización que creamos específicamente para compartir proyectos OSS, convirtiéndolo en un proyecto verdaderamente colaborativo en lugar de uno individual.&lt;/p>
&lt;h2 id="por-que-crear-otra-libreria-de-testing">¿Por qué crear otra librería de testing?&lt;/h2>
&lt;p>Ahora sé que existen otras librerías de testing para Bash. Pero cuando empecé con bashunit, no las conocía, y francamente, todavía no soy un experto en Bash. Para cuando me enteré de estas alternativas, ya era demasiado tarde, bashunit había ganado suficiente impulso y entusiasmo para seguir adelante.&lt;/p>
&lt;p>Mientras que esas otras librerías pueden servir casos de uso específicos, usar Bash moderno, o ser desarrolladas por desarrolladores de Bash más experimentados, bashunit aspira a diferenciarse ofreciendo una gran experiencia de desarrollador, moldeada por años de trabajo con varios frameworks de testing.&lt;/p>
&lt;p>Me preguntaron sobre las diferencias el 7 de septiembre de 2023, y aquí está mi respuesta:
&lt;a rel="external" href="https://github.com/TypedDevs/bashunit/issues/8">Pregunta: Diferencia con pgrange/bash_unit&lt;/a>.&lt;/p>
&lt;h2 id="como-esta-hoy-en-dia">¿Cómo está hoy en día?&lt;/h2>
&lt;p>Hoy, puedes &lt;a rel="external" href="https://bashunit.typeddevs.com/installation">instalar&lt;/a> bashunit via curl, Homebrew, MacPorts, descargando el último &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/releases">release de GitHub&lt;/a>, o incluso &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/blob/main/build.sh">compilándolo tú mismo&lt;/a> desde el código fuente. Completamente open-source.&lt;/p>
&lt;p>El proyecto está escrito en Bash 3.2 (de 2007) ya que esa es la versión por defecto en macOS, incluso ahora, en 2024. Esta compatibilidad significa que bashunit funciona sin problemas en esa versión, y planeo mantener el soporte para ella.&lt;/p>
&lt;p>Para asegurar la calidad, probamos cada característica con tests unitarios, funcionales y de aceptación, haciendo que bashunit sea su propio “primer usuario” de cada nueva característica. También tenemos varios workflows de CI usando &lt;a rel="external" href="https://github.com/TypedDevs/bashunit/actions/workflows/tests.yml">GitHub actions&lt;/a> que ejecutan tests en diferentes plataformas para verificar compatibilidad y confirmar que todo funciona como se promete.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-10-30/bashunit-ci.jpg" alt="bashunit-ci.jpg" />&lt;/p>
&lt;p>En junio de 2024, bashunit fue &lt;a rel="external" href="https://bashunit.typeddevs.com/blog/2024-06-21-phpstan-integration">integrado en PHPStan&lt;/a> para sus tests end-to-end, permitiendo el uso de las assertions de bashunit independientemente de su runner. Esta flexibilidad resultó ser muy útil.&lt;/p>
&lt;p>El verano pasado, fui invitado a hablar sobre bashunit en la &lt;a href="/es/talks/#may">International PHP Conference&lt;/a> en Berlín, junto con &lt;a rel="external" href="https://emmanuelvalverde.dev/">Manu&lt;/a>, otro contribuidor. Este proyecto ha abierto puertas y ha llevado a mucha gratitud de usuarios que aprecian el trabajo que hemos puesto en él.&lt;/p>
&lt;h2 id="caracteristicas-principales">Características principales&lt;/h2>
&lt;p>bashunit incluye funciones clásicas del ciclo de vida como &lt;code>set_up&lt;/code>, &lt;code>tear_down&lt;/code>, &lt;code>set_up_before_script&lt;/code> y &lt;code>tear_down_after_script&lt;/code>.&lt;/p>
&lt;p>También soporta una amplia gama de &lt;a rel="external" href="https://bashunit.typeddevs.com/command-line">parámetros de línea de comandos&lt;/a>
y &lt;a rel="external" href="https://bashunit.typeddevs.com/configuration">valores de configuración&lt;/a>. Algunos de mis favoritos incluyen:&lt;/p>
&lt;ul>
&lt;li>&lt;code>--parallel&lt;/code>&lt;/li>
&lt;li>&lt;code>--filter&lt;/code>&lt;/li>
&lt;li>&lt;code>--stop-on-failure&lt;/code>&lt;/li>
&lt;li>&lt;code>--verbose&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>También proporcionamos &lt;a rel="external" href="https://bashunit.typeddevs.com/data-providers">data providers&lt;/a> para ejecutar los mismos casos de test con diferentes inputs.&lt;/p>
&lt;p>Para &lt;a rel="external" href="https://bashunit.typeddevs.com/test-doubles">dobles de test&lt;/a>, bashunit ofrece mocks y spies. Estos funcionan dentro del mismo proceso que el test, pero actualmente no funcionan entre procesos, un área para mejorar.&lt;/p>
&lt;p>Incluye potente &lt;a rel="external" href="https://bashunit.typeddevs.com/snapshots">testing de snapshots&lt;/a>, facilitando la verificación de salidas de comandos o scripts a lo largo del tiempo.&lt;/p>
&lt;p>bashunit ofrece un amplio conjunto de &lt;a rel="external" href="https://bashunit.typeddevs.com/assertions">assertions&lt;/a> nativas para casos de test, incluyendo:&lt;/p>
&lt;ul>
&lt;li>&lt;code>assert_same&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_equals&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_contains&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_matches&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_string_starts_with&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_array_contains&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_successful_code&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_general_error&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_file_exists&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_file_contains&lt;/code>&lt;/li>
&lt;li>&lt;code>assert_match_snapshot&lt;/code>&lt;/li>
&lt;/ul>
&lt;p>Incluso puedes crear tus propias &lt;a rel="external" href="https://bashunit.typeddevs.com/custom-asserts">assertions personalizadas&lt;/a> para extender las capacidades de bashunit.&lt;/p>
&lt;p>Con más de &lt;strong>25&lt;/strong> contribuidores y más de &lt;strong>325&lt;/strong> estrellas en GitHub en solo un año de desarrollo en tiempo libre, estoy genuinamente orgulloso de lo que este proyecto se ha convertido.&lt;/p>
&lt;h2 id="lightning-tech-talk">Lightning tech talk&lt;/h2>
&lt;p>Recientemente, presenté una lightning tech talk en un meetup de hackers, haciendo una demo de bashunit a una audiencia de más de 100 personas. ¡Fue una experiencia increíble compartir esta herramienta con una audiencia tan comprometida!&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/SX7iNHaSsF0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>Logo original de bashunit diseñado por &lt;a rel="external" href="https://antonio.gg/">Antonio&lt;/a>.&lt;/p></content></entry><entry xml:lang="es"><title>Habilidades Interpersonales</title><subtitle>Del código a la colaboración</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2024-09-02T00:00:00+00:00</published><updated>2024-09-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/people-skills/"/><id>https://chemaclass.com/es/blog/people-skills/</id><summary type="html">Así que eres desarrollador de software, y has dominado lenguajes de programación, algoritmos y todo lo técnico. ¡Genial! Pero aquí está el asunto: las habilidades técnicas por sí solas no te llevarán tan lejos como podrías pensar. Si no puedes trabajar bien con otros, no importa lo bueno que sea tu código — nadie querrá trabajar contigo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-09-02/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Así que eres desarrollador de software, y has dominado lenguajes de programación, algoritmos y todo lo técnico. ¡Genial! Pero aquí está el asunto: las habilidades técnicas por sí solas no te llevarán tan lejos como podrías pensar.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Si no puedes trabajar bien con otros, no importa lo bueno que sea tu código, nadie querrá trabajar contigo.&lt;/p>
&lt;h2 id="por-que-las-habilidades-interpersonales-importan-en-software">Por qué las habilidades interpersonales importan en software&lt;/h2>
&lt;p>En el desarrollo de software, la colaboración lo es todo. Los proyectos no son solo esfuerzos en solitario. Serás parte de un equipo, con otros desarrolladores, diseñadores, o incluso personas no técnicas como gerentes y clientes. Cómo comunicas, colaboras y manejas las opiniones que recibes puede determinar tu éxito.&lt;/p>
&lt;h3 id="el-companero-brillante-pero-dificil">El compañero brillante pero difícil&lt;/h3>
&lt;p>Piénsalo. ¿Alguna vez has tenido ese compañero de equipo que es brillante pero difícil o casi imposible de trabajar con él? Quizás no escucha, se lleva todo el crédito, o hace todo más complicado de lo necesario. A nadie le gusta trabajar con esa persona, ¿verdad? Es lo mismo para ti. Si no puedes llevarte bien con tu equipo, no importa lo bueno que sea tu código.&lt;/p>
&lt;h3 id="que-significa-ser-un-buen-companero-de-equipo">Qué significa ser un buen compañero de equipo&lt;/h3>
&lt;p>Ser un buen compañero de equipo significa escuchar a los demás, estar abierto a la crítica constructiva, compartir ideas, y lo más importante, ser respetuoso y considerado. Quieres que la gente disfrute trabajando contigo, no que lo eviten.&lt;/p>
&lt;p>Las buenas habilidades interpersonales te ayudan a construir relaciones de trabajo sólidas, resolver problemas más rápido y crear un mejor ambiente de trabajo para todos. No solo aspires a ser un experto en programación, asegúrate de que también seas genial para trabajar.&lt;/p>
&lt;h3 id="el-impacto-a-largo-plazo">El impacto a largo plazo&lt;/h3>
&lt;p>A largo plazo, tus habilidades interpersonales pueden impulsar tu éxito tanto, si no más, que tus habilidades técnicas. Juegan un papel vital en el éxito de un equipo y hacen que la experiencia de trabajo sea agradable para todos los involucrados.&lt;/p>
&lt;blockquote>
&lt;p>Las habilidades interpersonales son tan necesarias como las habilidades técnicas. Nadie querrá trabajar contigo si no eres un buen compañero de equipo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2024-09-02/middle.jpg" alt="personas trabajando juntas" />&lt;/p>
&lt;h2 id="que-son-las-habilidades-interpersonales">¿Qué son las habilidades interpersonales?&lt;/h2>
&lt;p>Las competencias que te permiten interactuar efectiva y fluidamente con otros.&lt;/p>
&lt;h3 id="habilidades-de-comunicacion-fundamentales">Habilidades de comunicación fundamentales&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Comunicación&lt;/strong>: La capacidad de transmitir ideas claramente, escuchar activamente y participar en conversaciones significativas. Esto incluye tanto la comunicación verbal como la no verbal.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Empatía&lt;/strong>: Entender y ser sensible a los sentimientos, pensamientos y experiencias de otros. Implica ver las cosas desde la perspectiva de otra persona.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Inteligencia emocional&lt;/strong>: Reconocer y gestionar tus propias emociones y entender e influir en las emociones de otros.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="habilidades-de-colaboracion">Habilidades de colaboración&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Trabajo en equipo&lt;/strong>: Trabajar bien con otros para lograr objetivos comunes. Esto incluye colaboración, compartir responsabilidades y apoyar a los colegas.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Resolución de conflictos&lt;/strong>: La capacidad de manejar desacuerdos y disputas de manera constructiva, encontrando soluciones que satisfagan a todas las partes involucradas.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Negociación&lt;/strong>: Encontrar soluciones o compromisos mutuamente aceptables durante discusiones o desacuerdos.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="crecimiento-e-influencia">Crecimiento e influencia&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Adaptabilidad&lt;/strong>: Ser flexible y abierto al cambio, ajustando tu enfoque según sea necesario para enfrentar diferentes situaciones o personalidades.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Liderazgo&lt;/strong>: Inspirar y guiar a otros, proporcionar dirección y fomentar un ambiente positivo.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Networking&lt;/strong>: Construir y mantener relaciones profesionales que puedan proporcionar apoyo, oportunidades y recursos.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Estas habilidades son esenciales en casi cualquier trabajo y ayudan a construir relaciones sólidas, mejorar el trabajo en equipo y crear un ambiente de trabajo positivo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="por-que-son-mas-dificiles-de-lo-que-piensas">Por qué son más difíciles de lo que piensas&lt;/h3>
&lt;p>A menudo se les llama habilidades interpersonales o blandas, pero dominarlas puede ser sorprendentemente desafiante, quizás incluso más que muchas habilidades técnicas. A diferencia de las “habilidades duras”, que son tangibles y a menudo se pueden aprender a través de unas pocas horas o días de estudio, las habilidades interpersonales implican navegar la intrincada red de emociones, experiencias y expectativas humanas.&lt;/p>
&lt;p>Mientras que las habilidades técnicas pueden requerir que te sumerjas en documentación, ejecutes experimentos y refines tu enfoque, entender y relacionarte con las personas es mucho más complejo.&lt;/p>
&lt;p>Los humanos traen sus sentimientos, antecedentes y rutinas a las interacciones, añadiendo capas de complejidad más allá de la lógica directa de las máquinas. Estos detalles personales moldean la realidad que percibimos, haciendo que las habilidades interpersonales sean una parte esencial pero compleja de la comunicación y colaboración efectiva.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-09-02/footer.jpg" alt="las habilidades interpersonales importan" />&lt;/p></content></entry><entry xml:lang="es"><title>Bitcoin: A Work in Progress</title><subtitle>Innovaciones técnicas desde las trincheras</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2024-08-02T00:00:00+00:00</published><updated>2024-08-02T00:00:00+00:00</updated><author><name>
Sjors Provoost</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/bitcoin-wip/"/><id>https://chemaclass.com/es/readings/bitcoin-wip/</id><summary type="html">Con miles de proyectos cripto por ahí, dicen que Bitcoin es viejo y aburrido. Nada más lejos de la realidad. Este libro te guía por los últimos desarrollos de Bitcoin desde la perspectiva de uno de sus desarrolladores.</summary><content type="html">&lt;p>Con miles de proyectos cripto por ahí, dicen que Bitcoin es viejo y aburrido. Nada más lejos de la realidad. Este libro te guía por los últimos desarrollos de Bitcoin desde la perspectiva de uno de sus desarrolladores.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Aprenderás sobre Taproot (el último soft fork), los retos de mantener software open source libre de bugs y malware, nuevas formas de proteger nodos contra atacantes, cómo gestionar una blockchain que no para de crecer, y mucho más.&lt;/p>
&lt;p>El libro enlaza a más de doscientos artículos, videos, podcasts e incluso código fuente. Y gracias a los códigos QR junto a cada enlace, nunca tendrás que escribir URLs largas.&lt;/p>
&lt;hr />
&lt;h2 id="contenidos">Contenidos&lt;/h2>
&lt;h3 id="lo-basico">Lo básico&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>1. Direcciones Bitcoin&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>2. DNS Bootstrap y Tor V3&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>3. SegWit&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>4. libsecp256k1&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="uso-de-recursos">Uso de recursos&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>5. Tiempo de Sincronización y AssumeUTXO&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>6. Utreexo&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="atacando-bitcoin">Atacando Bitcoin&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>7. Ataques Eclipse&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>8. Nodos Falsos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>9. Guix&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="mejores-wallets">Mejores Wallets&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>10. Script, P2SH, y Miniscript&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="taproot">Taproot&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>11. Taproot y Schnorr&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>12. Opciones de Activación&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="apendice">Apéndice&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>A. Más Episodios&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>B. Un crimen en Testnet&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>C. White Paper de Bitcoin&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>&lt;img src="/images/readings/2024-08-02/sjors-and-chema.jpg" alt="cover" />&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/pQb24UWWSl8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>&lt;strong>Enlaces relacionados&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>Código fuente del libro: &lt;a rel="external" href="https://github.com/Sjors/nado-book/">GitHub/Sjors&lt;/a>&lt;/li>
&lt;li>Sitio web del libro: &lt;a rel="external" href="https://www.btcwip.com/">www.btcwip.com&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>¿Qué Es Waterfall?</title><subtitle>¿Qué hace que Waterfall sea inadecuado para el desarrollo de software moderno?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2024-08-01T00:00:00+00:00</published><updated>2024-08-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/what-is-waterfall/"/><id>https://chemaclass.com/es/blog/what-is-waterfall/</id><summary type="html">Waterfall es como seguir un camino recto donde te mueves de un paso al siguiente en un orden definido — como el agua fluyendo por una cascada a través de diferentes etapas. El problema es que cada paso puede llevar mucho tiempo y recursos para completarse. Además, no recibes retroalimentación hasta que toda la etapa está terminada, lo que puede llevar a mucho tiempo desperdiciado. Esto es especialmente complicado en el desarrollo de software, donde las cosas siempre están cambiando y evolucionando.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-08-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Waterfall es como seguir un camino recto donde te mueves de un paso al siguiente en un orden definido, como el agua fluyendo por una cascada a través de diferentes etapas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El problema es que cada paso puede llevar mucho tiempo y recursos para completarse. Además, no recibes retroalimentación hasta que toda la etapa está terminada, lo que puede llevar a mucho tiempo desperdiciado. Esto es especialmente complicado en el desarrollo de software, donde las cosas siempre están cambiando y evolucionando.&lt;/p>
&lt;p>Usualmente sigue una secuencia directa como esta:&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-08-01/waterfall.jpg" alt="Waterfall img from Comic Agile" />&lt;/p>
&lt;h2 id="la-realidad-de-waterfall">La realidad de Waterfall&lt;/h2>
&lt;p>Waterfall puede ser como el comunismo en teoría, parece perfecto en papel pero no funciona en el mundo real.&lt;/p>
&lt;ul>
&lt;li>Los clientes a menudo no saben exactamente lo que quieren.&lt;/li>
&lt;li>Los requisitos están constantemente cambiando.&lt;/li>
&lt;li>Los negocios necesitan adaptarse rápidamente a los cambios del mercado y las necesidades de los clientes.&lt;/li>
&lt;li>El software necesita ser flexible para mantenerse al día con estos cambios.&lt;/li>
&lt;/ul>
&lt;p>Entonces, en un mundo en constante cambio, Waterfall puede realmente perjudicar a un negocio. Tiende a frustrar a los desarrolladores y equipos, y también puede molestar a los clientes y a los negocios que pagan por el software. Esto usualmente lleva a retrasos y costos adicionales.&lt;/p>
&lt;h2 id="por-que-las-empresas-aun-usan-waterfall">Por qué las empresas aún usan Waterfall&lt;/h2>
&lt;p>Incluso con sus problemas, muchas empresas aún usan Waterfall porque parece directo y lógico. Esto les hace reacios a tomarse el tiempo de aprender Agile. Además, conseguir que la dirección acepte cambiar a Agile puede ser difícil de vender, especialmente ya que requiere una inversión en tiempo y aprendizaje.&lt;/p>
&lt;p>El gran problema es cuando los superiores dictan exactamente cómo deben trabajar los equipos, llevando a la microgestión. Esto arruina la flexibilidad que Agile aporta. Por lo que he visto, esto es un problema común.&lt;/p>
&lt;blockquote>
&lt;p>Mirando hacia atrás, cambiar a Agile podría haber solucionado muchos problemas.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2024-08-01/footer.jpg" alt="agile vs waterfall" />&lt;/p>
&lt;h2 id="por-que-se-creo-agile">Por qué se creó Agile&lt;/h2>
&lt;p>Agile fue creado para superar las limitaciones del método Waterfall. Se enfoca en la interacción constante con clientes y equipos.&lt;/p>
&lt;p>Agile construye equipos autónomos y responsables que manejan tareas de principio a fin, reduciendo tiempo y recursos desperdiciados. Enfatiza la flexibilidad, la colaboración y la retroalimentación del cliente.&lt;/p>
&lt;p>A diferencia de Waterfall, Agile usa desarrollo iterativo, dividiendo proyectos en pequeños sprints o iteraciones manejables que duran de 1 a 4 semanas. Cada ciclo incluye planificación, desarrollo, pruebas y revisión, con el objetivo de entregar valor rápidamente y recopilar retroalimentación para mejorar.&lt;/p>
&lt;h3 id="aspectos-clave-de-agile">Aspectos clave de Agile&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Desarrollo iterativo&lt;/strong>: Trabaja en pequeños fragmentos y ajusta sobre la marcha.&lt;/li>
&lt;li>&lt;strong>Colaboración con el cliente&lt;/strong>: Mantén la comunicación con los clientes para asegurar que están satisfechos.&lt;/li>
&lt;li>&lt;strong>Equipos multifuncionales&lt;/strong>: Equipos con diferentes habilidades trabajando juntos.&lt;/li>
&lt;li>&lt;strong>Planificación adaptativa&lt;/strong>: Mantente flexible y ajusta los planes basándote en la retroalimentación.&lt;/li>
&lt;li>&lt;strong>Mejora continua&lt;/strong>: Siempre busca formas de mejorar.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Lee el &lt;a rel="external" href="https://agilemanifesto.org/">Manifiesto Agile&lt;/a> original.&lt;/p>
&lt;/blockquote>
&lt;h3 id="por-donde-puedes-empezar">¿Por dónde puedes empezar?&lt;/h3>
&lt;p>Como desarrollador, puedes impulsar tu agilidad sumergiéndote en &lt;a href="/es/blog/effective-pair-programming/">pair programming&lt;/a> y &lt;a href="/es/blog/test-driven-development/">TDD&lt;/a>.&lt;/p>
&lt;ul>
&lt;li>Con pair programming, dos desarrolladores trabajan lado a lado, lo que significa que obtienes retroalimentación instantánea y resolución de problemas compartida, llevando a mejor código.&lt;/li>
&lt;li>TDD, por otro lado, implica escribir tests antes del código, lo que ayuda a especificar lo que quieres hacer, enfocándote en pequeños pasos.&lt;/li>
&lt;/ul>
&lt;p>Juntas, estas prácticas hacen tu proceso de desarrollo más flexible, colaborativo y de alta calidad, encajando perfectamente con el enfoque de Agile en ajustes rápidos y mejora continua. Ve más prácticas &lt;a href="/es/readings/extreme-programming-explained/#practices">aquí&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>La clave es colaboración, pequeños pasos y retroalimentación rápida en todo lo que trabajas.&lt;/p>
&lt;/blockquote>
&lt;h2 id="mi-experiencia-con-agile">Mi experiencia con Agile&lt;/h2>
&lt;p>He &lt;a href="/es/talks/">hablado&lt;/a> sobre Agile en varios eventos tecnológicos y lo he explorado en profundidad porque me apasiona cómo puede potenciar a los equipos de software. Cuando se hace bien, Agile puede cambiar completamente cómo trabajan los equipos, haciéndolos más rápidos, más eficientes y mejores en entregar lo que los clientes y negocios realmente necesitan.&lt;/p>
&lt;ul>
&lt;li>2022-06-26 | &lt;a rel="external" href="https://phpconference.com/mixed/update-your-team-to-be-more-extreme/">International PHP Conference&lt;/a> [Berlín, Alemania] (EN)&lt;/li>
&lt;li>2022-09-16 | &lt;a rel="external" href="https://codetalks.de/speakers#speaker-985?event=7">Code Talks&lt;/a> [Hamburgo, Alemania] (EN)&lt;/li>
&lt;li>2022-10-26 | &lt;a rel="external" href="https://phpconference.com/mixed/update-your-team-to-be-more-extreme/">International PHP Conference&lt;/a> [Múnich, Alemania] (EN)&lt;/li>
&lt;li>2022-12-21 | IES Ginés Pérez Chirinos [Murcia, España] (ES)&lt;/li>
&lt;li>2023-01-19 | &lt;a rel="external" href="https://devm.io/update-your-team-to-be-more-extreme/">devm.io&lt;/a> [Remoto] (EN)&lt;/li>
&lt;li>2023-07-28 | &lt;a rel="external" href="https://www.wearedevelopers.com/world-congress">WeAreDeveloper World Congress&lt;/a> [Berlín, Alemania] (EN)&lt;/li>
&lt;/ul>
&lt;h3 id="wearedevelopers-world-congress-en-berlin">WeAreDevelopers World Congress en Berlín&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/dqtAyl-SvaY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Pretty Good Privacy</title><subtitle>Cómo PGP protege tu comunicación digital</subtitle><category term="security" scheme="https://chemaclass.com/tags/security/" label="Security"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><published>2024-07-13T00:00:00+00:00</published><updated>2024-07-13T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/pretty-good-privacy/"/><id>https://chemaclass.com/es/blog/pretty-good-privacy/</id><summary type="html">PGP te permite cifrar mensajes para que solo el destinatario pueda leerlos, y firmarlos para demostrar que son tuyos. Creado en 1991 por Phil Zimmermann.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-07-13/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>PGP (&lt;em>Pretty Good Privacy&lt;/em>) es un programa de cifrado para proteger tu privacidad y autenticar comunicaciones. Sirve para firmar, cifrar y descifrar textos, correos, archivos, directorios y particiones de disco.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="historia">Historia&lt;/h2>
&lt;p>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Phil_Zimmermann">Phil Zimmermann&lt;/a> creó PGP porque le preocupaba la falta de privacidad en las comunicaciones digitales. Quería dar a la gente herramientas de cifrado potentes. En 1991 lanzó PGP gratis, abriendo una nueva era en la seguridad digital.&lt;/p>
&lt;h3 id="desafios-legales">Desafíos legales&lt;/h3>
&lt;p>A principios de los 90, el cifrado fuerte estaba clasificado como arma según la ley de exportación de EE.UU. Cuando PGP se extendió por internet, Zimmermann fue investigado por “exportar municiones”.&lt;/p>
&lt;p>Su defensa fue ingeniosa: publicó el código fuente de PGP en un libro. Los libros son libertad de expresión protegida. El caso se archivó en 1996 y las restricciones de exportación se relajaron en 2000.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/1-MPcUHhXoc"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="caracteristicas-principales">Características principales&lt;/h2>
&lt;ul>
&lt;li>Cifra y descifra datos para comunicación segura&lt;/li>
&lt;li>Verifica la identidad de quien envía y recibe&lt;/li>
&lt;li>Genera pares de claves pública/privada para intercambio seguro&lt;/li>
&lt;li>Soporta varios algoritmos de cifrado y funciones hash&lt;/li>
&lt;/ul>
&lt;p>Hoy PGP sigue vivo como &lt;strong>OpenPGP&lt;/strong> (el estándar) y &lt;strong>GPG&lt;/strong> (GNU Privacy Guard, la implementación libre). Cuando verificas una descarga de software o firmas un commit de git, probablemente estás usando GPG.&lt;/p>
&lt;h2 id="como-funciona">Cómo funciona&lt;/h2>
&lt;p>PGP combina &lt;a rel="external" href="https://en.wikipedia.org/wiki/Public-key_cryptography">criptografía de clave pública&lt;/a> y &lt;a rel="external" href="https://en.wikipedia.org/wiki/Symmetric-key_algorithm">criptografía de clave simétrica&lt;/a>. Genera un par de claves: una pública que compartes y una privada que guardas en secreto. Los datos se cifran con la clave pública y solo la privada puede descifrarlos.&lt;/p>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Cifrado simétrico&lt;/strong>: PGP genera una clave de sesión única para cifrar el mensaje. Es rápido y eficiente, pero necesita que ambas partes compartan la clave de forma segura.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Cifrado asimétrico&lt;/strong>: Resuelve el problema del intercambio de claves. Cada usuario tiene su par de claves. La clave de sesión se cifra con la clave pública del destinatario, y solo su clave privada puede descifrarla.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Firmas digitales&lt;/strong>: El remitente firma el mensaje con su clave privada. El destinatario verifica la firma con la clave pública del remitente, confirmando quién lo envió y que el mensaje no se ha alterado.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Lq-yKJFHJpk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h2 id="mi-clave-publica">Mi clave pública&lt;/h2>
&lt;h3 id="huella-digital">Huella digital&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>56D5 D60B 0934 0999 199C 3750 E51B 5BF4 5F85 D160&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="importar-directamente">Importar directamente&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">curl&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> https://chemaclass.com/pgp.asc&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> |&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> gpg&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">-import&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="descargar-el-archivo-asc">Descargar el archivo .asc&lt;/h3>
&lt;p>&lt;a href="/pgp.asc" id="download-link">Descargar clave PGP pública&lt;/a>&lt;/p></content></entry><entry xml:lang="es"><title>Dinero Programable</title><subtitle>El poder del Script de Bitcoin</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="cryptography" scheme="https://chemaclass.com/tags/cryptography/" label="Cryptography"/><category term="security" scheme="https://chemaclass.com/tags/security/" label="Security"/><published>2024-07-06T00:00:00+00:00</published><updated>2024-07-06T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/programmable-money/"/><id>https://chemaclass.com/es/blog/programmable-money/</id><summary type="html">Bitcoin se conoce como dinero programable porque permite ejecutar transacciones con condiciones mediante su lenguaje de scripting.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-07-06/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>A Bitcoin se le llama “dinero programable” porque permite ejecutar transacciones con condiciones mediante su lenguaje de scripting.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="que-es-el-dinero-programable">Qué es el dinero programable&lt;/h2>
&lt;p>Dinero programable significa poder meter lógica y condiciones dentro de las transacciones financieras. Las transacciones se ejecutan solas siguiendo reglas predefinidas, sin intermediarios ni intervención manual. El dinero deja de ser algo estático y se convierte en una herramienta capaz de ejecutar acuerdos y automatizar operaciones.&lt;/p>
&lt;h2 id="el-lenguaje-script">El lenguaje Script&lt;/h2>
&lt;p>La programabilidad de Bitcoin viene de su lenguaje incorporado: &lt;a rel="external" href="https://en.bitcoin.it/wiki/Script">&lt;strong>Script&lt;/strong>&lt;/a>. Es un lenguaje basado en pila, parecido a Forth, creado específicamente para transacciones de Bitcoin.&lt;/p>
&lt;p>Soporta multi-firma, transferencias bloqueadas por tiempo y otras transferencias condicionales. Es intencionalmente limitado: no es Turing-completo y no tiene bucles.&lt;/p>
&lt;p>Este video muestra ejemplos de los scripts de bloqueo/desbloqueo más comunes.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6Fa04MnURhw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="caracteristicas-clave-del-script-de-bitcoin">Características clave del Script de Bitcoin&lt;/h2>
&lt;h3 id="ejecucion-basada-en-pila">Ejecución basada en pila&lt;/h3>
&lt;p>Script funciona con un modelo de pila: los comandos y datos se apilan y se procesan en orden Last-In-First-Out (&lt;a rel="external" href="https://en.wikipedia.org/wiki/Stack_(abstract_data_type)">LIFO&lt;/a>).&lt;/p>
&lt;h3 id="gasto-condicional">Gasto condicional&lt;/h3>
&lt;p>Una transacción que solo se puede gastar si se cumplen ciertos criterios o se proporcionan datos específicos. Sirve para:&lt;/p>
&lt;ul>
&lt;li>servicios de custodia&lt;/li>
&lt;li>intercambios atómicos&lt;/li>
&lt;li>otros arreglos financieros&lt;/li>
&lt;/ul>
&lt;h3 id="multifirma">Multifirma&lt;/h3>
&lt;p>Puedes configurar transacciones que requieran varias firmas de diferentes claves privadas. Útil para:&lt;/p>
&lt;ul>
&lt;li>cuentas conjuntas&lt;/li>
&lt;li>fondos corporativos&lt;/li>
&lt;li>mayor seguridad (nadie puede gastar los fondos por su cuenta)&lt;/li>
&lt;/ul>
&lt;h3 id="bloqueo-temporal">Bloqueo temporal&lt;/h3>
&lt;p>Las transacciones pueden tener condiciones de tiempo: no se pueden gastar hasta cierta fecha o altura de bloque. Útil para:&lt;/p>
&lt;ul>
&lt;li>pagos diferidos&lt;/li>
&lt;li>contratos inteligentes&lt;/li>
&lt;li>evitar gastos prematuros (ej: &lt;a rel="external" href="https://en.bitcoin.it/wiki/Lightning_Network">Lightning Network&lt;/a>)&lt;/li>
&lt;/ul>
&lt;h3 id="codigos-de-operacion">Códigos de operación&lt;/h3>
&lt;p>El Script de Bitcoin usa &lt;a rel="external" href="https://en.bitcoin.it/wiki/Script#Opcodes">OP_Codes&lt;/a> para realizar operaciones específicas. Algunos ejemplos:&lt;/p>
&lt;ul>
&lt;li>&lt;code>OP_DUP&lt;/code>: &lt;small>Duplica el elemento superior de la pila.&lt;/small>&lt;/li>
&lt;li>&lt;code>OP_HASH160&lt;/code>: &lt;small>Hashea el elemento superior de la pila dos veces (SHA-256 seguido de RIPEMD-160).&lt;/small>&lt;/li>
&lt;li>&lt;code>OP_EQUALVERIFY&lt;/code>: &lt;small>Verifica que los dos elementos superiores son iguales y los elimina.&lt;/small>&lt;/li>
&lt;li>&lt;code>OP_CHECKSIG&lt;/code>: &lt;small>Verifica una firma contra una clave pública.&lt;/small>&lt;/li>
&lt;li>&lt;a rel="external" href="https://en.bitcoin.it/wiki/OP_RETURN">&lt;code>OP_RETURN&lt;/code>&lt;/a>: &lt;small>Marca la salida de la transacción como inválida, a menudo usado para almacenar datos.&lt;/small>&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="tipos-comunes-de-direcciones-bitcoin">Tipos comunes de direcciones Bitcoin&lt;/h2>
&lt;p>Cada tipo de dirección corresponde a una forma distinta de hacer scripts. Veamos ejemplos para cada tipo principal.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>P2PK&lt;/strong>: Las primeras transacciones legacy usando claves públicas completas directamente.&lt;/li>
&lt;li>&lt;strong>P2PKH&lt;/strong>: Comienza con &lt;code>1&lt;/code>. Transacciones &lt;strong>Legacy&lt;/strong> usando hashes de claves públicas.&lt;/li>
&lt;li>&lt;strong>P2SH&lt;/strong>: Comienza con &lt;code>3&lt;/code>. &lt;strong>Legacy&lt;/strong>, encapsula scripts complejos como multisig.&lt;/li>
&lt;li>&lt;strong>P2MS&lt;/strong>: Típicamente es un tipo de dirección P2SH o P2WSH.&lt;/li>
&lt;li>&lt;strong>P2WPKH&lt;/strong>: Comienza con &lt;code>bc1&lt;/code>. &lt;strong>SegWit&lt;/strong> nativo, transacciones más eficientes.&lt;/li>
&lt;li>&lt;strong>P2WSH&lt;/strong>: Comienza con &lt;code>bc1&lt;/code>. &lt;strong>SegWit&lt;/strong> para scripts complejos.&lt;/li>
&lt;li>&lt;strong>P2TR&lt;/strong>: Comienza con &lt;code>bc1p&lt;/code>. Direcciones &lt;strong>Taproot&lt;/strong> SegWit, mejorando privacidad y eficiencia para transacciones complejas.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Usar SegWit nativo (P2WPKH y P2WSH) es preferible cuando es posible, ya que maximiza los beneficios de la actualización SegWit, pero P2SH-SegWit puede ser útil para compatibilidad con sistemas más antiguos.&lt;/p>
&lt;/blockquote>
&lt;h3 id="p2pk-pay-to-pubkey-direccion-legacy-antigua-arriba">P2PK (Pay-to-PubKey) - Dirección Legacy antigua &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con "1" (ej., 1A1zP1eP5QGefi2DMPTf...v7DivfNa)
&lt;/div>
&lt;p>Antes de P2PKH y P2SH, las direcciones de Bitcoin eran más limitadas:&lt;/p>
&lt;ul>
&lt;li>Empiezan con 1 pero sin hashear la clave pública.&lt;/li>
&lt;li>Poco usadas hoy por falta de privacidad y eficiencia.&lt;/li>
&lt;li>Formato &lt;strong>obsoleto&lt;/strong> en favor de P2PKH como mínimo.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="p2pkh-pay-to-pubkey-hash-direccion-legacy-arriba">P2PKH (Pay-to-PubKey-Hash) - Dirección Legacy &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con "1" (ej., 1A1zP1eP5QGefi2DMPTf...v7DivfNa)
&lt;/div>
&lt;p>Un script P2PKH típico consiste en dos partes principales:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>ScriptPubKey&lt;/strong>: El script de bloqueo (también conocido como script de salida) que especifica cómo pueden gastarse los fondos.&lt;/li>
&lt;li>&lt;strong>ScriptSig&lt;/strong>: El script de desbloqueo (también conocido como script de entrada) que proporciona los datos necesarios para desbloquear los fondos.&lt;/li>
&lt;/ol>
&lt;h3 id="scriptpubkey-script-de-bloqueo">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_DUP&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_HASH160&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubKHash&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_EQUALVERIFY&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_CHECKSIG&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_DUP&lt;/code>: Duplica el elemento superior de la pila (la clave pública).&lt;/li>
&lt;li>&lt;code>OP_HASH160&lt;/code>: Hashea la clave pública con SHA-256 seguido de RIPEMD-160.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubKHash&amp;gt;&lt;/code>: La clave pública hasheada (un valor de 20 bytes).&lt;/li>
&lt;li>&lt;code>OP_EQUALVERIFY&lt;/code>: Verifica si la clave pública hasheada coincide con el hash en el script.&lt;/li>
&lt;li>&lt;code>OP_CHECKSIG&lt;/code>: Verifica la firma proporcionada contra la clave pública.&lt;/li>
&lt;/ul>
&lt;h3 id="scriptsig-script-de-desbloqueo">ScriptSig (Script de Desbloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig&amp;gt;&lt;/code>: La firma digital generada por la clave privada.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubK&amp;gt;&lt;/code>: La clave pública correspondiente a la dirección.&lt;/li>
&lt;/ul>
&lt;h3 id="flujo-de-ejecucion">Flujo de Ejecución&lt;/h3>
&lt;ol>
&lt;li>El &lt;code>ScriptSig&lt;/code> (script de desbloqueo) se empuja a la pila.&lt;/li>
&lt;li>El &lt;code>ScriptPubKey&lt;/code> (script de bloqueo) se ejecuta.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="https://raw.githubusercontent.com/bitcoinbook/bitcoinbook/develop/images/mbc3_0703.png" alt="ejecucion del script p2pkh paso 1" />
&lt;img src="https://raw.githubusercontent.com/bitcoinbook/bitcoinbook/develop/images/mbc3_0704.png" alt="ejecucion del script p2pkh paso 2" />&lt;/p>
&lt;hr />
&lt;h3 id="p2sh-pay-to-script-hash-arriba">P2SH (Pay-to-Script-Hash) &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con "3" (ej., 3J2BtwzN2GEr6FCP.....81T2eiX8PVHh)
&lt;/div>
&lt;p>Los scripts P2SH se usan para scripts más complejos. La característica principal es que la dirección misma codifica un hash de un script, que se usará en la transacción.&lt;/p>
&lt;h3 id="scriptpubkey-script-de-bloqueo-1">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_HASH160&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">ScriptHash&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_EQUAL&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_HASH160&lt;/code>: Hashea el script con SHA-256 seguido de RIPEMD-160.&lt;/li>
&lt;li>&lt;code>&amp;lt;ScriptHash&amp;gt;&lt;/code>: El script hasheado (un valor de 20 bytes).&lt;/li>
&lt;li>&lt;code>OP_EQUAL&lt;/code>: Verifica si el hash coincide con el hash del script proporcionado.&lt;/li>
&lt;/ul>
&lt;h3 id="scriptsig-script-de-desbloqueo-1">ScriptSig (Script de Desbloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ...&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">ScriptSig&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig&amp;gt;&lt;/code>: La firma digital.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubK&amp;gt;&lt;/code>: La clave pública.&lt;/li>
&lt;li>&lt;code>&amp;lt;ScriptSig&amp;gt;&lt;/code>: El script real que coincide con el hash del script, que será ejecutado por la red Bitcoin.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="p2ms-pay-to-multisig-arriba">P2MS (Pay-to-Multisig) &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;h3 id="formato-del-script">Formato del Script&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_M&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">M&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ...&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubKN&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_N&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_CHECKMULTISIG&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_M&lt;/code>: El número mínimo de firmas requeridas.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubK1&amp;gt;, &amp;lt;PubK2&amp;gt;, ..., &amp;lt;PubKN&amp;gt;&lt;/code>: Las claves públicas involucradas en el esquema multifirma.&lt;/li>
&lt;li>&lt;code>OP_N&lt;/code>: El número total de claves públicas proporcionadas.&lt;/li>
&lt;li>&lt;code>OP_CHECKMULTISIG&lt;/code>: El opcode que verifica las firmas contra las claves públicas proporcionadas.&lt;/li>
&lt;/ul>
&lt;h3 id="scriptpubkey-script-de-bloqueo-2">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK3&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_3&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_CHECKMULTISIG&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Este script significa que se requieren 2 de 3 claves públicas proporcionadas para firmar la transacción para que sea válida.&lt;/p>
&lt;h3 id="scriptsig-script-de-desbloqueo-2">ScriptSig (Script de Desbloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ...&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sigN&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">SerializedScript&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig1&amp;gt;, &amp;lt;sig2&amp;gt;, ..., &amp;lt;sigN&amp;gt;&lt;/code>: Las claves públicas.&lt;/li>
&lt;li>&lt;code>&amp;lt;SerializedScript&amp;gt;&lt;/code>: El script serializado (lo mismo que el script de bloqueo pero sin el &lt;code>OP_M&lt;/code> y &lt;code>OP_N&lt;/code>).&lt;/li>
&lt;/ul>
&lt;div class="status warning-orange">
&lt;b>NOTA&lt;/b>: Hay una rareza en la ejecución de CHECKMULTISIG.
&lt;small>&lt;a href="#hay-una-rareza-en-la-ejecución-de-checkmultisig-arriba">Ver nota al final.&lt;/a>&lt;/small>
&lt;/div>
&lt;hr />
&lt;h3 id="p2wpkh-pay-to-witness-public-key-hash-segwit-arriba">P2WPKH (Pay-to-Witness-Public-Key-Hash) - Segwit &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con "bc1q" (ej., bc1qf0r2m0ck4psv6yrk9w.....kw8v5rj7ph3)
&lt;/div>
&lt;p>P2WPKH es una dirección Segregated Witness (SegWit) con un formato de scripting distinto. Simplifica las transacciones: menos datos y menos comisiones que los formatos legacy.&lt;/p>
&lt;h3 id="scriptpubkey-script-de-bloqueo-3">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_0&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_PUSHBYTES_20&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubKHash&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_0&lt;/code>: Un solo byte (0x00) indicando la versión del script.&lt;/li>
&lt;li>&lt;code>OP_PUSHBYTES_20&lt;/code>: Empuja 20 bytes (el hash de la clave pública) a la pila.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubKHash&amp;gt;&lt;/code>: El hash de 20 bytes de la clave pública.&lt;/li>
&lt;/ul>
&lt;h3 id="datos-del-testigo">Datos del Testigo&lt;/h3>
&lt;p>En P2WPKH no hace falta un script de desbloqueo tradicional. La información de desbloqueo va como parte de los datos del testigo en el formato SegWit.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig&amp;gt;&lt;/code>: Firma digital para la transacción.&lt;/li>
&lt;li>&lt;code>&amp;lt;PubK&amp;gt;&lt;/code>: Clave pública usada para generar el hash de la clave pública.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="p2wsh-pay-to-witness-script-hash-segwit-arriba">P2WSH (Pay-to-Witness-Script-Hash) - Segwit &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con bc1q (ej.: bc1q4a3h5sdg4cfkhftgd24tj9g2sg...yj57jmfckhkrw5gslr9g59)
&lt;/div>
&lt;h3 id="scriptpubkey-script-de-bloqueo-4">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_0&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_PUSHBYTES_32&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">ScriptHash&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_0&lt;/code>: Indica una versión de testigo 0 (SegWit).&lt;/li>
&lt;li>&lt;code>OP_PUSHBYTES_32&lt;/code>: Empuja los siguientes 32 bytes (el hash del script) a la pila.&lt;/li>
&lt;li>&lt;code>&amp;lt;ScriptHash&amp;gt;&lt;/code>: Hash de 32 bytes del script de redención.&lt;/li>
&lt;/ul>
&lt;h3 id="datos-del-testigo-1">Datos del Testigo&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ...&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">RedeemScript&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig1&amp;gt;, &amp;lt;sig2&amp;gt;&lt;/code>: Firmas requeridas para desbloquear la transacción.&lt;/li>
&lt;li>&lt;code>&amp;lt;RedeemScript&amp;gt;&lt;/code>: El script real que coincide con el hash del script. Este script será ejecutado como parte de los datos del testigo.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="p2tr-pay-to-taproot-taproot-arriba">P2TR (Pay-to-Taproot) - Taproot &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#tipos-comunes-de-direcciones-bitcoin">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;div class="status info">
Comienza con bc1p (ej.: bc1pl9dfv7kvj4hj9s3a8l.....gjstmrpjl09g8ks3ukds70q4r2j5h)
&lt;/div>
&lt;p>Taproot combina firmas &lt;a rel="external" href="https://en.bitcoin.it/wiki/Schnorr">Schnorr&lt;/a> con &lt;a rel="external" href="https://en.bitcoin.it/wiki/BIP_0114#Merkelized_Abstract_Syntax_Tree">MAST&lt;/a>. Permite condiciones de gasto privadas y eficientes. Las transacciones complejas &lt;strong>&lt;em>parecen estandar&lt;/em>&lt;/strong> a menos que se revelen las condiciones.&lt;/p>
&lt;h3 id="scriptpubkey-script-de-bloqueo-5">ScriptPubKey (Script de Bloqueo)&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">x&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">-&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">only&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> PubK&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>OP_1&lt;/code>: Indica una versión de testigo 1 (Taproot).&lt;/li>
&lt;li>&lt;code>&amp;lt;x-only PubK&amp;gt;&lt;/code>: Una clave pública Schnorr de 32 bytes (sin la coordenada y).&lt;/li>
&lt;/ul>
&lt;h3 id="datos-del-testigo-2">Datos del Testigo&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;ul>
&lt;li>&lt;code>&amp;lt;sig&amp;gt;&lt;/code>: Una firma Schnorr probando posesión de la clave privada correspondiente a la pubkey x-only.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/yU3Sr07Qnxg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h3 id="hay-una-rareza-en-la-ejecucion-de-checkmultisig-arriba">*Hay una rareza en la ejecución de CHECKMULTISIG &lt;small>&lt;a href="https://chemaclass.com/es/blog/programmable-money/#scriptsig-script-de-desbloqueo-2">arriba&lt;/a>&lt;/small>&lt;/h3>
&lt;p>&lt;code>OP_CHECKMULTISIG&lt;/code> saca un elemento de más de la pila. Ese elemento extra se ignora al verificar firmas, así que no afecta directamente. Pero tiene que estar porque si intenta sacar de una pila vacía, el script falla.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">OP_0&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">sig3&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK2&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">PubK3&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 3&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> OP_CHECKMULTISIG&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>El script de entrada en este multisig no es &lt;code>&amp;lt;sig2&amp;gt; &amp;lt;sig3&amp;gt;&lt;/code> sino &lt;code>OP_0 &amp;lt;sig2&amp;gt; &amp;lt;sig3&amp;gt;&lt;/code>.&lt;/p>
&lt;p>Al principio se usaba &lt;code>OP_0&lt;/code> por convención. Luego se convirtió en regla de relay y finalmente en regla de consenso (&lt;a rel="external" href="https://github.com/bitcoin/bips/blob/master/bip-0147.mediawiki">BIP147&lt;/a>).&lt;/p>
&lt;p>Puede que el desarrollador original lo pusiera pensando en añadir una función de mapa en un soft fork futuro (por rendimiento). Esa función nunca se implementó, y BIP147 en 2017 lo hace imposible ya.&lt;/p>
&lt;p>Solo el creador de Bitcoin podría decir si fue un bug o un plan. Si ves un script multisig, espera encontrar un &lt;code>OP_0&lt;/code> extra al principio. Es un parche para esta rareza del consenso.&lt;/p>
&lt;hr />
&lt;h2 id="para-seguir-aprendiendo">Para seguir aprendiendo&lt;/h2>
&lt;ul>
&lt;li>Documentación oficial de &lt;a rel="external" href="https://en.bitcoin.it/wiki/Script">Script&lt;/a> en el Bitcoin Wiki.&lt;/li>
&lt;li>&lt;a rel="external" href="https://siminchen.github.io/bitcoinIDE/build/editor.html">Bitcoin IDE&lt;/a>: emulador visual de Script online, genial para aprender.&lt;/li>
&lt;li>&lt;a rel="external" href="https://coins.github.io/bitcoin-scripts/script-editor/">Script Editor&lt;/a>: investigación sobre escalabilidad y usabilidad de Bitcoin.&lt;/li>
&lt;li>&lt;a rel="external" href="https://bitcoin.sipa.be/miniscript/">Miniscript&lt;/a>: lenguaje para escribir Scripts de Bitcoin de forma estructurada, con análisis, composición y firma genérica.&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Dominando Bitcoin</title><subtitle>Programando la Blockchain Abierta</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><published>2024-07-05T00:00:00+00:00</published><updated>2024-07-05T00:00:00+00:00</updated><author><name>
Andreas M. Antonopoulos</name></author><author><name>
David A. Harding</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/mastering-bitcoin/"/><id>https://chemaclass.com/es/readings/mastering-bitcoin/</id><summary type="html">Este libro cubre desde los conceptos básicos hasta los aspectos técnicos más profundos de Bitcoin. Una guía excelente para entender este mundo y participar en el Internet del Dinero.</summary><content type="html">&lt;p>Este libro cubre desde los conceptos básicos hasta los aspectos técnicos más profundos de Bitcoin. Una guía excelente para entender este mundo y participar en el Internet del dinero.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>La primera edición se publicó en diciembre de 2014. Diez años después, ya tenemos una tercera edición actualizada. Muy recomendable para cualquier persona interesada en este tema y la tecnología que hay detrás.&lt;/p>
&lt;ul>
&lt;li>Introducción amplia a Bitcoin y su blockchain, ideal para usuarios no técnicos, inversores y ejecutivos.&lt;/li>
&lt;li>Explicación técnica para desarrolladores, ingenieros y arquitectos de software.&lt;/li>
&lt;li>Detalles sobre la red descentralizada, arquitectura P2P, ciclo de vida de transacciones y seguridad.&lt;/li>
&lt;li>Novedades como Taproot, Tapscript, firmas Schnorr y Lightning Network.&lt;/li>
&lt;li>Inmersión profunda en aplicaciones de Bitcoin: cómo combinar sus bloques de construcción en herramientas nuevas.&lt;/li>
&lt;li>Historias, analogías, ejemplos y fragmentos de código que explican los conceptos clave.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="contenidos">Contenidos&lt;/h2>
&lt;ol>
&lt;li>Introducción&lt;/li>
&lt;li>Cómo Funciona Bitcoin&lt;/li>
&lt;li>Bitcoin Core: La Implementación de Referencia&lt;/li>
&lt;li>Claves y Direcciones&lt;/li>
&lt;li>Recuperación de Wallet&lt;/li>
&lt;li>Transacciones&lt;/li>
&lt;li>Autorización y Autenticación&lt;/li>
&lt;li>Firmas Digitales&lt;/li>
&lt;li>Comisiones de Transacción&lt;/li>
&lt;li>La Red Bitcoin&lt;/li>
&lt;li>La Blockchain&lt;/li>
&lt;li>Minería y Consenso&lt;/li>
&lt;li>Seguridad de Bitcoin&lt;/li>
&lt;li>Aplicaciones de Segunda Capa&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="/images/readings/2024-07-05/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;blockquote>
&lt;p>Libro completo también en &lt;a rel="external" href="https://github.com/bitcoinbook/bitcoinbook">GitHub&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h3 id="puntos-clave">Puntos clave&lt;/h3>
&lt;ol>
&lt;li>Tu wallet no almacena bitcoins, solo las claves para acceder a ellos. Las monedas están en la blockchain.&lt;/li>
&lt;li>Entender los &lt;strong>UTXOs&lt;/strong> es clave para entender las transacciones.
&lt;ul>
&lt;li>Son outputs de transacciones anteriores que aún no se han gastado.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Una transacción necesita:
&lt;ul>
&lt;li>&lt;strong>inputs&lt;/strong>: UTXOs y un script de desbloqueo (scriptSig) que prueba la propiedad.&lt;/li>
&lt;li>&lt;strong>outputs&lt;/strong>: dirección del destinatario y cantidad a enviar.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El script de desbloqueo usa un lenguaje llamado &lt;a rel="external" href="https://en.bitcoin.it/wiki/Script">&lt;strong>Script&lt;/strong>&lt;/a>.
&lt;ul>
&lt;li>La validación se hace ejecutando el script.&lt;/li>
&lt;li>Permite expresar una variedad casi infinita de condiciones.&lt;/li>
&lt;li>Script es un lenguaje basado en pila, procesado de izquierda a derecha.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Bitcoin se conoce como “&lt;strong>dinero programable&lt;/strong>” porque permite multifirma, bloqueo temporal y gasto condicional.
&lt;ul>
&lt;li>Va más allá de simples transferencias de valor.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="/es/blog/programmable-money#common-bitcoin-address-types">&lt;strong>Tipos de direcciones&lt;/strong>&lt;/a> comunes:
&lt;ul>
&lt;li>P2PKH: Empieza con &lt;code>1&lt;/code>. Transacciones estándar con hashes de clave pública.&lt;/li>
&lt;li>P2SH: Empieza con &lt;code>3&lt;/code>. Encapsula scripts complejos como multisig.&lt;/li>
&lt;li>P2WPKH: Empieza con &lt;code>bc1&lt;/code>. SegWit nativo, más eficiente.&lt;/li>
&lt;li>P2WSH: Empieza con &lt;code>bc1&lt;/code>. SegWit para scripts complejos.&lt;/li>
&lt;li>P2TR: Empieza con &lt;code>bc1p&lt;/code>. Taproot, mejor privacidad y eficiencia.&lt;/li>
&lt;li>Bech32: Empieza con &lt;code>bc1&lt;/code>. Legible por humanos, para SegWit y Taproot.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Las firmas digitales cumplen tres funciones en Bitcoin:
&lt;ul>
&lt;li>Prueban que quien controla la clave privada ha &lt;strong>autorizado&lt;/strong> el gasto.&lt;/li>
&lt;li>La prueba de autorización es &lt;strong>innegable&lt;/strong>.&lt;/li>
&lt;li>La transacción autorizada &lt;strong>no puede cambiarse&lt;/strong> por terceros no autenticados.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Las &lt;a rel="external" href="https://en.wikipedia.org/wiki/Schnorr_signature">firmas de Schnorr&lt;/a> no son exclusivas de la &lt;a rel="external" href="https://en.wikipedia.org/wiki/Elliptic-curve_cryptography">criptografía de curva elíptica&lt;/a> (ECC) de Bitcoin, aunque hoy se asocian mucho con ella. Tienen propiedades interesantes:
&lt;ul>
&lt;li>&lt;strong>Seguridad demostrable&lt;/strong>: garantías fuertes basadas en el problema del logaritmo discreto, con pruebas formales de robustez.&lt;/li>
&lt;li>&lt;strong>Linealidad&lt;/strong>: permite agregar múltiples firmas en una sola firma compacta, simplificando la verificación.&lt;/li>
&lt;li>&lt;strong>Verificación por lotes&lt;/strong>: verificar múltiples firmas a la vez de forma más eficiente.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El algoritmo más conocido para compartir secretos de forma segura es &lt;a rel="external" href="https://en.wikipedia.org/wiki/Shamir&amp;#x27;s_secret_sharing">Shamir’s Secret Sharing&lt;/a>.&lt;/li>
&lt;li>Ejecutar un &lt;strong>nodo completo&lt;/strong> te da la experiencia pura de Bitcoin: verificas todas las transacciones de forma independiente, sin confiar en nadie.&lt;/li>
&lt;li>Los &lt;strong>árboles Merkle&lt;/strong> resumen todas las transacciones de un bloque, creando un compromiso con el conjunto completo y permitiendo verificar de forma muy eficiente si una transacción está incluida.&lt;/li>
&lt;li>La minería es una de las invenciones que hacen especial a Bitcoin: un mecanismo de &lt;strong>consenso descentralizado&lt;/strong> que es la base del efectivo digital P2P.
&lt;ul>
&lt;li>Asegura el sistema y permite que emerja consenso a nivel de red sin autoridad central.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Un &lt;strong>soft-fork&lt;/strong> es un cambio compatible hacia adelante en las reglas de consenso. Los clientes no actualizados pueden seguir operando con las nuevas reglas.&lt;/li>
&lt;/ol></content></entry><entry xml:lang="es"><title>El Dilema del Prisionero</title><subtitle>El dilema de la confianza y el interés propio</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2024-06-27T00:00:00+00:00</published><updated>2024-06-27T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/prisoners-dilemma/"/><id>https://chemaclass.com/es/blog/prisoners-dilemma/</id><summary type="html">Un experimento mental sobre confianza, cooperación y traición. Muestra por qué a veces no colaboramos aunque nos convenga hacerlo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-06-27/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>El Dilema del Prisionero es un experimento mental que muestra por que a veces no colaboramos, aunque nos convenga hacerlo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Dicho de otra forma: a nadie le gusta que se aprovechen de uno. Es teoría de juegos básica.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/t9Lo2fgxWHw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>El dilema plantea una decisión difícil: cooperar o traicionar. Y revela mucho sobre cómo sopesamos el interés propio frente al beneficio colectivo.&lt;/p>
&lt;h2 id="premisa">Premisa&lt;/h2>
&lt;p>Fuente: &lt;a rel="external" href="https://en.wikipedia.org//wiki/Prisoner&amp;#x27;s_dilemma">Wikipedia&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Dos miembros de una banda criminal son arrestados y encarcelados.
Cada prisionero está en confinamiento solitario sin medios para hablar o intercambiar mensajes con el otro.
La policía admite que no tiene suficiente evidencia para condenar a la pareja por el cargo principal.&lt;/p>
&lt;p>Planean sentenciar a ambos a un año en prisión por un cargo menor.
Simultáneamente, la policía ofrece a cada prisionero un trato.
Si testifica contra su compañero,
quedará libre mientras el compañero recibirá tres años en prisión por el cargo principal.
Oh, sí, hay una trampa…&lt;/p>
&lt;p>Si ambos prisioneros testifican uno contra el otro, ambos serán sentenciados a dos años en la cárcel.
Se les da a los prisioneros un poco de tiempo para pensarlo,
pero en ningún caso ninguno puede saber lo que el otro ha decidido hasta que haya tomado irrevocablemente su decisión.&lt;/p>
&lt;p>Cada uno es informado de que al otro prisionero se le está ofreciendo exactamente el mismo trato.
Cada prisionero solo se preocupa por su propio bienestar—por minimizar su propia sentencia de prisión.&lt;/p>
&lt;/blockquote>
&lt;p>Esto lleva a cuatro posibles resultados diferentes para los prisioneros A y B:&lt;/p>
&lt;ul>
&lt;li>Si A y B ambos permanecen en silencio,
&lt;ul>
&lt;li>cada uno cumplirá &lt;strong>un año&lt;/strong> en prisión.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Si A testifica contra B pero B permanece en silencio,
&lt;ul>
&lt;li>&lt;strong>A&lt;/strong> quedará &lt;strong>libre&lt;/strong> mientras &lt;strong>B&lt;/strong> cumple &lt;strong>tres años&lt;/strong> en prisión.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Si A permanece en silencio pero B testifica contra A,
&lt;ul>
&lt;li>&lt;strong>A&lt;/strong> cumplirá &lt;strong>tres años&lt;/strong> en prisión y &lt;strong>B&lt;/strong> quedará &lt;strong>libre&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Si A y B testifican uno contra el otro,
&lt;ul>
&lt;li>&lt;strong>cada uno cumplirá dos años&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="el-dilema-del-prisionero-iterado">El Dilema del Prisionero Iterado&lt;/h3>
&lt;p>Es igual que el juego normal, pero lo juegas varias veces con el mismo oponente y sumas las puntuaciones. Puedes cambiar de estrategia entre rondas. Tiene aplicaciones reales porque se parece a cualquier relación continuada.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/BOvAbjfJ0x0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>Todo esto tiene que ver con la confianza, cómo nos comportamos y las normas sociales que influyen en nuestras relaciones.&lt;/p>
&lt;p>La mejor estrategia en el Dilema del Prisionero iterado es empezar cooperando y luego imitar lo que hizo el otro en la ronda anterior. Así recompensas la cooperación y castigas la traición.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/S0SQLQMLi8Q"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>No confíes, verifica.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>The Genesis Book</title><subtitle>La Historia de las Personas y Proyectos que Inspiraron Bitcoin</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="privacy" scheme="https://chemaclass.com/tags/privacy/" label="Privacy"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2024-06-21T00:00:00+00:00</published><updated>2024-06-21T00:00:00+00:00</updated><author><name>
Aaron van Wirdum</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-genesis-book/"/><id>https://chemaclass.com/es/readings/the-genesis-book/</id><summary type="html">Bitcoin no surgió de la nada. Durante décadas, científicos informáticos, activistas de la privacidad y economistas heterodoxos intentaron crear dinero digital que funcionara sin control gubernamental. Este libro cuenta la historia de las personas y proyectos que inspiraron el primer sistema de efectivo electrónico P2P exitoso del mundo.</summary><content type="html">&lt;p>Bitcoin no surgió de la nada. Durante décadas antes de Satoshi Nakamoto, científicos informáticos, activistas de la privacidad y economistas heterodoxos intentaron crear dinero digital que funcionara sin control gubernamental. Este libro cuenta la historia de las personas y proyectos que inspiraron el primer sistema de efectivo electrónico P2P exitoso del mundo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="contenidos">Contenidos&lt;/h2>
&lt;h3 id="parte-i-fundamentos">Parte I: Fundamentos&lt;/h3>
&lt;ol>
&lt;li>Orden Espontáneo&lt;/li>
&lt;li>Libre y de Código Abierto&lt;/li>
&lt;li>Dinero Neutral&lt;/li>
&lt;li>Criptografía&lt;/li>
&lt;li>Desnacionalización del Dinero&lt;/li>
&lt;li>eCash (y Marcas de Tiempo Sin Confianza)&lt;/li>
&lt;li>Los Extropianos&lt;/li>
&lt;/ol>
&lt;h3 id="parte-ii-cypherpunks">Parte II: Cypherpunks&lt;/h3>
&lt;ol start="8">
&lt;li>El Movimiento Cypherpunk&lt;/li>
&lt;li>Moneda Cypherpunk&lt;/li>
&lt;li>Hashcash&lt;/li>
&lt;li>Bit Gold&lt;/li>
&lt;li>B-money (y BitTorrent)&lt;/li>
&lt;li>RPOW&lt;/li>
&lt;/ol>
&lt;h3 id="parte-iii-bitcoin">Parte III: Bitcoin&lt;/h3>
&lt;ol start="14">
&lt;li>Dinero Fiat del Siglo XXI&lt;/li>
&lt;li>El White Paper&lt;/li>
&lt;li>El Lanzamiento&lt;/li>
&lt;/ol>
&lt;hr />
&lt;blockquote>
&lt;p>El banco central declaró a la aseguradora “demasiado grande para caer” y, junto con el Tesoro de EE.UU., la rescató con una inyección de 68 mil millones de dólares (más otros 112 mil millones en garantías).&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Si el análisis de Hayek sobre economía monetaria era correcto, Bitcoin podría ayudar a arreglar la economía. Como moneda sin respaldo que operaba sin banco central, bitcoin era dinero completamente homogéneo. Cualquiera podía controlar sus propias monedas, sin preocuparse por ratios de reserva. Y como existía en internet, no tenía fronteras. Cualquiera con conexión podía descargar el software y enviar o recibir transacciones. Esta combinación (dinero homogéneo, sin fronteras y con suministro fijo) es lo que Hayek describió como dinero neutral.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Bitcoin facilitaría el comercio internacional de forma más directa: solo el comprador, el vendedor y los precios de sus productos se ven afectados, no los niveles de precios de sus países.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>En Bitcoin, nadie está a cargo… y todos están a cargo.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/TXs3maguye4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El proyecto Fénix</title><subtitle>Una Novela Sobre IT, DevOps, Y Ayudar a Tu Negocio a Ganar</subtitle><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2024-05-31T00:00:00+00:00</published><updated>2024-05-31T00:00:00+00:00</updated><author><name>
Gene Kim</name></author><author><name>
Kevin Behr</name></author><author><name>
George Spafford</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-phoenix-project/"/><id>https://chemaclass.com/es/readings/the-phoenix-project/</id><summary type="html">Una historia sobre un proyecto imposible donde todos juegan a la política, arreglan bugs críticos sin parar y desperdician esfuerzos en parches rápidos en vez de ayudar al negocio a prosperar.</summary><content type="html">&lt;p>Una historia sobre un proyecto imposible donde todos juegan a la política, arreglan bugs críticos sin parar y desperdician esfuerzos en parches rápidos en vez de ayudar al negocio a prosperar.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>Si IT falla, el negocio falla.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;strong>Principios DevOps&lt;/strong>: Flujo, Feedback, Aprendizaje Continuo y Experimentación. Estos conceptos impulsan mejoras en capacidad de respuesta, fiabilidad y trabajo en equipo.&lt;/p>
&lt;h4 id="resumen">Resumen&lt;/h4>
&lt;p>El libro empieza con la promoción de Bill a VP de IT y la responsabilidad de entregar un proyecto imposible (Phoenix). El CEO le advierte: si no se entrega a tiempo, externalizarán todo IT y despedirán a todos.&lt;/p>
&lt;p>Bill intenta entender la situación y descubre que todos apagan fuegos sin parar, con demasiadas responsabilidades y poco personal. Todo es urgente, todo para ayer. La fecha límite viene de arriba, sin planificación ni conversaciones con otros departamentos. En resumen: caos corporativo, política y reuniones infernales.&lt;/p>
&lt;p>Bill conoce a alguien en la empresa que le ayuda a mejorar las cosas. No le dice qué hacer, sino que le hace preguntas para que encuentre la solución por sí mismo.&lt;/p>
&lt;p>Por ejemplo, la primera pregunta: “¿Cuáles son los cuatro tipos de trabajo en IT?” La respuesta no llega de golpe, sino a lo largo de la historia:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Proyectos de negocio&lt;/strong>: afectan directamente los objetivos del negocio. Generan ingresos y dan valor a los clientes.&lt;/li>
&lt;li>&lt;strong>Proyectos internos&lt;/strong>: tareas regulares que mantienen el sistema funcionando (actualizaciones, parches de seguridad…). Suelen ser invisibles y pueden convertirse en cuello de botella.&lt;/li>
&lt;li>&lt;strong>Cambios&lt;/strong>: resultado de los proyectos anteriores. Hay que saber qué cambiar y dentro de qué.&lt;/li>
&lt;li>&lt;strong>Trabajo no planificado&lt;/strong>: el verdadero asesino de la productividad. Son todos los problemas operacionales que surgen de los otros tres tipos de trabajo.&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6QNdL1I7OTM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>¿Qué Mata la Agilidad?</title><subtitle>¿Por qué Agile si ya haces Scrum, Kanban, SAFe o Waterfall?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2024-05-30T00:00:00+00:00</published><updated>2024-05-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/what-kills-agility/"/><id>https://chemaclass.com/es/blog/what-kills-agility/</id><summary type="html">¿Por qué Agile, si ya haces Scrum, Kanban, SAFe o Waterfall? Cómo gestionamos una organización define su calidad. Una excelente gestión es crucial para evitar la trampa del Waterfall si buscamos construir un entorno Agile. Pero ¿por qué querríamos eso? ¿Qué hay de malo en la forma en que ya trabajamos?</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-05-30/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Docenas de documentos y hojas de cálculo, reuniones tras reuniones, y sin embargo sin mucho impacto, resultan en desalineaciones del equipo, descubiertas demasiado tarde.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Cómo gestionamos una organización define su calidad. Una excelente gestión es crucial para evitar la trampa del Waterfall si buscamos construir un entorno Agile. Pero ¿por qué querríamos eso? ¿Qué hay de malo en la forma en que ya trabajamos?&lt;/p>
&lt;p>Si ya estás feliz con cómo tú y tu equipo trabajan juntos, está bien. Sin embargo, ¿qué hay de reevaluar cómo trabajas para buscar mejoras potenciales?&lt;/p>
&lt;p>Me refiero a evaluar tu sistema y cómo tú y las personas a tu alrededor actúan dentro de él. Lo que funcionó hace meses o años podría diferir de lo que podríamos descubrir hoy, como parte de la mejora continua.&lt;/p>
&lt;p>No me gusta la política en el lugar de trabajo, donde cada equipo va a lo suyo en lugar de tener una dirección compartida más grande. Esto resulta en trabajo diario lleno de miedo desde arriba, pasado a las personas de abajo, manteniendo un &lt;a href="/es/blog/unhealthy-working-environment">ambiente de trabajo no saludable&lt;/a>. Game of Thrones es genial como serie de ficción, pero no algo con lo que lidiar en el negocio diario.&lt;/p>
&lt;p>Agile nació precisamente como respuesta al desperdicio excesivo generado por la política y la microgestión organizacional.&lt;/p>
&lt;p>Controlar y el “rendimiento lento” necesitaba un enfoque más flexible. Cuando las personas adoptan una mentalidad fija, resisten el cambio, temen al fracaso y priorizan procesos rígidos y jerarquías. Esto entra en conflicto con las ideas centrales de Agile de abrazar el cambio, entrega continua con desarrollo iterativo, planificación flexible y fomentar la colaboración e innovación.&lt;/p>
&lt;p>Una mentalidad fija lleva al miedo a la experimentación y una reticencia a desafiar el statu quo, reduciendo el progreso y el potencial de aprendizaje y crecimiento.&lt;/p>
&lt;hr />
&lt;h2 id="que-mata-la-agilidad">¿Qué mata la agilidad?&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Mentalidad fija&lt;/strong>: Resistencia al cambio, miedo al fracaso y priorizar procesos rígidos sobre aprendizaje y adaptación estrangula la innovación y flexibilidad.&lt;/li>
&lt;li>&lt;strong>Burocracia excesiva&lt;/strong>: Procesos complejos y documentación excesiva ralentizan la toma de decisiones y la capacidad de respuesta.&lt;/li>
&lt;li>&lt;strong>Microgestión&lt;/strong>: Liderazgo demasiado controlador socava la autonomía del equipo.&lt;/li>
&lt;li>&lt;strong>Falta de colaboración&lt;/strong>: Mala comunicación y trabajo en equipo dificultan el progreso.&lt;/li>
&lt;li>&lt;strong>Bucles de retroalimentación inefectivos&lt;/strong>: Impiden ajustes y mejora continua.&lt;/li>
&lt;li>&lt;strong>Miedo a la experimentación&lt;/strong>: Una cultura que castiga el fracaso desalienta la experimentación y el aprendizaje de errores.&lt;/li>
&lt;li>&lt;strong>Procesos inflexibles&lt;/strong>: Adherencia estricta sin adaptarse a las necesidades del proyecto.&lt;/li>
&lt;li>&lt;strong>Objetivos desalineados&lt;/strong>: Prioridades conflictivas reducen la eficiencia.&lt;/li>
&lt;li>&lt;strong>Falta de apoyo del liderazgo&lt;/strong>: Sin respaldo de la alta dirección, las iniciativas Agile pueden tener dificultades para obtener los recursos y el compromiso necesarios.&lt;/li>
&lt;li>&lt;strong>Malas prácticas técnicas&lt;/strong>: Descuidar la excelencia técnica y el buen diseño puede llevar a una base de código frágil que es difícil de adaptar y extender.&lt;/li>
&lt;/ul>
&lt;h3 id="que-puedes-hacer-al-respecto">¿Qué puedes hacer al respecto?&lt;/h3>
&lt;p>Aprende los básicos de Extreme Programming (XP) y Lean Software Development.&lt;/p>
&lt;ul>
&lt;li>&lt;strong>XP&lt;/strong>: Enfocado en prácticas de desarrollo de software y excelencia técnica, con prácticas específicas como pair programming y Test-Driven Development (TDD).&lt;/li>
&lt;li>&lt;strong>Lean&lt;/strong>: Toma un enfoque más amplio, enfocándose en eliminar desperdicio, optimizar flujo y mejorar procesos en toda la organización.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-05-30/footer.jpg" alt="blog-cover" />&lt;/p></content></entry><entry xml:lang="es"><title>Radical Candor</title><subtitle>Cómo Conseguir Lo Que Quieres Diciendo Lo Que Piensas</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2024-04-17T00:00:00+00:00</published><updated>2024-04-17T00:00:00+00:00</updated><author><name>
Kim Scott</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/radical-candor/"/><id>https://chemaclass.com/es/readings/radical-candor/</id><summary type="html">Kim Scott, ex líder de Google, desarrolló esta filosofía de gestión. Es un curso intensivo sobre cómo ser un gran manager: empático y orientado a resultados. La clave está en crear un entorno donde la gente se sienta segura para decir lo que piensa y hacer su trabajo con respeto.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Kim Scott, ex líder de Google, desarrolló esta filosofía de gestión. Es un curso intensivo sobre cómo ser un gran manager: empático y orientado a resultados. La clave está en crear un entorno donde la gente se sienta segura para decir lo que piensa y hacer su trabajo con respeto.&lt;/p>
&lt;h3 id="ideas-clave">Ideas clave&lt;/h3>
&lt;ul>
&lt;li>El estilo de mando y control frena la innovación y daña la eficiencia del equipo. La colaboración florece cuando las relaciones humanas sustituyen al acoso y la burocracia.&lt;/li>
&lt;li>Radical Candor busca que managers y líderes logren juntos lo que no pueden lograr solos, preocupándose de verdad por su gente.&lt;/li>
&lt;li>Se trata de ser radicalmente honesto y abierto, sin dejar de ser amable y respetuoso.&lt;/li>
&lt;/ul>
&lt;h3 id="las-dos-dimensiones">Las dos dimensiones&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Preocuparse personalmente&lt;/strong>: Mostrar interés genuino en la vida, bienestar y metas de las personas. Ser humano y empático.&lt;/li>
&lt;li>&lt;strong>Desafiar directamente&lt;/strong>: Dar feedback específico, oportuno y útil, que sea amable y claro a la vez. Ser directo y orientado a resultados.&lt;/li>
&lt;/ul>
&lt;h3 id="los-tres-comportamientos-a-evitar">Los tres comportamientos a evitar&lt;/h3>
&lt;ol>
&lt;li>&lt;strong>Agresión desagradable&lt;/strong>: Ser demasiado crítico o agresivo.&lt;/li>
&lt;li>&lt;strong>Empatía ruinosa&lt;/strong>: Ser demasiado comprensivo o permisivo.&lt;/li>
&lt;li>&lt;strong>Insinceridad manipuladora&lt;/strong>: Ser falso o manipulador en tu feedback.&lt;/li>
&lt;/ol>
&lt;h3 id="radical-candor-en-accion">Radical Candor en acción&lt;/h3>
&lt;ul>
&lt;li>Da elogios específicos y sinceros. Las críticas, amables pero claras.&lt;/li>
&lt;li>Crea un entorno donde la gente se sienta segura para hablar con libertad.&lt;/li>
&lt;li>Prioriza la colaboración y la innovación sobre el mando y control.&lt;/li>
&lt;li>Preocúpate por tu equipo y desafíales a dar lo mejor de sí.&lt;/li>
&lt;/ul>
&lt;p>Al aplicar Radical Candor, managers y líderes construyen relaciones sólidas, motivan a sus equipos y logran mejores resultados.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/O9hDTLo5rLA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Aprendiendo Concurrencia en Golang</title><subtitle>Un emulador de carreras de caballos explicado paso a paso</subtitle><category term="golang" scheme="https://chemaclass.com/tags/golang/" label="Golang"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2024-04-02T00:00:00+00:00</published><updated>2024-04-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/learning-concurrency-in-golang/"/><id>https://chemaclass.com/es/blog/learning-concurrency-in-golang/</id><summary type="html">Quería aprender un nuevo lenguaje de programación, así que después de probar algunos, terminé con Golang como uno de mis favoritos por su simplicidad y capacidades. Tiene características que no había usado en años, como multithreading y concurrencia.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-04-02/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Quería aprender un nuevo lenguaje, así que después de probar algunos, terminé con Golang como uno de mis favoritos por su simplicidad y capacidades. Tiene características que no había usado en años, como multithreading y concurrencia.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>&lt;a rel="external" href="https://go.dev/">Golang&lt;/a> (o &lt;code>Go&lt;/code>) soporta concurrencia mediante hilos ligeros llamados goroutines. Son diferentes del multithreading tradicional de Java, donde hay que manejar sincronización y coordinación para gestionar recursos compartidos de forma segura. Las goroutines son ligeras, las gestiona el runtime de Go, y son más baratas de crear y manejar.&lt;/p>
&lt;p>El paralelismo es &lt;strong>hacer&lt;/strong> varias cosas simultáneamente. La concurrencia es &lt;strong>lidiar&lt;/strong> con varias cosas a la vez. En ambos casos, no conocemos el orden de ejecución: no sabemos qué pasará primero ni qué terminará antes.&lt;/p>
&lt;blockquote>
&lt;p>Imagina que cocinas: preparas una sopa, una ensalada y una tortilla. Eres una sola persona, pero preparas varios platos. Podrías terminar primero la ensalada, la sopa o la tortilla… no hay garantía. Esto es concurrencia: lidias con varias cosas a la vez. Cuando tu pareja viene a ayudarte, eso ya es paralelismo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2024-04-02/concurrency-vs-multithreading.jpg" alt="concurrencia vs multithreading" />&lt;/p>
&lt;p>Recuerdo haber construido un juego similar en &lt;code>Java&lt;/code> cuando aprendía multithreading hace diez años. Aprovecho esta oportunidad para hacerlo de nuevo con &lt;code>Go&lt;/code> moderno.&lt;/p>
&lt;p>Construi un juego de terminal que simula una carrera de caballos. Cada caballo es una goroutine que corre en una matriz bidimensional compartida. Cuando un caballo llega al final, notifica al canal compartido con los demas caballos (que corren en diferentes procesos) y todos se detienen, mostrando al ganador.&lt;/p>
&lt;p>Separé el código en cuatro áreas para ayudar a visualizarlo:&lt;/p>
&lt;ul>
&lt;li>Punto de entrada&lt;/li>
&lt;li>Generando el tablero&lt;/li>
&lt;li>Renderizando el juego&lt;/li>
&lt;li>Moviendo los caballos&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-04-02/race-horses-demo.gif" alt="demo de carrera de caballos en terminal" />&lt;/p>
&lt;h3 id="punto-de-entrada">Punto de entrada&lt;/h3>
&lt;p>La estructura &lt;code>Horse&lt;/code> representa cada Caballo en la carrera.
El juego consiste en una lista de líneas, en las cuales cada Caballo está corriendo.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">type&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> struct&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> Name&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> string&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> El nombre del caballo&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> Line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> La línea de competición&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span> (&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">h &lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Letter&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> string&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sprintf&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">%c&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span> h&lt;/span>&lt;span>.&lt;/span>&lt;span>Name&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">0&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span> (&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">h &lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Equals&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">other&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> bool&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> other&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> !=&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;amp;&amp;amp;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> h&lt;/span>&lt;span>.&lt;/span>&lt;span>Line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ==&lt;/span>&lt;span> other&lt;/span>&lt;span>.&lt;/span>&lt;span>Line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;amp;&amp;amp;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> h&lt;/span>&lt;span>.&lt;/span>&lt;span>Name&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ==&lt;/span>&lt;span> other&lt;/span>&lt;span>.&lt;/span>&lt;span>Name&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span> (&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">h &lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> String&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> string&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sprintf&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">%s&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> (line:&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">%d&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span> h&lt;/span>&lt;span>.&lt;/span>&lt;span>Name&lt;/span>&lt;span>,&lt;/span>&lt;span> h&lt;/span>&lt;span>.&lt;/span>&lt;span>Line&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Puedes generar un nuevo proceso usando la palabra clave &lt;code>go&lt;/code> al invocar cualquier función.
En este juego, esto se usa 1) para renderizar el juego &lt;code>RenderGame()&lt;/code> y 2) para el movimiento de cada caballo &lt;code>startRuningHorseInLine()&lt;/code>. El objetivo es mantener la “renderización” y la “lógica de movimiento” trabajando en paralelo.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> main&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> const&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> lines&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> lineLength&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 12&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 30&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> NewRaceBoard&lt;/span>&lt;span>(&lt;/span>&lt;span>lines&lt;/span>&lt;span>,&lt;/span>&lt;span> lineLength&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> go&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> RenderGame&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span> winnerChan&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> make&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">chan&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> cada caballo será movido en diferentes procesos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> go&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> startRunningHorseInLine&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;span> winnerChan&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> esperar hasta que un caballo llegue al final&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> winner&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;-&lt;/span>&lt;span>winnerChan&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> renderizar una última vez para asegurar el último estado del tablero&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> RenderRaceBoard&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;amp;&lt;/span>&lt;span>winner&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span> fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Println&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Race finished!&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Printf&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"># Winner: &lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">%s&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">\n&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span> winner&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="generando-el-tablero">Generando el tablero&lt;/h3>
&lt;p>El tablero de carreras es una matriz bidimensional de punteros a Horses. Cada línea “contiene” un solo Caballo: solo un puntero apunta a un Caballo real, el resto son &lt;code>nil&lt;/code>. Al generar el Tablero, creamos un Caballo en la primera posición de cada línea.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> NewRaceBoard&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">lines&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> lineLength&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span>)&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> make&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;span> lines&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> make&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;span> lineLength&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">0&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;amp;&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> Name&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> generateHorseName&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> Line&lt;/span>&lt;span>:&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> board&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Los nombres se generan aleatoriamente usando &lt;code>HorseNames&lt;/code>.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">var&lt;/span>&lt;span> HorseNames&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">2&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">string&lt;/span>&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Alloping&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Giggles&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>}&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">A-lot&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Gallop&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>}&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">BoJack&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Jack&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>}&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Baroness&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">Belle&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>}&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ...&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> generateHorseName&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> string&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> name&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span> HorseNames&lt;/span>&lt;span>[&lt;/span>&lt;span>rand&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Intn&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">len&lt;/span>&lt;span>(&lt;/span>&lt;span>HorseNames&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">0&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> surname&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span> HorseNames&lt;/span>&lt;span>[&lt;/span>&lt;span>rand&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Intn&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">len&lt;/span>&lt;span>(&lt;/span>&lt;span>HorseNames&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> name&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> +&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> +&lt;/span>&lt;span> surname&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="renderizando-el-juego">Renderizando el juego&lt;/h3>
&lt;p>Los métodos &lt;code>RenderGame()&lt;/code>, &lt;code>renderRaceBoard()&lt;/code>, &lt;code>renderRaceLine()&lt;/code> y &lt;code>renderRacePosition()&lt;/code> están separados para que cada uno tenga una responsabilidad clara: renderizar su sujeto correspondiente.&lt;/p>
&lt;blockquote>
&lt;p>&lt;code>RenderGame()&lt;/code> se está ejecutando en otro proceso usando &lt;code>go&lt;/code>.&lt;/p>
&lt;/blockquote>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> RenderGame&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> time&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sleep&lt;/span>&lt;span>(&lt;/span>&lt;span>renderDelay&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span> time&lt;/span>&lt;span>.&lt;/span>&lt;span>Millisecond&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> RenderRaceBoard&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> RenderRaceBoard&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> winner&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> usar un &amp;quot;buffer de string&amp;quot; para guardar todo el estado del tablero&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> para que luego podamos usar una sola llamada IO para renderizarlo&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> var&lt;/span>&lt;span> buffer&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> bytes&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Buffer&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">\n&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> renderRaceLine&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;amp;&lt;/span>&lt;span>buffer&lt;/span>&lt;span>,&lt;/span>&lt;span> winner&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> clearScreen&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Println&lt;/span>&lt;span>(&lt;/span>&lt;span>buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">String&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> clearScreen&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> cmd&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span> exec&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Command&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">clear&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> cmd&lt;/span>&lt;span>.&lt;/span>&lt;span>Stdout&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> os&lt;/span>&lt;span>.&lt;/span>&lt;span>Stdout&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> cmd&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Run&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> renderRaceLine&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> buffer&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">bytes&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Buffer&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> winner&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span>fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sprintf&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> %.2d&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> | &lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> var&lt;/span>&lt;span> current&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> h&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> renderRacePosition&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;span> col&lt;/span>&lt;span>,&lt;/span>&lt;span> buffer&lt;/span>&lt;span>,&lt;/span>&lt;span> winner&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> h&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> !=&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> current&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span>h&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span>fmt&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sprintf&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">| &lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">%s&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>,&lt;/span>&lt;span> current&lt;/span>&lt;span>.&lt;/span>&lt;span>Name&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> current&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Equals&lt;/span>&lt;span>(&lt;/span>&lt;span>winner&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> [Won!]&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">\n&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> renderRacePosition&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> line&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> buffer&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">bytes&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Buffer&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#E36209, #FFAB70);"> winner&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ==&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span> current&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> current&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Equals&lt;/span>&lt;span>(&lt;/span>&lt;span>winner&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> removeChars&lt;/span>&lt;span>(&lt;/span>&lt;span>buffer&lt;/span>&lt;span>,&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">+&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">-&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span> buffer&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">WriteString&lt;/span>&lt;span>(&lt;/span>&lt;span>current&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Letter&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span> current&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="moviendo-los-caballos">Moviendo los caballos&lt;/h3>
&lt;p>En &lt;code>main(...)&lt;/code>, el &lt;code>winnerChan&lt;/code> es un canal compartido que usará el primer Caballo que llegue a la última posición de su línea.&lt;/p>
&lt;p>Cada Caballo ejecuta un bucle hasta llegar al final de la línea o recibir (vía &lt;code>winnerChan&lt;/code>) el mensaje de que otro Caballo ya ganó. Hasta entonces, cada caballo se mueve de forma independiente, durmiendo milisegundos aleatorios antes de avanzar a la siguiente posición.&lt;/p>
&lt;blockquote>
&lt;p>&lt;code>startRuningHorseInLine()&lt;/code> se ejecuta en otro proceso usando &lt;code>go&lt;/code>.&lt;/p>
&lt;/blockquote>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="go">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> main&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">...&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> winnerChan&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> make&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">chan&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> range&lt;/span>&lt;span> board&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> cada caballo será movido en diferentes procesos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> go&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> startHorseRunning&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;span> winnerChan&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> esperar hasta que un caballo llegue al final&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> winner&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;-&lt;/span>&lt;span>winnerChan&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">...&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> startRunningHorseInLine&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> winnerChan&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> chan&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> select&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> case&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;-&lt;/span>&lt;span>winnerChan&lt;/span>&lt;span>:&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> verificar si otro caballo terminó&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> en tal caso, entonces detener el bucle for&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> default&lt;/span>&lt;span>:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> time&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Sleep&lt;/span>&lt;span>(&lt;/span>&lt;span>time&lt;/span>&lt;span>.&lt;/span>&lt;span>Millisecond&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span> time&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Duration&lt;/span>&lt;span>(&lt;/span>&lt;span>rand&lt;/span>&lt;span>.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Intn&lt;/span>&lt;span>(&lt;/span>&lt;span>maxSleepDelay&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> moveHorseOnePos&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>,&lt;/span>&lt;span> line&lt;/span>&lt;span>,&lt;/span>&lt;span> winnerChan&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">func&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> moveHorseOnePos&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);">board&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">*&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">Horse&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> line&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> int&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#E36209, #FFAB70);"> winnerChan&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> chan&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Horse&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> cols&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> len&lt;/span>&lt;span>(&lt;/span>&lt;span>board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> for&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> :=&lt;/span>&lt;span> cols&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> -&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 1&lt;/span>&lt;span>;&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;gt;&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 0&lt;/span>&lt;span>;&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">--&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">-&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ==&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> continue&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> aquí identificamos que hay un caballo en&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> la siguiente columna, así que lo movemos a la&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> columna actual, y ponemos `nil` en la otra&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">-&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">-&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>]&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> nil&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> if&lt;/span>&lt;span> col&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">+&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ==&lt;/span>&lt;span> cols&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> winnerChan&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;lt;-&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> *&lt;/span>&lt;span>board&lt;/span>&lt;span>[&lt;/span>&lt;span>line&lt;/span>&lt;span>]&lt;/span>&lt;span>[&lt;/span>&lt;span>col&lt;/span>&lt;span>]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> break&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="codigo-fuente">Código fuente&lt;/h3>
&lt;p>El código de este post es una versión simplificada. Si quieres ver el código completo funcionando, está aquí: &lt;a rel="external" href="https://github.com/Chemaclass/go-horse-racing">Chemaclass/go-horse-racing&lt;/a>.&lt;/p>
&lt;blockquote>
&lt;p>Gracias a mi antiguo Team Lead, Andrei Boar, que me ayudó a revisar mi solución original y proporcionó una &lt;a rel="external" href="https://gist.github.com/zuzuleinen/79413aa7933d7d6c6d84ec6ba8c3910a">solución alternativa&lt;/a> (más simple y mejor) que apliqué a mi código. Lo principal que aprendí fue usar un &lt;code>chan Horse&lt;/code> para pasar el Caballo ganador desde &lt;code>main()&lt;/code>, en vez de usar un &lt;code>chan bool&lt;/code> y un &lt;code>sync.WaitGroup&lt;/code> entre todos los hilos.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Pair Programming Efectivo</title><subtitle>Abrazando prácticas de calidad en tu cultura de ingeniería</subtitle><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2024-03-28T00:00:00+00:00</published><updated>2024-03-28T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/effective-pair-programming/"/><id>https://chemaclass.com/es/blog/effective-pair-programming/</id><summary type="html">Guía práctica de pair programming que funciona: roles, rotación, cuándo hacerlo, errores comunes y cómo hacer sesiones productivas.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-03-28/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>¿Qué es el pair programming? Dos personas trabajando juntas en el mismo problema, al mismo tiempo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>No se trata de que una persona muestre sus habilidades frente a otra, ni de que una persona tenga miedo de cometer errores debido al síndrome del impostor.&lt;/p>
&lt;p>Cada persona tendrá un rol:&lt;/p>
&lt;ul>
&lt;li>Navegador: prestará atención al panorama general; ej: arquitectura, relación entre colaboradores, diseño de objetos, etc.&lt;/li>
&lt;li>Conductor: prestará atención a los pequeños detalles; ej: naming, convenciones de código, sintaxis de escritura, diseño de objetos, etc.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La pareja podría, y debería, intercambiar roles ocasionalmente; ej: cada X commits pusheados, cada 10 min,… depende de ellos.&lt;/p>
&lt;/blockquote>
&lt;p>El pair programming no debería considerarse una práctica solo para “seniors” hacia juniors, sino independientemente del nivel de experiencia de los miembros del equipo.&lt;/p>
&lt;p>Se trata del &lt;strong>flujo de colaboración&lt;/strong>, la comunicación de calidad, la ausencia de sentirse juzgado y la idea de dar la bienvenida a la vulnerabilidad con tus compañeros, sabiendo que te apoyarán y ayudarán.&lt;/p>
&lt;p>Se trata de desafiarse constantemente mutuamente, buscando la solución más pragmática mientras se mantiene simple. Siempre buscando &lt;strong>retroalimentación rápida&lt;/strong> al hablar entre ustedes, pero también sobre la solución que acordaron implementar y su dirección.&lt;/p>
&lt;p>Se trata del bucle de retroalimentación corto, rápido e inmediato mientras hablas con tu compañero, quien &lt;strong>revisa tu código sobre la marcha&lt;/strong>. Puedes guiar como navegador o ayudar al conductor a validar sus ideas en un panorama más amplio.&lt;/p>
&lt;p>Se trata de la atmósfera constante de &lt;strong>compartir conocimiento&lt;/strong> por defecto, reduciendo bus-factors y áreas de conocimiento aislado al máximo. Aumentando el enfoque al tener dos mentes trabajando en la misma tarea simultáneamente.&lt;/p>
&lt;p>Se trata de &lt;strong>cohesión de equipo&lt;/strong> y afilar el sentimiento de que pertenecemos. Cuando entendemos las fortalezas y debilidades de cada uno, nos daremos cuenta de cuánto podemos ayudarnos a crecer mutuamente.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-03-28/footer.jpg" alt="blog-img" />&lt;/p>
&lt;h2 id="como-puedes-practicar-pair-programming">¿Cómo puedes practicar pair programming?&lt;/h2>
&lt;p>El pair programming puede hacerse de diferentes maneras:&lt;/p>
&lt;ul>
&lt;li>Puedes empezar y terminar una tarea con pairing. Puedes limitarlo a 30, 60, 90 minutos. De cualquier manera, se recomienda tener pausas en el medio - Pomodoro.&lt;/li>
&lt;li>Puedes empezar la tarea juntos y parar cuando uno de tus compañeros se sienta lo suficientemente confiado para continuar solo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Depende del equipo, y de la tarea en contexto, decidir cuándo y cómo aplicar pairing para sacar lo mejor de ello.&lt;/p>
&lt;/blockquote>
&lt;p>Esto no significa que debas trabajar constantemente “sin importar qué” en pareja. No se trata de crear reglas; por el contrario, se trata de abrazar esta práctica hasta el punto de que te sientas confiado para elegir cuándo y cómo usarla para sacar lo mejor de ella.&lt;/p>
&lt;p>El pair programming podría convertirse en una de las mejores herramientas en la caja de herramientas de tu equipo para las interacciones diarias. No porque lo hayas leído en algún lugar, sino por los beneficios que tú y tu equipo encontrarán.&lt;/p>
&lt;h3 id="patrones-comunes">Patrones Comunes&lt;/h3>
&lt;h4 id="diferentes-estrategias-para-pairing-efectivo">Diferentes estrategias para pairing efectivo&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Driver-Navigator&lt;/strong>: Una persona está conduciendo el código (con el teclado), enfocándose en el aspecto de detalle de la tarea en sí. La otra es navegadora (sin teclado), teniendo una imagen más abstracta de la tarea en mente.&lt;/li>
&lt;li>&lt;strong>Ping-Pong&lt;/strong>: Cambio frecuente de roles driver-navigator en pequeñas interacciones, ej: cada N minutos, cada N commits, etc.&lt;/li>
&lt;li>&lt;strong>Backseat driver&lt;/strong>: El navegador se involucra activamente con el conductor.&lt;/li>
&lt;li>&lt;strong>Tourist guide&lt;/strong>: El navegador aprende pasivamente con el conductor.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-03-28/good-pair-prog.jpg" alt="patrones de pair programming efectivo" />&lt;/p>
&lt;h4 id="anti-patrones-mientras-haces-pairing">Anti-patrones mientras haces pairing&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>The silent partner&lt;/strong>: El navegador no participa, está en silencio.&lt;/li>
&lt;li>&lt;strong>The solo act&lt;/strong>: El conductor ignora todas las aportaciones del navegador.&lt;/li>
&lt;li>&lt;strong>Distracted pair&lt;/strong>: La pareja no se enfoca en el problema a resolver.&lt;/li>
&lt;li>&lt;strong>The Dictator&lt;/strong>: Una persona está diciendo qué hacer, ignorando las aportaciones del otro.&lt;/li>
&lt;li>&lt;strong>Philosophical pair&lt;/strong>: La pareja está haciendo &lt;a href="/es/blog/bikeshedding/">bikeshedding&lt;/a> en temas irrelevantes.&lt;/li>
&lt;li>&lt;strong>The code war&lt;/strong>: La pareja no llega a un acuerdo y comienza una guerra innecesaria, que desperdicia tiempo y esfuerzo.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2024-03-28/anti-pair-prog.jpg" alt="anti-patrones de pair programming" />&lt;/p>
&lt;p>&lt;strong>¿Quieres más?&lt;/strong> Mira esto: &lt;a rel="external" href="https://www.figma.com/file/FCmGwRPIO8cLowDRraJhgr/Learning-TDD">Learning Through KATAS&lt;/a>&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-03-28/learning-through-katas.jpg" alt="aprendiendo a través de katas" />&lt;/p>
&lt;h2 id="la-conclusion">La conclusión&lt;/h2>
&lt;p>El pairing no es una regla que imponer, es una herramienta a la que recurrir. Úsalo cuando la tarea es compleja, el
conocimiento está aislado o lo que está en juego es importante. Sáltalo cuando el trabajo es trivial. El objetivo nunca
es “hacer siempre pairing”, es &lt;strong>mejor software y un equipo más fuerte&lt;/strong>. Elige una tarea real esta semana, hazla en
pareja e intercambia roles a menudo. Los beneficios aparecen más rápido de lo que esperas.&lt;/p>
&lt;blockquote>
&lt;p>Gracias a mi amigo &lt;a rel="external" href="https://x.com/evrtrabajo">Manu&lt;/a>, quien me ayudó con este post. Incluso compartimos un &lt;a rel="external" href="https://phpconference.com/agile-culture/practical-tdd-workshop/">taller&lt;/a> sobre este tema.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Despliegues los Viernes</title><subtitle>¿Por qué "no deberíamos" desplegar a producción los viernes?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2024-02-25T00:00:00+00:00</published><updated>2024-02-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/deployments-on-fridays/"/><id>https://chemaclass.com/es/blog/deployments-on-fridays/</id><summary type="html">He escuchado múltiples veces, de varias personas, la idea de pánico hacia desplegar los viernes. ¿Qué tan buena es esa idea de prohibir el día antes del fin de semana entregar nuevo valor a nuestros clientes?</summary><content type="html">&lt;p>&lt;img src="/images/blog/2024-02-25/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>He escuchado múltiples veces, de varias personas, la idea de pánico hacia desplegar los viernes. ¿Qué tan buena es esa idea de prohibir el día antes del fin de semana entregar nuevo valor a nuestros clientes?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El argumento principal a favor de NO desplegar el viernes se basa en la idea de que “deberíamos ser paranoicos” con nuestro software y que podría fallar cuando lo tocamos. Entonces, “deberíamos asumir” lo peor cada vez que desplegamos una nueva versión de nuestro sistema.&lt;/p>
&lt;p>Sin embargo, el factor crítico aquí es ¿Por qué? ¿Por qué no deberíamos desplegar los viernes? ¿Está bien tener miedo de nuestro propio sistema de software, que vivimos en un pánico constante de romperlo el día después de haber hecho un despliegue? ¿Cuánto impacto deberían tener nuestras releases? ¿Cómo podemos asegurar que el despliegue no romperá el sistema en vivo?&lt;/p>
&lt;p>Tus pipelines de Integración Continua/Entrega Continua, pruebas end-to-end y otros tipos de tests implementados, políticas de escalado automático, un sandbox de staging previo para realizar incluso pruebas manuales si es necesario, etc., determinarán la seguridad y confianza para cualquiera de tus releases. Sin embargo, la calidad de estos temas es un factor decisivo para tener suficiente confianza sobre cómo, cuándo y por qué tendría sentido hacer release a producción.&lt;/p>
&lt;p>El objetivo es construir un sistema donde los despliegues a producción sean tan frecuentes, suaves y fáciles como sea posible; en cualquier momento, cualquier día. Tener miedo de tu sistema no debería ser el objetivo. Por el contrario, debería ser algo hacia lo que trabajar para solucionarlo.&lt;/p>
&lt;p>Las dinámicas del equipo también son un factor esencial aquí. Si establecemos miedo a los despliegues los viernes, y miedo a nuestro sistema, eso terminará en falta de responsabilidad por defecto. Esto me recuerda a &lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">The Five Dysfunctions of a Team&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/middle.jpg" alt="desplegando los viernes" />&lt;/p>
&lt;p>Si despliegas cambios pequeños y frecuentes tan pronto como pueden garantizar 100% de calidad y éxito de valor, ¿por qué retrasar tal mejora incremental a tu sistema?&lt;/p>
&lt;p>Volviendo a “¿Por qué no deberíamos desplegar los viernes?” La única razón que se me ocurre es tener miedo de que tengamos que trabajar el sábado en la cosa rota que entregamos el viernes. Sin embargo, me pregunto si había alguna opción disponible, para que pudiéramos haber identificado tal cosa rota durante el propio viernes laborable.&lt;/p>
&lt;p>Monitorear tu sistema en vivo es crucial para garantizar la salud después de cada despliegue. Esto es esencial para asegurar que todo funciona bien y sin problemas. Para construir un sistema resistente, esto debería activar alarmas para notificar a alguien responsable de abordar el problema, deshabilitar o revertir la última característica “rota”… hay muchas técnicas para crear conciencia y actuar sobre ellas.&lt;/p>
&lt;p>En caso de duda, podrías usar feature flags para deshabilitar la característica que desplegarás. Aún así, prefieres no habilitarla durante el fin de semana mientras mantienes la opción de agregar valor y desplegar en cualquier momento siempre abierta.&lt;/p>
&lt;p>Creo que las &lt;strong>releases frecuentes&lt;/strong> y &lt;strong>pequeñas&lt;/strong> a producción &lt;strong>son clave&lt;/strong>; en cualquier momento, cualquier fecha, mientras tenga sentido, y haya un camino claro para traer valor pronto al cliente para obtener retroalimentación lo antes posible.&lt;/p>
&lt;blockquote>
&lt;p>Entrega valor de calidad en pequeños incrementos, tan frecuentemente como sea posible.&lt;/p>
&lt;/blockquote>
&lt;p>Poder desplegar los viernes (si es necesario o deseado) impacta la confianza del equipo. De manera similar, prohibir los despliegues los viernes impacta la autoestima del equipo también.&lt;/p>
&lt;p>&lt;img src="/images/blog/2024-02-25/footer.jpg" alt="releases frecuentes y pequeñas" />&lt;/p></content></entry><entry xml:lang="es"><title>El método Lean Startup</title><subtitle>Cómo los Emprendedores de Hoy Usan la Innovación Continua para Crear Negocios Radicalmente Exitosos</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2024-01-26T00:00:00+00:00</published><updated>2024-01-26T00:00:00+00:00</updated><author><name>
Eric Ries</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-lean-startup/"/><id>https://chemaclass.com/es/readings/the-lean-startup/</id><summary type="html">La mayoría de las startups fracasan, pero muchos de esos fracasos se pueden evitar. El método Lean Startup es un enfoque que está cambiando cómo se crean empresas y se lanzan productos en todo el mundo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>La mayoría de las startups fracasan, pero muchos de esos fracasos se pueden evitar. El método Lean Startup es un enfoque que está cambiando cómo se crean empresas y se lanzan productos en todo el mundo.&lt;/p>
&lt;p>Eric Ries define una startup como una organización que crea algo nuevo bajo condiciones de extrema incertidumbre. Da igual si es una persona en un garaje o un grupo de profesionales en una sala de juntas de una empresa Fortune 500. Lo que comparten es la misión de atravesar esa niebla de incertidumbre para encontrar un camino hacia un negocio sostenible.&lt;/p>
&lt;h2 id="puntos-clave">Puntos Clave&lt;/h2>
&lt;ul>
&lt;li>Prueba a menudo y aprende rápido&lt;/li>
&lt;li>Observa y mide el comportamiento real del cliente&lt;/li>
&lt;li>Enfócate solo en métricas accionables&lt;/li>
&lt;li>Aprende a pivotar según lo que descubras&lt;/li>
&lt;li>Adopta nuevos métodos de contabilidad&lt;/li>
&lt;li>Detecta qué no funciona y cambia de inmediato: mantente lean&lt;/li>
&lt;/ul>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/RSaIOCHbuYw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/fEvKo90qBns"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Gran Ingeniería</title><subtitle>Un gran ingeniero no es solo un gran programador</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2023-12-30T00:00:00+00:00</published><updated>2023-12-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/great-engineering/"/><id>https://chemaclass.com/es/blog/great-engineering/</id><summary type="html">Programar no es solo otro trabajo. En el entorno adecuado, escribir software puede ser realmente divertido y, aún más, ¡puede ser tu hobby personal también! Así que... podrías estar enfocado en programar, programar y más programar para subir de nivel tus propias habilidades profesionales.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-12-30/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Programar no es solo otro trabajo. Escribir software puede ser realmente divertido y, aún más, ¡puede ser tu hobby personal también! Podrías estar enfocado en programar, programar y más programar para subir de nivel tus propias habilidades profesionales.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Eso no tiene nada de malo. La práctica hace al maestro, y programar mucho te ayudará a mejorar tus habilidades de codificación. Pero hay &lt;a href="/es/blog/the-path-to-seniority-in-software/">otros aspectos&lt;/a> que debes tener en cuenta para crecer como gran ingeniero.&lt;/p>
&lt;p>Como ingeniero de software, tu trabajo no es “solo escribir código”, sino &lt;strong>usar el software para resolver problemas reales de negocio&lt;/strong>. Para lograrlo, existen muchas metodologías. Pero en algo hay que estar de acuerdo: necesitas identificar y entender las necesidades de tu cliente para saber qué construir.&lt;/p>
&lt;p>Necesitas conocer tu producto, al menos hasta cierto nivel, para diseñar tu software usando un lenguaje cercano al negocio. Esto ayuda a su evolución y calidad, y facilita el mantenimiento presente y futuro.&lt;/p>
&lt;p>IT, Software, Producto y Personas están muy conectados. Entender la relación entre estos campos ayuda a cada persona a cumplir mejor sus objetivos.&lt;/p>
&lt;p>Un gran trabajo en equipo no es solo la suma de las partes: multiplica el valor creado entre los compañeros. Para eso, saber comunicar bien es clave para generar claridad a cualquier nivel.&lt;/p>
&lt;p>Por eso un gran ingeniero conoce de negocio, cliente, producto y programación. Entender estos puntos marca la diferencia entre un ingeniero promedio y uno excelente.&lt;/p>
&lt;hr />
&lt;p>Imagen original de &lt;a rel="external" href="https://hybridhacker.email">Nicola Ballotta&lt;/a>.&lt;/p></content></entry><entry xml:lang="es"><title>Invincible</title><subtitle>Logra Más, Sufre Menos</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-12-09T00:00:00+00:00</published><updated>2023-12-09T00:00:00+00:00</updated><author><name>
Marcos Vazquez</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/invincible/"/><id>https://chemaclass.com/es/readings/invincible/</id><summary type="html">Marcos Vazquez combina filosofía estoica con psicología moderna para entrenar tu mente hacia la claridad, la determinación y la disciplina ante la adversidad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>La calidad de tu vida depende de la calidad de tu mente. Por desgracia, dedicamos poco tiempo a mejorar nuestros pensamientos, y en la escuela casi nunca nos lo enseñan. Así que pasamos por la vida sin entender realmente cómo usar nuestra mente.&lt;/p>
&lt;p>Tenemos en la cabeza el objeto más sofisticado del mundo, pero apenas sabemos cómo funciona. La mayoría no consigue dirigir su fuerza mental hacia las metas que realmente desea. Se distraen, se frustran. No resisten la tentación ni perseveran ante la adversidad. Al final, abandonan.&lt;/p>
&lt;p>La buena noticia es que la mente se puede entrenar, y este libro te muestra cómo. Combina &lt;strong>filosofía estoica&lt;/strong> con &lt;strong>psicología moderna&lt;/strong> y te da herramientas para visualizar con claridad, actuar con determinación y resistir con disciplina.&lt;/p>
&lt;blockquote>
&lt;p>“No sufrimos por los eventos en nuestras vidas, sino por nuestro juicio sobre ellos.” Epicteto.&lt;/p>
&lt;/blockquote>
&lt;p>Todo cambio externo empieza por dentro. Si quieres transformar tu cuerpo, primero hay que trabajar la mente. Una mente débil nunca creará un cuerpo fuerte.&lt;/p>
&lt;p>Este libro te ayuda a usar tu mente para mejorar tu cuerpo, pero va mucho más allá. No es una simple guía para optimizar hábitos diarios, sino una brújula para tu propia filosofía de vida. Las herramientas que desarrolles te servirán para cualquier cosa que quieras lograr. La vida siempre es más simple con claridad, determinación y disciplina.&lt;/p>
&lt;h4 id="la-filosofia-del-estoicismo">La filosofía del Estoicismo&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/R9OCA6UFE-0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Forming, Storming, Norming y Performing</title><subtitle>El Modelo de Tuckman para llevar a un equipo a alto rendimiento</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-11-25T00:00:00+00:00</published><updated>2023-11-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/forming-storming-norming-performing/"/><id>https://chemaclass.com/es/blog/forming-storming-norming-performing/</id><summary type="html">Para que un equipo alcance alto rendimiento, hay que entender el Modelo de Tuckman: forming, storming, norming, performing y adjourning. Aquí exploro estrategias prácticas para cada etapa.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-11-25/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>En 1965, el psicólogo Bruce Tuckman creó un modelo que describe cómo un grupo se forma y madura hasta convertirse en un equipo cohesivo y efectivo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El modelo inicialmente consistía en cuatro etapas: “&lt;em>&lt;strong>forming&lt;/strong>, &lt;strong>storming&lt;/strong>, &lt;strong>norming&lt;/strong>,&lt;/em> y &lt;em>&lt;strong>performing&lt;/strong>&lt;/em>,” añadiendo una adicional “&lt;em>&lt;strong>adjourning&lt;/strong>&lt;/em>” en 1977.&lt;/p>
&lt;p>Los equipos no siempre avanzan de forma lineal por estas etapas. A veces vuelven a una etapa anterior según las circunstancias.&lt;/p>
&lt;h2 id="forming">Forming&lt;/h2>
&lt;p>En esta etapa inicial, los miembros del equipo son cordiales pero tímidos, inseguros sobre sus roles. Dependen del líder para orientarse.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Objetivo&lt;/strong>: Los miembros se están conociendo, y hay un enfoque en definir el propósito, objetivos y roles del equipo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="enfoque-de-liderazgo">Enfoque de liderazgo&lt;/h3>
&lt;ul>
&lt;li>Proporcionar dirección y orientación claras&lt;/li>
&lt;li>Definir claramente los objetivos, roles y expectativas del equipo&lt;/li>
&lt;li>Actuar como facilitador, fomentando la comunicación abierta y ayudando a los miembros del equipo a conocerse.&lt;/li>
&lt;/ul>
&lt;h2 id="storming">Storming&lt;/h2>
&lt;p>Surgen conflictos y desacuerdos cuando los miembros empiezan a expresar su individualidad. Pueden aparecer luchas de poder y desafíos a la autoridad del líder.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Objetivo&lt;/strong>: El equipo clarifica sus objetivos, los miembros aprenden a resolver conflictos y abordar diferencias de manera constructiva.&lt;/p>
&lt;/blockquote>
&lt;h3 id="enfoque-de-liderazgo-1">Enfoque de liderazgo&lt;/h3>
&lt;ul>
&lt;li>Facilitar la resolución de conflictos&lt;/li>
&lt;li>Reconocer y abordar conflictos de manera constructiva&lt;/li>
&lt;li>Fomentar la comunicación abierta y honesta mientras guía al equipo a través del proceso de entender y apreciar perspectivas diversas&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2023-11-25/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="norming">Norming&lt;/h2>
&lt;p>La cohesión empieza a desarrollarse. Los miembros establecen normas y valores. Los roles se aclaran y surge un sentido de unidad.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Objetivo&lt;/strong>: El equipo se esfuerza por establecer normas, valores y un entendimiento compartido. Los miembros aprenden a apreciar las fortalezas y debilidades de cada uno.&lt;/p>
&lt;/blockquote>
&lt;h3 id="enfoque-de-liderazgo-2">Enfoque de liderazgo&lt;/h3>
&lt;ul>
&lt;li>Fomentar la colaboración y la inclusividad&lt;/li>
&lt;li>Animar a los miembros del equipo a establecer normas y valores colectivamente&lt;/li>
&lt;li>Reconocer y celebrar las fortalezas individuales, fomentando un sentido de unidad y respeto mutuo&lt;/li>
&lt;/ul>
&lt;h2 id="performing">Performing&lt;/h2>
&lt;p>El equipo funciona a pleno rendimiento, enfocado en lograr sus objetivos. Los miembros colaboran, confían entre sí y se apoyan mutuamente.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Objetivo&lt;/strong>: El equipo está comprometido con su propósito común y opera a un alto nivel de eficiencia y efectividad.&lt;/p>
&lt;/blockquote>
&lt;h3 id="enfoque-de-liderazgo-3">Enfoque de liderazgo&lt;/h3>
&lt;ul>
&lt;li>Empoderar la autonomía y la confianza&lt;/li>
&lt;li>Proporcionar oportunidades para que los miembros del equipo tomen propiedad de tareas y proyectos&lt;/li>
&lt;li>Fomentar un ambiente donde los individuos se sientan seguros de sus habilidades y puedan colaborar sin problemas&lt;/li>
&lt;/ul>
&lt;h2 id="adjourning-o-mourning">Adjourning (o Mourning)&lt;/h2>
&lt;p>Esta etapa marca el final de la tarea o proyecto. Los miembros pueden sentir cierta pérdida cuando el grupo se disuelve.&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Objetivo&lt;/strong>: Reconocer y celebrar los logros del equipo, proporcionar cierre y reflexionar sobre la experiencia general.&lt;/p>
&lt;/blockquote>
&lt;h3 id="enfoque-de-liderazgo-4">Enfoque de liderazgo&lt;/h3>
&lt;ul>
&lt;li>Reconocer logros y proporcionar cierre&lt;/li>
&lt;li>Reconocer los logros del equipo y expresar gratitud por las contribuciones individuales&lt;/li>
&lt;li>Facilitar una sesión reflexiva para capturar lecciones aprendidas y crear una experiencia de cierre positiva&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2023-11-25/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;p>Para llevar un equipo a alto rendimiento usando el &lt;a rel="external" href="https://en.wikipedia.org/wiki/Tuckman&amp;#x27;s_stages_of_group_development">Modelo de Tuckman&lt;/a>, los &lt;strong>líderes&lt;/strong> deben conocer las etapas y &lt;strong>adaptar&lt;/strong> su estilo según la situación.&lt;/p>
&lt;p>Esto significa dar &lt;strong>orientación y estructura&lt;/strong> en &lt;em>forming&lt;/em>, &lt;strong>facilitar la resolución de conflictos&lt;/strong> en &lt;em>storming&lt;/em>, &lt;strong>fomentar colaboración y comunicación&lt;/strong> en &lt;em>norming&lt;/em>, &lt;strong>dar autonomía&lt;/strong> en &lt;em>performing&lt;/em>, y &lt;strong>reconocer logros&lt;/strong> en &lt;em>adjourning&lt;/em>.&lt;/p>
&lt;blockquote>
&lt;p>La comunicación regular, las actividades de team-building y resolver conflictos de forma constructiva son claves durante todo el proceso.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="resumen-en-video">Resumen en video&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/-RwkZxGPQb8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Alquimista</title><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2023-11-07T00:00:00+00:00</published><updated>2023-11-07T00:00:00+00:00</updated><author><name>
Paulo Coelho</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-alchemist/"/><id>https://chemaclass.com/es/readings/the-alchemist/</id><summary type="html">Santiago, un joven pastor, emprende un viaje hacia las pirámides de Egipto persiguiendo un sueño. En el camino descubre qué es lo que realmente importa en la vida.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Santiago es un joven pastor que tiene un sueño recurrente: hay un tesoro esperándole en las pirámides de Egipto. Decide ir a buscarlo. Por el camino encuentra mentores, se enamora y, sobre todo, aprende quién es realmente y qué es lo que importa de verdad en la vida.&lt;/p>
&lt;h4 id="resumen-en-video">Resumen en Video&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/b41MXNaFJj0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Conversaciones Cruciales</title><subtitle>Herramientas para Hablar Cuando lo que Está en Juego es Alto</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2023-10-31T00:00:00+00:00</published><updated>2023-10-31T00:00:00+00:00</updated><author><name>
Patterson</name></author><author><name>
Grenny</name></author><author><name>
McMillan</name></author><author><name>
Switzler</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/crucial-conversations/"/><id>https://chemaclass.com/es/readings/crucial-conversations/</id><summary type="html">Herramientas para afrontar las conversaciones más difíciles, decir lo que piensas y lograr los resultados que buscas.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Cuando hay mucho en juego, las opiniones difieren y las emociones se disparan, tienes tres opciones: evitar la conversación y sufrir las consecuencias, manejarla mal y sufrir las consecuencias, o leer este libro y aprender a comunicarte mejor cuando más importa.&lt;/p>
&lt;blockquote>
&lt;p>Si no lo hablas, lo actuarás.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="capitulos">Capítulos&lt;/h3>
&lt;ol>
&lt;li>Conoce tu corazón&lt;/li>
&lt;li>Asegura la seguridad&lt;/li>
&lt;li>Cuidado con volver a tu estilo bajo estrés&lt;/li>
&lt;li>Haz el contenido seguro&lt;/li>
&lt;li>Controla tus emociones&lt;/li>
&lt;li>Comparte tus historias&lt;/li>
&lt;li>Pasa de la conversación a los resultados&lt;/li>
&lt;/ol>
&lt;h2 id="puntos-clave">Puntos clave&lt;/h2>
&lt;p>Una conversación crucial es una confrontación delicada con tres características:&lt;/p>
&lt;ol>
&lt;li>Hay mucho en juego&lt;/li>
&lt;li>Las opiniones difieren&lt;/li>
&lt;li>Las emociones son fuertes&lt;/li>
&lt;/ol>
&lt;p>Ejemplos:&lt;/p>
&lt;ul>
&lt;li>Llamar a un cliente que no ha pagado&lt;/li>
&lt;li>Hablar con tu jefe sobre un ascenso que se retrasa&lt;/li>
&lt;li>Confrontar a un compañero que no cumple con su parte&lt;/li>
&lt;li>Discutir la herencia familiar con tus hermanos&lt;/li>
&lt;/ul>
&lt;p>Navegar una conversación crucial es como desactivar una bomba. Un movimiento en falso y las emociones explotan. La clave está en mantener un diálogo honesto y productivo.&lt;/p>
&lt;p>Son conversaciones no planificadas. Las evitamos porque creemos que las empeoraremos. Reaccionamos mal porque somos humanos, y los humanos “se comportan peor en los momentos más críticos”.&lt;/p>
&lt;h3 id="la-historia">La “Historia”&lt;/h3>
&lt;p>Todos llegamos a una conversación crucial con una historia ya armada:&lt;/p>
&lt;ul>
&lt;li>“A mi compañero no le importa el proyecto porque no viene a las reuniones”&lt;/li>
&lt;li>“A mi jefe no le importa mi carrera porque no me ha ascendido”&lt;/li>
&lt;/ul>
&lt;p>Si entras con esa historia en mente, no hay espacio para el diálogo. Tu mente ya decidió.&lt;/p>
&lt;h4 id="framework-cuando-yo">Framework Cuando… Yo…&lt;/h4>
&lt;p>Para abrir espacio al diálogo, asume que no conoces toda la historia. &lt;strong>Necesitas la ayuda de la otra persona&lt;/strong>. Usa este formato:&lt;/p>
&lt;blockquote>
&lt;p>&lt;strong>Cuando&lt;/strong> [no vienes a las reuniones del equipo],
&lt;strong>Yo&lt;/strong> [temo que no te importe este proyecto].&lt;/p>
&lt;/blockquote>
&lt;p>Invita a la otra persona a compartir su propio “Cuando… Yo…”. Así pueden descubrir juntos el problema, malentendido o desalineación que existe.&lt;/p>
&lt;p>La clave es ser asertivo y honesto con los hechos, no pasivo-agresivo. Esto reduce la actitud defensiva y facilita aclarar la situación.&lt;/p>
&lt;h3 id="objetivo-comun">Objetivo común&lt;/h3>
&lt;p>Para evitar el choque y volver a un diálogo productivo, convence a la otra persona de que no eres su enemigo. Estáis del mismo lado. Comunica un objetivo, valor o propósito compartido:&lt;/p>
&lt;blockquote>
&lt;p>“No quiero pelear. Solo busco una forma de que ambos consigamos [objetivo común].”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Sé que a los dos nos importa [valor común]. Veamos cómo conseguir lo que ambos queremos.”&lt;/p>
&lt;/blockquote>
&lt;p>Asume buena fe. Cuanto más te involucres en un diálogo productivo, más fácil será encontrar &lt;strong>acuerdos&lt;/strong> y &lt;strong>trabajar juntos&lt;/strong> para resolver el problema de fondo.&lt;/p>
&lt;hr />
&lt;h3 id="keynote-dominando-el-arte-de-las-conversaciones-cruciales">Keynote: Dominando el Arte de las Conversaciones Cruciales&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/uc3ARpccRwQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h4 id="resumen-en-video">Resumen en Video&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Q2yG142cyNg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>¿Cómo Testear Métodos Privados?</title><subtitle>Testeando métodos privados. ¿Cuándo y cómo?</subtitle><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2023-10-20T00:00:00+00:00</published><updated>2023-10-20T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/how-to-test-private-methods/"/><id>https://chemaclass.com/es/blog/how-to-test-private-methods/</id><summary type="html">De vez en cuando he tenido que enfrentar esta pregunta: ¿cómo testear métodos privados? He recopilado en un artículo las técnicas que suelo usar.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-10-20/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Esta pregunta me la han hecho muchas veces a lo largo de los años. Aquí recopilo mis ideas al respecto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="respuesta-corta">Respuesta corta&lt;/h2>
&lt;p>Nunca.&lt;/p>
&lt;h2 id="respuesta-larga">Respuesta larga&lt;/h2>
&lt;p>Nunca jamás.&lt;/p>
&lt;hr />
&lt;h2 id="y-si">¿Y si…?&lt;/h2>
&lt;p>Si realmente quieres testear un método privado, considera extraer esa lógica del método privado en una clase separada, y escribe un test unitario para el comportamiento de esa clase.&lt;/p>
&lt;blockquote>
&lt;p>Para este, me inspiré en el &lt;a rel="external" href="https://franiglesias.github.io/test-private-methods/">post original&lt;/a> de Fran Iglesias.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Ambiente de Trabajo No Saludable</title><subtitle>Reconociendo las señales de alerta de un lugar de trabajo no saludable</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2023-10-11T00:00:00+00:00</published><updated>2023-10-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/unhealthy-working-environment/"/><id>https://chemaclass.com/es/blog/unhealthy-working-environment/</id><summary type="html">Un ambiente de trabajo tóxico tiene varios síntomas que afectan el bienestar físico y mental. Aprende a reconocerlos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-10-11/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Un ambiente de trabajo no saludable tiene varios síntomas que afectan el bienestar físico y mental de las personas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Cuando escribía sobre &lt;a href="/es/blog/the-peter-principle/">El Principio de Peter&lt;/a>, mencioné: &lt;em>“Hablad entre vosotros. Si sientes que no puedes, eso es &lt;strong>síntoma de un ambiente de trabajo no saludable&lt;/strong>, y es un problema mayor.”&lt;/em> Pero, ¿cuáles son esos síntomas?&lt;/p>
&lt;h2 id="sintomas">Síntomas&lt;/h2>
&lt;p>De todos los posibles, estos son los que destacaría: alto estrés, mala comunicación, falta de reconocimiento, microgestión, falta de equilibrio trabajo-vida, trato injusto, pocas oportunidades de crecimiento, conflictos tóxicos entre compañeros, falta de objetivos claros, alta rotación, baja moral y cansancio constante.&lt;/p>
&lt;p>Vamos uno por uno.&lt;/p>
&lt;h3 id="alto-estres">Alto estrés&lt;/h3>
&lt;p>Estrés y presión excesivos. Puede venir de cargas de trabajo pesadas, expectativas irreales o falta de apoyo.&lt;/p>
&lt;h3 id="mala-comunicacion">Mala comunicación&lt;/h3>
&lt;p>La comunicación ineficaz (entre compañeros, equipos o con los jefes) lleva a malentendidos, frustración y conflictos.&lt;/p>
&lt;h3 id="falta-de-reconocimiento">Falta de reconocimiento&lt;/h3>
&lt;p>Cuando sientes que tu esfuerzo no se reconoce ni recompensa, te desmotivas y tu satisfacción laboral baja.&lt;/p>
&lt;h3 id="microgestion">Microgestión&lt;/h3>
&lt;p>Los jefes excesivamente controladores asfixian la creatividad y la autonomía. Eso frustra y reduce la satisfacción en el trabajo.&lt;/p>
&lt;h3 id="falta-de-equilibrio-trabajo-vida">Falta de equilibrio trabajo-vida&lt;/h3>
&lt;p>Un equilibrio sano entre trabajo y vida personal es esencial. Jornadas largas, horas extra excesivas o expectativas irreales llevan al agotamiento y bajan la productividad.&lt;/p>
&lt;h3 id="trato-injusto">Trato injusto&lt;/h3>
&lt;p>La discriminación, el favoritismo o las oportunidades desiguales crean una atmósfera tóxica y divisiva.&lt;/p>
&lt;h3 id="falta-de-oportunidades-de-crecimiento">Falta de oportunidades de crecimiento&lt;/h3>
&lt;p>Cuando sientes que no hay espacio para avanzar profesionalmente, te desconectas y te sientes insatisfecho con tu rol.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-10-11/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h3 id="conflictos-toxicos-entre-companeros">Conflictos tóxicos entre compañeros&lt;/h3>
&lt;p>Desacuerdos constantes o una atmósfera hostil entre compañeros crean un ambiente tóxico.&lt;/p>
&lt;h3 id="falta-de-objetivos-claros">Falta de objetivos claros&lt;/h3>
&lt;p>Necesitas orientación clara sobre tu rol, responsabilidades y lo que se espera de ti. Objetivos difusos o que cambian constantemente generan confusión y frustración.&lt;/p>
&lt;h3 id="alta-rotacion">Alta rotación&lt;/h3>
&lt;p>Si la gente se va constantemente, es señal de que el ambiente no funciona para retener talento a largo plazo.&lt;/p>
&lt;h3 id="baja-moral-y-motivacion">Baja moral y motivación&lt;/h3>
&lt;p>Cuando la gente está desmotivada de forma constante, la productividad baja y el ambiente se vuelve negativo.&lt;/p>
&lt;h3 id="cansancio-fisico-o-emocional-constante">Cansancio físico o emocional constante&lt;/h3>
&lt;p>Exponerse mucho tiempo a un ambiente así lleva al agotamiento físico y emocional, incluso a problemas de salud mental.&lt;/p>
&lt;blockquote>
&lt;p>Estos síntomas varían de un sitio a otro. Abordarlos rápido es clave para crear un ambiente sano y productivo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2023-10-11/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;h2 id="que-puedes-hacer-al-respecto">¿Qué puedes hacer al respecto?&lt;/h2>
&lt;h3 id="tu-mismo">Tú mismo&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/es/blog/embrace-the-change/">Abraza el cambio&lt;/a> &lt;small>¿Quién se ha llevado mi queso?&lt;/small>&lt;/li>
&lt;li>&lt;a href="/es/blog/the-process-itself-is-the-goal/">El proceso en sí mismo es el objetivo&lt;/a> &lt;small>Cómo enfocarse y tener autodisciplina&lt;/small>&lt;/li>
&lt;li>&lt;a href="/es/blog/have-you-always-been-like-this/">¿Siempre has sido así?&lt;/a> &lt;small>Cómo encontrar un equilibrio entre crecimiento y felicidad&lt;/small>&lt;/li>
&lt;/ul>
&lt;h3 id="tus-managers-y-lideres">Tus managers y líderes&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/es/blog/great-leadership">Gran liderazgo&lt;/a> &lt;small>El liderazgo comienza dentro de tu propia vida y comportamiento&lt;/small>&lt;/li>
&lt;li>&lt;a href="/es/blog/understanding-people">Entendiendo a las personas&lt;/a> &lt;small>Malentendidos, comunicación efectiva y autorreflexión&lt;/small>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>El Principio de Peter</title><subtitle>El ascenso a un nivel de incompetencia</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2023-09-30T00:00:00+00:00</published><updated>2023-09-30T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-peter-principle/"/><id>https://chemaclass.com/es/blog/the-peter-principle/</id><summary type="html">Cuando alguien es competente en su trabajo, lo ascienden a un puesto que requiere otras habilidades. Si no las tiene, será incompetente y no lo ascenderán más.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-09-30/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Cuando alguien es competente en su trabajo, lo ascienden a un puesto que requiere otras habilidades. Si no las tiene, será incompetente y no lo ascenderán más.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Si es competente en el nuevo rol, lo ascenderán otra vez. Y seguirá subiendo hasta alcanzar un nivel donde sea incompetente. Ahí se quedará atascado: la “meseta de Peter”.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>Hay incentivos en juego. La gente trabaja duro para alcanzar cierta posición o salario. Una vez que lo logra, algunos se relajan. Cuando pierden la pasión, dejan de aprender. No se mantienen al día con los nuevos desarrollos y su trabajo empeora. Para proteger su zona de confort, rechazan cualquier idea o persona nueva que pueda incomodarlos. Los empleados incompetentes suelen estar insatisfechos.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/IbFr5DAyZBM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h2 id="has-vivido-el-principio-de-peter">¿Has vivido el Principio de Peter?&lt;/h2>
&lt;p>Lo he visto varias veces en mis 10 años de carrera, trabajando en diferentes empresas, con personas de distintos departamentos y niveles. Es más peligroso de lo que parece porque puede matar el espíritu de un ambiente sano.&lt;/p>
&lt;p>Ser consciente de esto te ayuda a evitar que te pase. O al menos a detectar las señales cuando empiece a ocurrirte.&lt;/p>
&lt;h3 id="que-puedes-hacer">¿Qué puedes hacer?&lt;/h3>
&lt;p>Si reconoces esta situación en tu empresa, ayuda a crear conciencia. Hablad entre vosotros. Si sientes que no puedes, eso es síntoma de un &lt;a href="/es/blog/unhealthy-working-environment/">ambiente de trabajo no saludable&lt;/a>, y eso es un problema mayor.&lt;/p>
&lt;p>Si eres tú quien lo está viviendo en primera persona, te recomiendo:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Habla con tu manager. Pide formación, mentoría o lo que necesites para adquirir las habilidades que te faltan: confianza, comunicación, o lo que ayude a tu nuevo rol. Quizás no recibiste la formación adecuada para un trabajo que requiere habilidades diferentes.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Considera volver a donde eras bueno y seguir dominando eso. Ayuda e inspira a quienes están a tu lado. No todo el mundo tiene que ascender siempre.&lt;/p>
&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Es Tu Barco</title><subtitle>Técnicas de Gestión del Mejor Maldito Barco de la Marina</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2023-09-20T00:00:00+00:00</published><updated>2023-09-20T00:00:00+00:00</updated><author><name>
D. Michael Abrashoff</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/its-your-ship/"/><id>https://chemaclass.com/es/readings/its-your-ship/</id><summary type="html">Un ex comandante de la Marina cuenta cómo transformó la cultura de su destructor aplicando principios de liderazgo centrados en la gente.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>D. Michael Abrashoff comandó el USS Benfold, un destructor de misiles guiados. En este libro cuenta cómo transformó el rendimiento y la cultura de su barco aplicando principios de liderazgo centrados en las personas.&lt;/p>
&lt;h2 id="puntos-clave">Puntos clave&lt;/h2>
&lt;ul>
&lt;li>
&lt;p>&lt;strong>Dar poder al equipo&lt;/strong>: Cuando la gente siente que confían en ella, se apropia de su trabajo y rinde mejor.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Escuchar y comunicar&lt;/strong>: La escucha activa y la comunicación abierta construyen confianza. Abrashoff se esforzó por conocer las opiniones y preocupaciones de su tripulación.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Liderar con el ejemplo&lt;/strong>: Los líderes marcan el estándar con sus acciones. Abrashoff trabajó para ser el modelo que esperaba de los demás.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Delegar responsabilidad&lt;/strong>: Dar control a la gente sobre sus áreas de experiencia les permite apropiarse de sus roles.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Fomentar la innovación&lt;/strong>: Abrashoff animaba a su tripulación a proponer e implementar mejoras en eficiencia y efectividad.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Celebrar los logros&lt;/strong>: Reconocer las contribuciones del equipo motiva a seguir rindiendo al máximo.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Asumir riesgos calculados&lt;/strong>: Abrashoff no dudaba en desafiar procedimientos establecidos si creía que llevaría a mejoras.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Construir confianza y respeto&lt;/strong>: Las relaciones sólidas crean camaradería y confianza mutua, pilares del liderazgo efectivo.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Ser adaptable&lt;/strong>: En entornos cambiantes, hay que ajustarse rápido a nuevas circunstancias.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>&lt;strong>Mejorar continuamente&lt;/strong>: Animó a su tripulación a buscar desarrollo profesional y aspirar siempre a la excelencia.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>El libro ofrece perspectivas valiosas sobre liderazgo aplicables a cualquier organización. El enfoque de Abrashoff se centra en empoderar al equipo, fomentar la comunicación abierta y buscar siempre formas de mejorar.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/A-mZW2VZZgY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Día de los Trífidos</title><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2023-08-13T00:00:00+00:00</published><updated>2023-08-13T00:00:00+00:00</updated><author><name>
John Wyndham</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-day-of-the-triffids/"/><id>https://chemaclass.com/es/readings/the-day-of-the-triffids/</id><summary type="html">Fantástico, aterrador y plausible a partes iguales. Los personajes son personas reales, arrancadas de su civilización y lanzadas al horror de un mundo dominado por plantas asesinas.</summary><content type="html">&lt;p>Fantástico, aterrador y plausible a partes iguales. Los personajes son personas reales, arrancadas de su civilización y lanzadas al horror de un mundo dominado por los “trífidos”.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Los trífidos son plantas grotescas y peligrosas de más de dos metros. Se cultivaban por su aceite de alta calidad. Mientras los humanos mantenían el control, eran un recurso valioso. Pero un desastre global lo cambia todo. Los trífidos aprovechan su oportunidad y se convierten en una amenaza terrible.&lt;/p>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OQfdjhDOuCo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Resumen basado en la película “&lt;a rel="external" href="https://www.imdb.com/title/tt1332653/">The Day of the Triffids&lt;/a> (2009)”&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>¿Cómo Consigues que Todos se Sumen?</title><subtitle>¿Cómo tratas con personas reacias al cambio?</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><published>2023-08-02T00:00:00+00:00</published><updated>2023-08-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/how-do-you-get-everyone-on-board/"/><id>https://chemaclass.com/es/blog/how-do-you-get-everyone-on-board/</id><summary type="html">Fui invitado al WeAreDevelopers World Congress para dar una charla técnica sobre mi experiencia con Extreme Programming y los profundos beneficios de abrazar el cambio en tu trabajo y vida.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-08-02/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Fui invitado al WeAreDevelopers World Congress para dar una charla técnica sobre mi experiencia con XP y los profundos beneficios de abrazar el cambio en tu trabajo y vida.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Con más de 12k asistentes, 300 speakers y ~10 tracks en paralelo, fui invitado a dar no una sino dos charlas. Una es sobre mi experiencia con Extreme Programming y los profundos beneficios de abrazar el cambio en tu trabajo y vida.&lt;/p>
&lt;p>Disfruté especialmente la participación de la audiencia y las opiniones que me dieron después de cada charla. En particular, una pregunta que había enfrentado muchas veces durante mi carrera: “&lt;strong>¿Cómo tratas con personas reacias al cambio?&lt;/strong>”&lt;/p>
&lt;hr />
&lt;p>Este es uno de los temas más complejos que afecta a cualquier equipo, independientemente de su profesión. Pero, especialmente en nuestra industria del software en constante cambio, si eres reacio a abrazar el cambio, harás más daño que bien a tu equipo, carrera y a ti mismo.&lt;/p>
&lt;p>Como se indica en &lt;a href="/es/readings/peopleware/">Peopleware&lt;/a>, “&lt;em>nuestra profesión del software es menos sobre computadoras y más sobre humanos y sus interacciones&lt;/em>”. Este es usualmente el problema raíz para las personas; es un problema humano primero.&lt;/p>
&lt;p>Para convertirte en verdaderamente agile, debes tener una buena base de &lt;strong>confianza&lt;/strong> entre tus compañeros. Sin confianza, &lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">no hay equipo&lt;/a>, y la responsabilidad principal de un &lt;a href="/es/blog/great-leadership/">buen líder&lt;/a> es ayudar a crear un ambiente de confianza sin miedo a conflictos saludables. Todos sienten que pueden hablar y expresarse libremente en un ambiente seguro.&lt;/p>
&lt;p>Un &lt;strong>ambiente seguro&lt;/strong> significa que no necesitas llevar una armadura todo el día para protegerte de otros, así que tendrás más energía para impulsar la excelencia en tu lugar de trabajo.&lt;/p>
&lt;p>Pero aún así, a pesar de tu esfuerzo por crear un ambiente de confianza y seguro, podrías encontrar personas reacias al cambio. Para esas, podrías necesitar probar diferentes enfoques. ¿Cómo puedes ayudar a crear confianza entre todos?&lt;/p>
&lt;blockquote>
&lt;p>No tengas miedo al fracaso; en cambio, piensa que todo lo que haces es un experimento del que aprenderás algo. Y cualquier cosa que te acerque a un mejor estado es mejor que nada.&lt;/p>
&lt;/blockquote>
&lt;p>La clave aquí es encontrar una manera de conectar con las personas entendiendo cómo entienden su potencial para que puedas empoderarlas y ayudarlas a crecer.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-08-02/middle.jpg" alt="middle" />&lt;/p>
&lt;h3 id="concede-tiempo-para-leer">Concede tiempo para leer&lt;/h3>
&lt;p>Las reuniones 1:1 son ideales para establecer conexiones personales con tus compañeros. Sin embargo, podrías sentir que la situación requiere un empujón adicional, especialmente si tienes a alguien a quien no le gusta hablar de sí mismo, y es difícil saber qué piensan sobre lo que está pasando.&lt;/p>
&lt;p>Aquí hay una idea que podrías probar:&lt;/p>
&lt;ul>
&lt;li>Dales un libro que contenga ideas o conocimiento que podría beneficiar a todos.&lt;/li>
&lt;li>Permite leer este libro durante el tiempo de trabajo, ej: los viernes después del almuerzo. Esta es una inversión de la empresa para el desarrollo de tu equipo.&lt;/li>
&lt;li>El libro debería leerse en 3-4 horas, o un par de viernes, dependiendo del número de páginas.&lt;/li>
&lt;li>No esperes hasta que el libro esté terminado para hablar sobre él. Sigue el progreso.&lt;/li>
&lt;li>Tendrás grandes temas para discutir durante tu próximo 1:1.&lt;/li>
&lt;/ul>
&lt;h3 id="podrias-usar-cualquier-libro-para-este-ejercicio">Podrías usar cualquier libro para este ejercicio&lt;/h3>
&lt;p>Cualquier libro estaría bien. Aún así, si estás buscando grandes ejemplos, estos son mis tres favoritos para empezar a impulsar una conversación:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>&lt;a href="/es/readings/who-moved-my-cheese/">Who moved my cheese?&lt;/a>&lt;/strong> es una metáfora de las diferentes actitudes que las personas adoptan como parte de su identidad en la vida cuando tienen que confrontar cualquier cambio.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/es/readings/extreme-programming-explained/">Extreme Programming Explained&lt;/a>&lt;/strong> contiene una compilación de valores, principios y prácticas altamente relacionados con el toque humano en nuestra industria del software. Enfocándose en el aspecto del equipo, colaboración con tus compañeros y creando un sentido de maestría y propósito en nuestro oficio.&lt;/li>
&lt;li>&lt;strong>&lt;a href="/es/readings/start-with-why/">Start with Why&lt;/a>&lt;/strong> aborda la importancia de empezar con “¿Por qué?” para definir un propósito para todo lo que hacemos.&lt;/li>
&lt;/ul>
&lt;p>Experimenta con cualquier libro, marco de tiempo, persona o grupo para crear un entendimiento compartido de los valores y motivaciones fundamentales del equipo. El objetivo es participar en el intercambio activo de conocimiento mientras cultivas un equipo que siente que pertenece, fomentando la pasión en el trabajo. Esto ayudará a crear confianza, y puedes empezar a construir sobre ella.&lt;/p>
&lt;blockquote>
&lt;p>Si estás buscando libros para ayudar a escalar tus habilidades de liderazgo, aquí tienes: “&lt;a href="/es/blog/great-leadership">Gran Liderazgo&lt;/a>”.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>No puedes forzar a las personas a cambiar. Por el contrario, cuanto más intentes forzarlo, más difícil te lo pondrán. En cambio, enfócate en entenderlas reconociendo lo que sienten y pensando sobre lo que hacen para crear un terreno común de &lt;a href="/es/blog/understanding-people">entendimiento mutuo&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-08-02/footer.jpg" alt="footer" />&lt;/p>
&lt;blockquote>
&lt;p>Fotos mías en WeAreDevelopers World Congress, Berlín 2023.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>El Libro de Satoshi</title><subtitle>Los escritos del creador anónimo de Bitcoin, recopilados por primera vez</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-07-10T00:00:00+00:00</published><updated>2023-07-10T00:00:00+00:00</updated><author><name>
Phil Champagne</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-book-of-satoshi/"/><id>https://chemaclass.com/es/readings/the-book-of-satoshi/</id><summary type="html">Recopilación de los emails, publicaciones y escritos de Satoshi Nakamoto entre 2008 y 2010, detallando la creación de Bitcoin, sus decisiones de diseño y la visión detrás del protocolo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>¿Te has preguntado alguna vez quién es Satoshi Nakamoto, el creador anónimo de Bitcoin?&lt;/p>
&lt;p>Bitcoin nació en 2009 y revolucionó nuestra forma de entender el dinero. Sin gobierno ni banco central detrás, completamente electrónico, funciona gracias a sistemas criptográficos avanzados.&lt;/p>
&lt;p>La identidad de Satoshi es tan virtual como la moneda que creó. Solo existe en las publicaciones online donde presentó y explicó Bitcoin en sus primeros días. Puede ser una persona o un grupo, nadie lo sabe. Este libro recopila por primera vez esos escritos esenciales.&lt;/p>
&lt;p>El Libro de Satoshi permite analizar lo que su creador escribió durante los dos años de su “vida pública”, antes de desaparecer de Internet… al menos bajo ese nombre.&lt;/p>
&lt;p>Su actividad pública comenzó el 1 de noviembre de 2009 con la publicación del paper fundacional. Terminó más o menos cuando PC World especuló sobre una posible conexión entre Bitcoin y WikiLeaks. ¿Existía esa conexión? Tú decides.&lt;/p>
&lt;p>Probablemente nunca sabremos quién es Nakamoto. Estos escritos son todo lo que el mundo tendrá de él sobre la creación, funcionamiento y teoría detrás de Bitcoin. Si quieres aprender sobre Bitcoin, ve directo a la fuente: las palabras de su propio creador.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/kaBmAV5DaXI"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Bucle sin Fin</title><subtitle>Escribiendo para ayudarme a dormir</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-07-05T00:00:00+00:00</published><updated>2023-07-05T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/never-ending-loop/"/><id>https://chemaclass.com/es/blog/never-ending-loop/</id><summary type="html">A veces me cuesta irme a la cama con la mente en blanco porque muy a menudo pienso en mi próxima lectura, aprendizaje, charla, o qué escribiré este mes o el siguiente.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-07-05/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>A veces me cuesta irme a la cama con la mente en blanco porque muy a menudo pienso en mi próxima lectura, aprendizaje, charla, o qué escribiré este mes o el siguiente.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Es curioso recordar que hace ocho años, me quedaba despierto durante horas hasta que todo tipo de pensamientos salían en papel, así que solía escribir uno o más de ellos cada semana. A veces pensamientos inocentes venían a mi cerebro y no me dejaban dormir correctamente. A veces profundos y llenos de preocupación que reflejaban cómo luchaba con ciertas situaciones que estaba viviendo o recordando de mi pasada juventud.&lt;/p>
&lt;p>Seguí escribiendo durante tres años; escribí mucho —otro formato del que suelo hacer hoy; un &lt;a rel="external" href="https://chemaclass.com/books/">libro&lt;/a> profundo y personal sobre mis pensamientos y sentimientos con la motivación principal de leerlos después y hacer algunas retrospectivas para ayudarme a entenderme mejor. Hoy en día, me gusta mezclar mi pasión por la calidad del software y los rompecabezas de personas para lograr la verdadera excelencia en mi profesión, siempre apuntando a un egoísmo honesto y saludable de ayudar a otros que podrían ayudarme después. Cuanto mejores sean las personas a mi alrededor, mejor ayudarán a otros y a mí.&lt;/p>
&lt;p>En aquel entonces, solía escribir sobre mis sentimientos actuales y pasados, siempre con un toque de ilusión queriendo expresarme de manera diferente para mi yo futuro. Recuerdo claramente, al principio, quería que los lectores principales fueran mis hermanos, mi familia, para saber cómo me iba tan lejos de todos ellos —después de emigrar a otro país, lejos de mi familia. Sin embargo, a medida que pasaban los meses, el lector principal cambió a no ser nadie más que yo mismo.&lt;/p>
&lt;p>Pasé horas en cada pensamiento, página, capítulo… Redactando la idea inicial y luego leyéndola en voz alta una vez, dos veces, de nuevo, y otra vez al día siguiente. Ayudando de esta manera a descubrir esa parte de mí mismo que intentaba reflejar lo que estaba pasando dentro.&lt;/p>
&lt;p>Puedo ver algunas similitudes hoy en día. Sin embargo, ya no veo la necesidad de escribir sobre esos profundos pensamientos antiguos porque sanaron. En cambio, puedo reflexionar y ver cómo lo hicieron y cómo.&lt;/p>
&lt;p>Escribir es una de mis formas favoritas de expresarme, especialmente cuando no puedo dormir. Me recuerda a esos años, y pienso enormemente en la increíble evolución desde entonces.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-07-05/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;blockquote>
&lt;p>Fotos originales de mi viaje a la Toscana, Italia, el mes pasado.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Fahrenheit 451</title><subtitle>Un clásico distópico cuyo mensaje hoy resulta más relevante que nunca.</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2023-06-28T00:00:00+00:00</published><updated>2023-06-28T00:00:00+00:00</updated><author><name>
Ray Bradbury</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/fahrenheit-451/"/><id>https://chemaclass.com/es/readings/fahrenheit-451/</id><summary type="html">La obra maestra distópica de Ray Bradbury sobre un bombero cuyo trabajo es quemar libros, hasta que un encuentro casual le hace cuestionar la guerra de su sociedad contra el conocimiento.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Guy Montag es bombero. Su trabajo: &lt;strong>destruir&lt;/strong> la mercancía más ilegal que existe, los &lt;strong>libros&lt;/strong>, junto con las casas donde se esconden. Montag nunca cuestiona lo que hace. Vuelve cada día a su vida gris y a su esposa Mildred, que pasa las horas pegada a su “familia de televisión”.&lt;/p>
&lt;p>Todo cambia cuando conoce a Clarisse, una vecina joven y peculiar. Ella le habla de un pasado donde la gente no vivía con miedo. Le muestra un presente donde las ideas de los libros valen más que la charla vacía de la televisión. Montag empieza a cuestionar todo lo que siempre dio por sentado.&lt;/p>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/YMZcp0EQO2s"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Otro gran resumen: &lt;a rel="external" href="https://youtu.be/_agaWPlVG8Q">https://youtu.be/_agaWPlVG8Q&lt;/a>&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>La Guerra del Tamaño de Bloque</title><subtitle>La batalla por el control del protocolo de Bitcoin</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2023-06-20T00:00:00+00:00</published><updated>2023-06-20T00:00:00+00:00</updated><author><name>
Jonathan Bier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-blocksize-war/"/><id>https://chemaclass.com/es/readings/the-blocksize-war/</id><summary type="html">Jonathan Bier narra la guerra del tamaño de bloque de Bitcoin (2015-2017), explorando los actores clave, estrategias y batallas ideológicas que definieron quién controla el protocolo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Este libro cuenta la guerra del tamaño de bloque de Bitcoin, que duró desde agosto de 2015 hasta noviembre de 2017. En apariencia, la batalla giraba en torno a cuántos datos podía contener cada bloque. Pero el conflicto destapó algo más profundo: quién controla las reglas del protocolo de Bitcoin.&lt;/p>
&lt;p>El autor explora a los personajes principales del conflicto. Ofrece cobertura desde las trincheras y también tras bastidores, durante las fases más intensas de la lucha.&lt;/p>
&lt;p>El relato incluye conversaciones con actores clave de ambos bandos. Descubrimos sus motivaciones, estrategias y formas de pensar mientras la agotadora campaña avanzaba.&lt;/p>
&lt;h2 id="capitulos">Capítulos&lt;/h2>
&lt;ol>
&lt;li>Primer golpe&lt;/li>
&lt;li>Marcha hacia la guerra&lt;/li>
&lt;li>Scaling I - Montreal&lt;/li>
&lt;li>Scaling II - Hong Kong&lt;/li>
&lt;li>SegWit&lt;/li>
&lt;li>Lightning network&lt;/li>
&lt;li>Bitcoin Classic&lt;/li>
&lt;li>Mesa redonda de Hong Kong&lt;/li>
&lt;li>Faketoshi&lt;/li>
&lt;li>The DAO&lt;/li>
&lt;li>Scaling III - Milán&lt;/li>
&lt;li>Bitcoin unlimited&lt;/li>
&lt;li>Exchanges&lt;/li>
&lt;li>ASICBoost&lt;/li>
&lt;li>Dragons’s Den&lt;/li>
&lt;li>Litecoin&lt;/li>
&lt;li>User - Activated softfork&lt;/li>
&lt;li>Acuerdo de Nueva York&lt;/li>
&lt;li>Bitcoin Cash&lt;/li>
&lt;li>SegWit2x&lt;/li>
&lt;li>Victoria&lt;/li>
&lt;/ol>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6YtS5ZNuuTw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Indefensión Aprendida</title><subtitle>Una aceptación de impotencia</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-06-08T00:00:00+00:00</published><updated>2023-06-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/learned-helplessness/"/><id>https://chemaclass.com/es/blog/learned-helplessness/</id><summary type="html">La indefensión aprendida es el comportamiento que muestra una persona tras sufrir repetidamente situaciones adversas que escapan a su control. Se origina cuando alguien acepta su impotencia y deja de intentar escapar o evitar dichas situaciones.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-06-08/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>La indefensión aprendida es el comportamiento que muestra una persona tras sufrir repetidamente situaciones adversas que escapan a su control.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Se origina cuando alguien acepta su impotencia y deja de intentar escapar o evitar dichas situaciones.&lt;/p>
&lt;h2 id="experimentos">Experimentos&lt;/h2>
&lt;h3 id="un-aula-con-diferentes-evaluaciones">Un aula con diferentes evaluaciones&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/gFmFOmprTt0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Charisse Nixon, Ph.D Psicóloga del Desarrollo en Penn State Erie, The Behrend College y Directora de Investigación y Evaluación para The Ophelia Project discute el fenómeno de la indefensión aprendida.&lt;/p>
&lt;/blockquote>
&lt;h3 id="original-descargas-electricas-y-arneses">Original: Descargas eléctricas y arneses&lt;/h3>
&lt;p>En 1967, el psicólogo americano Martin Seligman en la Universidad de Pennsylvania investigó descargas eléctricas y arneses.&lt;/p>
&lt;p>En la &lt;strong>Parte 1&lt;/strong> de este estudio, tres grupos de perros fueron colocados en arneses. Los perros del Grupo 1 fueron puestos en un arnés durante algún tiempo y liberados después. Los Grupos 2 y 3 consistían en “parejas acopladas.” A los perros del Grupo 2 se les daban descargas eléctricas aleatorias, que el perro podía terminar presionando una palanca. Cada perro del Grupo 3 estaba emparejado con un perro del Grupo 2; cada vez que un perro del Grupo 2 recibía una descarga, su perro emparejado en el Grupo 3 recibía una descarga de la misma intensidad y duración, pero su palanca no detenía la descarga. Para un perro del Grupo 3, parecía que la descarga terminaba aleatoriamente porque su perro emparejado del Grupo 2 estaba causando que se detuviera. Así, para los perros del Grupo 3, la descarga era “ineludible.”&lt;/p>
&lt;p>En la &lt;strong>Parte 2&lt;/strong> del experimento, los mismos tres grupos de perros fueron testeados en un aparato de caja de lanzadera (una cámara que contiene dos compartimentos rectangulares divididos por una barrera de unos pocos centímetros de altura). Los perros podían escapar de las descargas en un lado de la caja saltando sobre una partición baja hacia el otro. Los perros de los Grupos 1 y 2 aprendieron rápidamente esta tarea y escaparon de la descarga. La mayoría de los perros del Grupo 3, que previamente habían “aprendido” que nada de lo que hicieran afectaba las descargas, se tumbaban pasivamente y gemían cuando recibían descargas.&lt;/p>
&lt;hr />
&lt;p>Aunque este experimento fue demostrado con diferentes tipos de animales, también aplica a las personas. Esto es visible en niños cuando integran fracaso temprano para pedir ayuda, frustración, rendirse, poca motivación y procrastinación. Y estos puntos continúan mientras las personas envejecen.&lt;/p>
&lt;blockquote>
&lt;p>Porque, si “no puedes hacer nada”, ¿para qué intentarlo siquiera?&lt;/p>
&lt;/blockquote>
&lt;p>Todo esto lleva a ansiedad y depresión, y las personas piensan que nada se puede hacer sobre sus situaciones y sentimientos actuales.&lt;/p>
&lt;h2 id="optimismo-aprendido">Optimismo aprendido&lt;/h2>
&lt;p>El antídoto para la indefensión aprendida es el &lt;strong>optimismo aprendido&lt;/strong>. Estas personas son más exitosas, tienen mejor salud general y niveles más bajos de depresión.&lt;/p>
&lt;h3 id="como-lo-practicas">¿Cómo lo practicas?&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Permanencia&lt;/strong>: los eventos malos o fracasos no son permanentes. Así, puedes recuperarte más rápido que las personas atrapadas en estas situaciones. Sin embargo, las cosas buenas o eventos suceden por una buena razón en la que has trabajado.&lt;/li>
&lt;li>&lt;strong>Omnipresencia&lt;/strong>: no generalices el fracaso. Fracasar en un área de tu vida no debería afectar otras áreas.&lt;/li>
&lt;li>&lt;strong>Personalización&lt;/strong>: los eventos malos son externos para culpar, fuera de ti mismo, ya que hiciste todo lo que pudiste haber hecho.&lt;/li>
&lt;/ul>
&lt;p>Aísla el problema y no lo extrapoles a otras áreas. Deja de generalizar el fracaso.&lt;/p>
&lt;hr />
&lt;h3 id="english">English&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Z8n1oUhp-EM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="espanol">Español&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/E99XmEIPmf8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Gestión Ágil de Proyectos</title><subtitle>Una Guía para Principiantes sobre Implementación y Liderazgo Ágil</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-05-31T00:00:00+00:00</published><updated>2023-05-31T00:00:00+00:00</updated><author><name>
Jeremy Savell</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/agile-project-management/"/><id>https://chemaclass.com/es/readings/agile-project-management/</id><summary type="html">Los proyectos Waterfall solían pasarse de presupuesto y entregar software mediocre. En 2001, un grupo de desarrolladores firmó un manifiesto de 68 palabras que cambiaría todo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Una visión general básica y directa de lo que es Agile, presentando algunos ejemplos de frameworks bien conocidos hoy, como Scrum o Kanban—todo condensado en un libro de unas 100 páginas que puedes leer en un par de horas.&lt;/p>
&lt;h2 id="capitulos">Capítulos&lt;/h2>
&lt;ol>
&lt;li>El manifiesto fluido&lt;/li>
&lt;li>Siendo ágil&lt;/li>
&lt;li>Proceso ágil&lt;/li>
&lt;li>Planificando para el éxito&lt;/li>
&lt;li>Comunicación ágil&lt;/li>
&lt;li>Fundamentos de Scrum&lt;/li>
&lt;li>Introducción a Kanban&lt;/li>
&lt;li>Construyendo un equipo adaptativo&lt;/li>
&lt;li>Liderazgo y gestión colaborativa&lt;/li>
&lt;li>Errores comunes detrás del fracaso ágil&lt;/li>
&lt;li>Palabras finales: ágil es adaptación&lt;/li>
&lt;/ol>
&lt;hr />
&lt;blockquote>
&lt;p>“Los beneficios de los proyectos Ágiles se extienden no solo al equipo que lo usa, sino también al cliente que recibe el producto final.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Hay una métrica crítica subyacente que consistentemente lleva al éxito de un proyecto Ágil: la comunicación. La mala comunicación, la poca comunicación, o la comunicación deficiente de cualquier tipo lleva al colapso y fracaso de dicho proyecto.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="puntos-clave">Puntos clave&lt;/h3>
&lt;p>Los proyectos que seguían una metodología &lt;strong>Waterfall&lt;/strong> tendían a exceder sus gastos con el tiempo, mientras que el producto entregado estaba por debajo del estándar y era difícil de usar.&lt;/p>
&lt;p>Esa situación originó que un grupo de desarrolladores firmara un breve manifiesto de 68 palabras en 2001.&lt;/p>
&lt;h4 id="un-breve-trasfondo">Un breve trasfondo&lt;/h4>
&lt;p>Durante los años 1960, el software entró en una gran crisis; crear software era complejo pero cambiarlo después se convirtió en puro caos. &lt;strong>Waterfall&lt;/strong> al rescate.&lt;/p>
&lt;p>&lt;strong>Waterfall&lt;/strong> delineó un conjunto simple y lógico de procesos que una empresa necesitaría seguir para que un proyecto fuera exitoso. Su nombre viene de la metáfora del agua cayendo suavemente en una corriente predecible, constante e incremental. Su ciclo de vida de desarrollo de software estaría en seis pasos simples.&lt;/p>
&lt;ol>
&lt;li>Requisitos&lt;/li>
&lt;li>Análisis&lt;/li>
&lt;li>Diseño&lt;/li>
&lt;li>Código&lt;/li>
&lt;li>Testing&lt;/li>
&lt;li>Operaciones&lt;/li>
&lt;/ol>
&lt;p>Durante 10 años, &lt;strong>Waterfall&lt;/strong> fue la metodología estándar en el universo del software. Y durante 10 años más, el caos persistió. Aunque la intención era buena, la realidad es que el conjunto siempre cambiante de restricciones no se lleva muy bien con esta metodología porque cada paso depende del anterior.&lt;/p>
&lt;p>El 86% del tiempo que una empresa usa el método &lt;strong>Waterfall&lt;/strong> para gestión de proyectos, el cliente recibe software inadecuado o inútil. Muchos proyectos de software no se usaron o nunca se terminaron.&lt;/p>
&lt;p>Durante los años 70 y 80, &lt;strong>Desarrollo Iterativo e Incremental (IID)&lt;/strong> probó ser una opción viable. En los 90 surge la &lt;strong>Entrega Evolutiva (ED)&lt;/strong>, que cambia la situación. El desarrollador es responsable de escuchar las reacciones del usuario temprana y frecuentemente. El usuario comienza a jugar un rol directo en el proceso de desarrollo.&lt;/p>
&lt;p>Unos años después, surgió un nuevo método &lt;strong>Prototipado de Producción Iterativa Rápida (RIPP)&lt;/strong>, más tarde llamado &lt;strong>Desarrollo Rápido de Aplicaciones (RAD)&lt;/strong>, que afirmaba &lt;em>“Software funcionando en 90 días… o te devolvemos tu dinero.”&lt;/em>&lt;/p>
&lt;p>Por último, durante los 90 se definieron en detalle &lt;strong>Extreme Programming (XP)&lt;/strong>, &lt;strong>Scrum&lt;/strong> y &lt;strong>Crystal&lt;/strong>.&lt;/p>
&lt;p>Estas soluciones distintas pero similares estaban descentralizadas, trabajando independientemente unas de otras. Esta realización llevó a esa noche en Utah la unificación de estas ideas bajo una bandera, en un documento.&lt;/p>
&lt;p>&lt;strong>Agile&lt;/strong> se convirtió en el estándar definitivo para el desarrollo de software.&lt;/p>
&lt;h3 id="el-manifiesto-agil">El Manifiesto Ágil&lt;/h3>
&lt;ul>
&lt;li>Individuos e interacciones sobre procesos y herramientas&lt;/li>
&lt;li>Software funcionando sobre documentación comprehensiva&lt;/li>
&lt;li>Colaboración con el cliente sobre negociación de contratos&lt;/li>
&lt;li>Responder al cambio sobre seguir un plan&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Es decir, aunque hay valor en los elementos de la derecha, valoramos más los elementos de la izquierda.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>¿Equipos de QA Dedicados en Software?</title><subtitle>¿Cómo encaja una persona QA dedicada en tu equipo agile?</subtitle><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2023-05-17T00:00:00+00:00</published><updated>2023-05-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/dedicated-qa-teams/"/><id>https://chemaclass.com/es/blog/dedicated-qa-teams/</id><summary type="html">Esto será controvertido, pero hablemos de la posición de QA. La verdad oculta detrás de la falta de calidad del software y por qué esto debería preocuparte si escribes software.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-05-17/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Esto será controvertido, pero hablemos de la posición de QA. La verdad oculta detrás de la falta de calidad del software y por qué esto debería preocuparte si escribes software.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="qa-es-un-rol-no-una-posicion">QA es un rol, no una posición&lt;/h2>
&lt;p>Como desarrollador de software, cuando escribes software, eres responsable de la calidad de lo que sea que estés escribiendo. Una tercera persona actuando como QA podría encontrar que tu solución no funciona como se esperaba, pero ¿cómo es posible? Podrías argumentar que podrían encontrar casos límite, pero ¿cómo podría ser posible si el software ya fue testeado previamente?&lt;/p>
&lt;p>El objetivo final de un equipo de software es hacer la posición de QA inútil porque no deberían encontrar nada más que software bien funcionando. Pero ¿cómo llegas a ese punto? ¿Cómo podemos asegurar que el software que escribimos funciona como se espera y no hay necesidad de una persona QA en nuestro equipo?&lt;/p>
&lt;h2 id="la-verdad-oculta-detras-de-la-falta-de-calidad-del-software">La verdad oculta detrás de la falta de calidad del software&lt;/h2>
&lt;p>Desafortunadamente, en nuestra industria del software, la demanda de proyectos “rápidos, rápidos y sucios” terminó en MVPs pobremente desarrollados simplemente aplicando parches y código sobre código con solo testing manual comprobando caminos felices, a veces incluso ignorando casos límite.&lt;/p>
&lt;blockquote>
&lt;p>“La fecha límite es en una semana, ¡así que mejor termínalo a tiempo!”&lt;/p>
&lt;/blockquote>
&lt;p>No aprendemos la importancia de lo que el testing automatizado puede aportar a nuestro trabajo diario, así que no lo tomamos en serio, y por lo tanto, no lo practicamos lo suficiente. Y, por esa misma razón, porque no lo practicamos, no sabemos cómo realizarlo correctamente. ¡Sí, estoy hablando de escribir tests automatizados que prueban el comportamiento de tu software!&lt;/p>
&lt;p>Nuestra incapacidad para escribir código testeable resulta en software que es difícil de testear, y por lo tanto delegamos el testing a terceros trasladando la responsabilidad de la calidad final general del producto o servicio que escribimos.&lt;/p>
&lt;h2 id="la-practica-hace-al-maestro">La práctica hace al maestro&lt;/h2>
&lt;p>Debes aprender y aplicar técnicas de testing apropiadas cuando tengan sentido. ¿Cómo y cuándo usar efectivamente dobles de test, preparar tests solitarios o sociables, qué compromisos y razones respaldan tu mente al elegir uno u otro camino hacia tus estrategias de testing?&lt;/p>
&lt;p>Eres la última y principal persona responsable de tu conocimiento, así que mejor invierte en ti mismo porque nadie más lo hará por ti.&lt;/p>
&lt;p>Mira todo lo que haces como una oportunidad de aprendizaje. Practica y mejora por defecto en todo lo que haces.&lt;/p>
&lt;p>Si no sabes cómo empezar, aquí está mi consejo favorito: siempre puedes practicar y mejorar tus habilidades de testing usando katas de código. Lee más sobre este tema &lt;a href="/es/blog/test-driven-development/">aquí&lt;/a>.&lt;/p>
&lt;h2 id="buena-teoria-pero-para-que-molestarse">Buena teoría, pero… ¿para qué molestarse?&lt;/h2>
&lt;p>El testing manual es, por supuesto, necesario. Es otra estrategia de testing que no estoy culpando o atacando. Aún podríamos necesitar una persona dedicada a cargo de descubrir qué nuevas funcionalidades queremos construir para satisfacer a nuestros clientes. Pero este post no es sobre esa posición.&lt;/p>
&lt;p>Se trata de acortar el bucle de retroalimentación. Si puedes escribir software para que funcione de maneras específicas, ¿no puedes escribir tests automatizados para probar que el software que escribiste se comporta de la manera que esperas?&lt;/p>
&lt;p>Si has cubierto con tests automatizados el comportamiento de tu software a cualquier nivel que tenga sentido, ¿qué queda para una persona QA dedicada?&lt;/p>
&lt;p>La próxima vez que pienses “Necesitamos una persona QA para testear esto”, intenta el ejercicio de pensar en cambio, “¿Cómo puedo escribir un test automatizado que verifique lo que esperaría si una persona QA estuviera comprobando esto?”&lt;/p>
&lt;p>Y así es como cambias la “posición de QA a tiempo completo” en una “mentalidad de rol para todos los que escriben software.”&lt;/p>
&lt;p>El código nunca miente y nunca olvida; una vez que está escrito y automatizado en tu pipeline, puedes ejecutarlo en cualquier momento sin coste.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-05-17/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Trabajo Remoto Efectivo</title><subtitle>Para Ti, Tu Equipo y Tu Empresa</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2023-04-17T00:00:00+00:00</published><updated>2023-04-17T00:00:00+00:00</updated><author><name>
James Stanier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/effective-remote-work/"/><id>https://chemaclass.com/es/readings/effective-remote-work/</id><summary type="html">Un buen entorno remoto trata a todos por igual: mismo acceso, misma información, sin importar dónde estés.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Un buen entorno de trabajo remoto trata a todos por igual: mismo acceso, misma información, sin importar dónde estés.&lt;/p>
&lt;hr />
&lt;h2 id="parte-1-orientandose-para-el-trabajo-remoto">Parte 1 - Orientándose para el trabajo remoto&lt;/h2>
&lt;p>Establece las bases del trabajo remoto. Hoy parece sentido común, sobre todo tras el covid, cuando no tuvimos más remedio que trabajar desde casa durante más de un año. Aun así, viene bien tener estos fundamentos por escrito para cuestionar suposiciones en los siguientes capítulos.&lt;/p>
&lt;h3 id="capitulos">Capítulos&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Un futuro remoto&lt;/strong>: Una breve historia del futuro. Confinamiento. El remoto llegó para quedarse. Hora de prepararse.&lt;/li>
&lt;li>&lt;strong>Preparándose&lt;/strong>: La oficina: lo que queremos y lo que no. Lo básico, brevemente. En el mundo real. Instalando andamiaje mental. La regla de oro.&lt;/li>
&lt;/ul>
&lt;h2 id="parte-2-construyendo-equipos-remotos-efectivos">Parte 2 - Construyendo equipos remotos efectivos&lt;/h2>
&lt;p>Seguro que alguna vez trabajaste desde casa antes de que fuera tendencia y te sentiste apartado de la dinámica del equipo. Por eso “tratar a todos como remotos” es tan importante cuando al menos una persona trabaja en remoto.&lt;/p>
&lt;p>La forma de comunicar depende de la urgencia, la intención y cuánto debe durar el mensaje. Es la diferencia entre comunicación síncrona y asíncrona.&lt;/p>
&lt;p>La calidad de los mensajes importa tanto como el canal. Una llamada no es lo mismo que un chat o un email. Usa la herramienta adecuada para cada mensaje y contexto.&lt;/p>
&lt;h3 id="capitulos-1">Capítulos&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Tratar a todos como remotos&lt;/strong>: Ojos que no ven, corazón que no siente. Un principio para el cambio cultural. Tomando acción práctica. ¡Construyamos un modelo!&lt;/li>
&lt;li>&lt;strong>El espectro de la sincronicidad&lt;/strong>: Sincronicidad. Permanencia. Restaurando tu humanidad. Adelante a Hyrule.&lt;/li>
&lt;li>&lt;strong>Lo mismo pero diferente&lt;/strong>: Un día normal en la oficina. A través del espejo mágico. Conquistando el mundo oscuro. Descubramos algunos artefactos.&lt;/li>
&lt;li>&lt;strong>Artefactos para un futuro mejor&lt;/strong>: Comparando artefactos. Artefactos escritos. Artefactos de código base y grabados. Subiendo a bordo con el onboarding.&lt;/li>
&lt;li>&lt;strong>Onboarding y orientación&lt;/strong>: La curva de contribución. La ecuación del onboarding. Y aquí está el truco. Considerando la comunicación.&lt;/li>
&lt;li>&lt;strong>Técnicas de comunicación efectiva&lt;/strong>: Por qué los humanos comunican. Principios para mejor comunicación remota. Técnicas para mejorar las interacciones. Las herramientas correctas y cuándo usarlas. Volviéndonos hacia adentro.&lt;/li>
&lt;li>&lt;strong>Gestionándote a ti mismo&lt;/strong>: Una base organizacional. Sobre ser no observado. Navegando picos y valles. De ti mismo a los equipos.&lt;/li>
&lt;li>&lt;strong>Gestionando equipos&lt;/strong>: La ecuación de output revisitada. Reduciendo el factor de escala. Potenciando el factor de escala. Hora de subir de nivel.&lt;/li>
&lt;/ul>
&lt;h2 id="parte-3-creando-una-cultura-remota-de-primer-nivel">Parte 3 - Creando una cultura remota de primer nivel&lt;/h2>
&lt;p>Puede que una empresa 100% remota no sea posible por razones que escapan a nuestro control. Pero si la empresa dice ser “remote-friendly”, hay aspectos que vale la pena evaluar:&lt;/p>
&lt;ol>
&lt;li>¿Tratas a todos como remotos?&lt;/li>
&lt;li>¿Proporcionas configuración de espacio de trabajo remoto?&lt;/li>
&lt;li>¿Gastas dinero equitativamente en personal de oficina y remoto?&lt;/li>
&lt;li>¿Optimizas para la comunicación asíncrona?&lt;/li>
&lt;li>¿Creas artefactos de las interacciones síncronas?&lt;/li>
&lt;li>¿Mides al personal por su impacto?&lt;/li>
&lt;li>¿Permites que el personal elija horarios flexibles?&lt;/li>
&lt;li>¿Los miembros del equipo ejecutivo son trabajadores remotos?&lt;/li>
&lt;li>¿Usas las mejores herramientas colaborativas que el dinero puede comprar?&lt;/li>
&lt;li>¿Contratas personal en cualquier parte del mundo?&lt;/li>
&lt;li>¿Apoyas a las familias así como a los empleados?&lt;/li>
&lt;li>¿Devuelves algo a la comunidad local del empleado?&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>Un “Test de Joel” adaptado al trabajo remoto. El original nació en el año 2000, durante la burbuja punto-com: preguntas de sí/no para medir la calidad de un equipo. Si respondes “sí” a todo, probablemente el equipo funciona bien. &lt;a rel="external" href="https://www.joelonsoftware.com/2000/08/09/the-joel-test-12-steps-to-better-code/">Más sobre el Test de Joel original&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulos-2">Capítulos&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>El test de trabajo remoto&lt;/strong>: El test de Joel. Doce preguntas sobre trabajo remoto. Haciendo cambios en tu empresa. Algo que nos guíe.&lt;/li>
&lt;li>&lt;strong>Creando un handbook&lt;/strong>: El handbook de GitLab. Creando un handbook para tu equipo. Un handbook para la empresa. Haciendo el cambio completamente.&lt;/li>
&lt;li>&lt;strong>Volviéndose completamente remoto&lt;/strong>: El espectro de la remotidad. El desafío de adaptar cultura completamente remota. El triángulo de transición. Aprendiendo de pioneros. Ahora lo difícil.&lt;/li>
&lt;li>&lt;strong>Las partes difíciles&lt;/strong>: Caminando las curvas. El impacto físico y mental de trabajar remotamente. Apoyando a otros remotamente.&lt;/li>
&lt;li>&lt;strong>El camino hacia la igualdad es remoto&lt;/strong>: Diversidad e inclusión. Remoto: El gran igualador. Esto es solo el comienzo.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="resumen-del-libro">Resumen del libro&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/6BFIg6Opd1c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Introduciendo un Nuevo Stack Tecnológico</title><subtitle>Cómo introducir nuevas tecnologías en tu equipo</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-04-14T00:00:00+00:00</published><updated>2023-04-14T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/introducing-a-new-tech-stack/"/><id>https://chemaclass.com/es/blog/introducing-a-new-tech-stack/</id><summary type="html">Cuando introduces una nueva tecnología en tu equipo, necesitas explicar el porqué y tener una estrategia clara. Va a afectar a todos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-04-14/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Cuando introduces una nueva tecnología en tu equipo, necesitas explicar el porqué y tener una estrategia clara. Va a afectar a todos.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="por-que-ese-nuevo-stack-tecnologico">¿Por qué ese nuevo stack tecnológico?&lt;/h2>
&lt;p>Antes de decidir, recuerda que es una decisión de equipo. Piensa en la estandarización y mantenibilidad del proyecto. Pero lo más importante: ¿qué problema quieres resolver? ¿Es porque mola? ¿O hay una necesidad real que esta tecnología resuelve?&lt;/p>
&lt;h3 id="la-direccion-de-la-tecnologia">La dirección de la tecnología&lt;/h3>
&lt;p>Cuando propones adoptar una nueva biblioteca, framework o tecnología, hay que conocer su trasfondo y hacia dónde se dirige.&lt;/p>
&lt;p>¿Cuál es la motivación detrás de esa tecnología? ¿Por qué quieres añadirla a tu stack actual?&lt;/p>
&lt;h3 id="acoplamiento-y-dependencias">Acoplamiento y dependencias&lt;/h3>
&lt;p>Al adoptar nuevas tecnologías en el día a día, es fácil acoplarse a ellas. Eso hace más difícil dar marcha atrás si después nos arrepentimos.&lt;/p>
&lt;p>No me malinterpretes: aprender y experimentar con nuevas tecnologías está genial. Pero introducirlas en tu trabajo diario es otra historia. Afecta a todo el equipo, así que hay que ser cuidadosos.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-04-14/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="el-enfoque-de-la-conversacion">El enfoque de la conversación&lt;/h2>
&lt;ul>
&lt;li>¿Qué aporta esta nueva tecnología al proyecto?&lt;/li>
&lt;li>¿Qué problema queremos resolver?&lt;/li>
&lt;li>¿Podemos resolverlo con nuestra tecnología actual?&lt;/li>
&lt;li>Si ya tenemos algo similar, ¿queremos mezclar ambas?&lt;/li>
&lt;li>¿Cuáles son los trade-offs de usarla vs. no usarla?&lt;/li>
&lt;li>¿Vale la pena la complejidad extra a largo plazo?&lt;/li>
&lt;li>¿Cuál es la estrategia para que todos se suban al carro?&lt;/li>
&lt;/ul>
&lt;h3 id="architectural-decision-records-adrs">Architectural Decision Records (ADRs)&lt;/h3>
&lt;p>Sea cual sea el resultado, escríbelo como un &lt;a rel="external" href="https://adr.github.io/">ADR&lt;/a> para poder revisarlo con el tiempo. Un ADR documenta las decisiones del equipo: pros, contras y los argumentos que encontrasteis juntos para decidir qué hacer y por qué.&lt;/p>
&lt;p>Los ADRs ayudan a entender decisiones antiguas. Guárdalos en el control de versiones, en el mismo proyecto si es posible. Son útiles para el equipo actual y para los nuevos que lleguen.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-04-14/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;blockquote>
&lt;p>Gracias a mis amigos &lt;a rel="external" href="https://x.com/evrtrabajo">Manu&lt;/a>, &lt;a rel="external" href="https://x.com/Tito_Kati">Antonio&lt;/a> y &lt;a rel="external" href="https://x.com/JesusValera96">Jesus&lt;/a>, que me ayudaron a crear este resumen de ideas haciendo brainstorming juntos.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Accelerate</title><subtitle>Construyendo y Escalando Organizaciones Tecnológicas de Alto Rendimiento</subtitle><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2023-03-19T00:00:00+00:00</published><updated>2023-03-19T00:00:00+00:00</updated><author><name>
Nicole Forsgren</name></author><author><name>
Jez Humble</name></author><author><name>
Gene Kim</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/accelerate/"/><id>https://chemaclass.com/es/readings/accelerate/</id><summary type="html">Cómo medir el rendimiento de equipos de software y cómo ese rendimiento impacta a toda la organización. La ciencia detrás de Lean Software y DevOps.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Accelerate explora cómo los equipos que usan &lt;strong>Lean Software&lt;/strong> y &lt;strong>DevOps&lt;/strong> pueden medir su rendimiento. También muestra cómo el rendimiento de ingeniería impacta a toda la organización.&lt;/p>
&lt;blockquote>
&lt;p>Nota: DevOps integra y automatiza el desarrollo de software (Dev) con las operaciones de TI (Ops). El foco: mejorar y acortar el ciclo de vida de desarrollo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="capacidades-clave">Capacidades Clave&lt;/h2>
&lt;h3 id="entrega-continua">Entrega Continua&lt;/h3>
&lt;ul>
&lt;li>Usar Control de Versiones para todos los Artefactos de Producción&lt;/li>
&lt;li>Automatizar tu Proceso de Despliegue&lt;/li>
&lt;li>Implementar Integración Continua&lt;/li>
&lt;li>Usar Métodos de Desarrollo Basado en Trunk&lt;/li>
&lt;li>Implementar Automatización de Tests&lt;/li>
&lt;li>Entrega Continua (CD)&lt;/li>
&lt;/ul>
&lt;h3 id="arquitectura">Arquitectura&lt;/h3>
&lt;ul>
&lt;li>Usar una Arquitectura Débilmente Acoplada&lt;/li>
&lt;/ul>
&lt;h3 id="producto-y-proceso">Producto y Proceso&lt;/h3>
&lt;ul>
&lt;li>Recopilar e Implementar Feedback del Cliente&lt;/li>
&lt;li>Hacer Visible el Flujo de Trabajo a través del Value Stream&lt;/li>
&lt;li>Trabajar en Lotes Pequeños&lt;/li>
&lt;li>Fomentar y Habilitar la Experimentación del Equipo&lt;/li>
&lt;/ul>
&lt;h3 id="gestion-lean-y-monitoreo">Gestión Lean y Monitoreo&lt;/h3>
&lt;ul>
&lt;li>Tener Procesos Ligeros de Aprobación de Cambios&lt;/li>
&lt;li>Monitorear la Aplicación e Infraestructura para Informar Decisiones de Negocio&lt;/li>
&lt;li>Verificar la Salud del Sistema Proactivamente&lt;/li>
&lt;li>Mejorar Procesos y Gestionar el Trabajo con Límites WIP (Work-In-Process)&lt;/li>
&lt;li>Visualizar el Trabajo para Monitorear la Calidad y Comunicar a través del Equipo&lt;/li>
&lt;/ul>
&lt;h3 id="cultural">Cultural&lt;/h3>
&lt;ul>
&lt;li>Apoyar una Cultura Generativa&lt;/li>
&lt;li>Fomentar y Apoyar el Aprendizaje&lt;/li>
&lt;li>Apoyar y Facilitar la Colaboración entre Equipos&lt;/li>
&lt;li>Proporcionar Recursos y Herramientas que Hacen el Trabajo Significativo&lt;/li>
&lt;li>Apoyar o Encarnar el Liderazgo Transformacional&lt;/li>
&lt;/ul>
&lt;h2 id="cuatro-metricas-clave">Cuatro Métricas Clave&lt;/h2>
&lt;ul>
&lt;li>&lt;strong>Lead Time de Cambio&lt;/strong>
&lt;ul>
&lt;li>Tiempo para implementar, probar y entregar código para una funcionalidad&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Frecuencia de Despliegue&lt;/strong>
&lt;ul>
&lt;li>Número de despliegues en un período de tiempo dado&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Tasa de Fallo de Cambios&lt;/strong>
&lt;ul>
&lt;li>Porcentaje de cambios fallidos sobre todos los cambios (independientemente del éxito)&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;strong>Tiempo Medio de Recuperación&lt;/strong>
&lt;ul>
&lt;li>Tiempo que toma restaurar el servicio después de un fallo en producción&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/_d9cws_T9qk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>¿Siempre Has Sido Así?</title><subtitle>Cómo encontrar un equilibrio entre crecimiento y felicidad</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-03-16T00:00:00+00:00</published><updated>2023-03-16T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/have-you-always-been-like-this/"/><id>https://chemaclass.com/es/blog/have-you-always-been-like-this/</id><summary type="html">¿Siempre has sido así? ¿Constantemente leyendo libros, escribiendo posts de blog, speaker público en conferencias y meet-ups, aprendiendo en tu tiempo libre, etc...? La respuesta corta es: no, y déjame contarte cómo terminé en esta situación.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-03-16/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Me han hecho esta pregunta varias veces últimamente. Es un buen tema para compartir.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“¿Siempre has sido así? ¿Constantemente leyendo libros, escribiendo posts de blog, speaker público en conferencias y meet-ups, aprendiendo en tu tiempo libre, etc…?”&lt;/p>
&lt;/blockquote>
&lt;p>La respuesta corta es: no, y déjame contarte cómo terminé en esta situación.&lt;/p>
&lt;hr />
&lt;h2 id="solia-ser-introvertido">Solía ser introvertido&lt;/h2>
&lt;p>Era introvertido, pero con trabajo y esfuerzo logré dominar algunas habilidades de hablar en público.&lt;/p>
&lt;blockquote>
&lt;p>Compartir conocimiento es difícil porque primero hay que tenerlo.&lt;/p>
&lt;/blockquote>
&lt;p>Antes no me gustaba leer. Siempre preferí otras fuentes para aprender cosas nuevas. De todas, leer era la más aburrida.&lt;/p>
&lt;blockquote>
&lt;p>Leer es difícil porque requiere toda tu atención.&lt;/p>
&lt;/blockquote>
&lt;p>Lo que siempre he disfrutado es escribir, desde niño. Por circunstancias personales, escribir era mi forma de expresarme y reflexionar, haciendo retrospectivas de las ideas en mi cabeza.&lt;/p>
&lt;h3 id="escribir-al-rescate">Escribir al rescate&lt;/h3>
&lt;blockquote>
&lt;p>Combinando “compartir conocimiento” y “leer” de y para mí mismo.&lt;/p>
&lt;/blockquote>
&lt;p>Escribir era (y sigue siendo) una forma de ordenar mis pensamientos, especialmente en tiempos difíciles. Era una forma de escapar del mundo. Me ayudó a entenderme mejor al día siguiente. Y funcionó.&lt;/p>
&lt;p>Conocer tus limitaciones ayuda a entender tu realidad y luchar contra ella. La vida es demasiado corta para aceptar lo que “está ahí” si no estás satisfecho, especialmente si tienes razones para cambiarlo.&lt;/p>
&lt;p>Aprendí que no quiero desperdiciar mi tiempo en una vida de la que me arrepienta al morir. Por eso empecé a buscar oportunidades de crecimiento en todo lo que hago.&lt;/p>
&lt;h3 id="siempre-sere-asi">¿Siempre seré así?&lt;/h3>
&lt;blockquote>
&lt;p>“¿Estás todo el tiempo al 100% aprendiendo y siendo productivo?”&lt;/p>
&lt;/blockquote>
&lt;p>No puedes ser 100% productivo todo el tiempo. Eso es imposible por nuestra naturaleza humana. La vida tiene constantes “subidas y bajadas”, y eso es parte de su belleza. Tu responsabilidad es entenderte de verdad: tus emociones y tu persona.&lt;/p>
&lt;p>Estas preguntas pueden ayudarte a mantener el foco mientras te construyes. Al hacerlas, intenta verlo desde fuera, de forma racional. Deja a un lado las emociones.&lt;/p>
&lt;ul>
&lt;li>¿Quién eres “tú”?&lt;/li>
&lt;li>¿Qué te diferencia de otras personas?&lt;/li>
&lt;li>¿Qué diferencia al “tú de hoy” del “tú de hace un año”?&lt;/li>
&lt;li>¿Cómo será tu “tú” en un año?&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Dentro de tu contexto y posibilidades, eres lo que eliges ser. Y eso te diferencia de tu pasado y tu futuro. Tus acciones, cómo te comunicas e interactúas con otros, las decisiones que tomas… todo eso te diferencia de ti mismo en otro momento.&lt;/p>
&lt;p>Por eso disfruto leer (o escuchar) un libro al mes. Por eso disfruto aprender en cualquier momento. Por eso me gusta compartir lo que sé con otros. Esto es lo que elijo ser.&lt;/p>
&lt;p>Hace unos años escribí sobre &lt;a href="/es/blog/the-process-itself-is-the-goal/">el proceso en sí mismo como objetivo&lt;/a>: “&lt;em>La repetición es la clave. Facilita hacer lo que quieres hacer. Dificulta hacer lo que quieres dejar de hacer. Disfruta el proceso: ese es el objetivo.&lt;/em>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;h2 id="cuanto-tiempo-tengo">¿Cuánto tiempo tengo?&lt;/h2>
&lt;p>Me gusta demostrarme que estoy equivocado y desafiar el statu quo. Por ejemplo, el año pasado investigué cómo ser &lt;a rel="external" href="https://chemaclass.com/talks/">speaker&lt;/a> en una conferencia internacional. El paso más difícil siempre es el primero; una vez que estás ahí, es más divertido de lo que pensabas. Podría escribir un post sobre “hablar en público”. Por ahora, puedes ver algunos consejos que escribí sobre &lt;a href="/es/blog/improve-your-tech-talk/">mejorar tus charlas públicas&lt;/a>.&lt;/p>
&lt;p>Sobre leer: necesito unas 4-6 horas de media para terminar un libro. Un día laboral se divide en 3 bloques de 8h: 8 dormir, 8 trabajo, 8 ocio (u obligaciones). No trabajo el fin de semana, así que esos días son 16h de ocio/obligaciones. Trabajando 5 días por semana, eso significa &lt;em>5 días x 8 horas + 2 días x 16 horas = 72 horas&lt;/em> de ocio/obligaciones por semana.&lt;/p>
&lt;h3 id="el-tiempo-no-es-el-problema">El tiempo no es el problema&lt;/h3>
&lt;p>En un mes tengo &lt;strong>72 horas x 4 semanas = 288 horas&lt;/strong> de ocio/obligaciones para estar con mi novia, hablar con mi familia, tocar música, salir o relajarme con amigos, ir al gimnasio, pasear por un parque, viajar… Pero también ir al supermercado, fregar los platos, preparar cenas, limpiar el apartamento, ir al trabajo… Todo requiere tiempo.&lt;/p>
&lt;p>El problema no es el tiempo sino las prioridades. En un mes puedo hacer muchas cosas. Lo que suelo encontrar es falta de claridad sobre qué quiero lograr a medio-largo plazo.&lt;/p>
&lt;p>Hay más libros, pero &lt;a href="/es/readings/the-power-of-habits/">El poder de los hábitos&lt;/a> y &lt;a href="/es/readings/atomic-habits/">Hábitos atómicos&lt;/a> son los que más me han impactado. Pueden ayudarte si luchas con hábitos que quieres cambiar. Todo empieza por entenderte a ti mismo en tu contexto.&lt;/p>
&lt;p>No espero que las cosas cambien de un día para otro. Disfruto experimentando, combinando hábitos y probando enfoques diferentes para mejorar con el tiempo. Perder el miedo al fracaso y buscar mejora continua es una mentalidad que cambia la vida.&lt;/p>
&lt;p>Lo que me mantiene en movimiento es &lt;u>el tiempo que me queda&lt;/u> y pensar: “&lt;strong>¿Qué me habría gustado haber cambiado?&lt;/strong>” Y si es así, “&lt;strong>¿Por qué no lo hice?&lt;/strong>”&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-03-16/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>21 Lecciones</title><subtitle>Lo Que He Aprendido al Caer por la Madriguera del Conejo de Bitcoin</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-03-11T00:00:00+00:00</published><updated>2023-03-11T00:00:00+00:00</updated><author><name>
Gigi</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/21-lessons/"/><id>https://chemaclass.com/es/readings/21-lessons/</id><summary type="html">Bitcoin es mucho más que dinero. Una exploración de economía, filosofía y cultura que te sorprenderá como a Alicia en el País de las Maravillas.</summary><content type="html">&lt;p>Gigi presenta Bitcoin como mucho más que dinero: una inmersión en economía, filosofía y cultura. Explorar Bitcoin es como caer por la madriguera del conejo. Te enseña sobre dinero, inflación y descentralización. Redefine qué es el “buen dinero”, muestra su impacto cultural y deja claro que aprender sobre Bitcoin es un viaje personal en constante evolución.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="puntos-clave">Puntos clave&lt;/h2>
&lt;h3 id="filosofia-y-conceptos">Filosofía y conceptos&lt;/h3>
&lt;p>Bitcoin enseña más que la educación tradicional. Ofrece perspectivas únicas sobre economía y filosofía. Involucrarse con Bitcoin se siente como caer por una madriguera, llena de aprendizaje y sorpresas.&lt;/p>
&lt;h3 id="economia-y-dinero">Economía y dinero&lt;/h3>
&lt;p>Bitcoin recupera la idea del “dinero sólido”. Enseña sobre inflación y sistemas bancarios. Emitir dinero nuevo reduce el valor del existente; Bitcoin, con su suministro fijo, funciona diferente.&lt;/p>
&lt;h3 id="tecnologia-y-cultura">Tecnología y cultura&lt;/h3>
&lt;p>Las ideas centrales de Bitcoin incluyen escasez, seguridad y consenso. Pero el libro no es un manual técnico. Bitcoin refleja un giro hacia la descentralización, influenciado por el movimiento cypherpunk.&lt;/p>
&lt;h3 id="viaje-personal">Viaje personal&lt;/h3>
&lt;p>Cada persona aprende lecciones diferentes de Bitcoin. El libro fomenta la exploración personal. Las lecciones evolucionan y requieren estudio continuo.&lt;/p>
&lt;hr />
&lt;p>“21 Lecciones” explica por qué Bitcoin importa a nivel filosófico, económico y cultural. No se trata de cómo usarlo.&lt;/p>
&lt;blockquote>
&lt;p>Puedes comprar el libro o leerlo gratis en su propio sitio web: &lt;a rel="external" href="https://21lessons.com/preface">https://21lessons.com/preface&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/-5lU92SEplU"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Gran Liderazgo</title><subtitle>El liderazgo comienza dentro de tu propia vida y comportamiento</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2023-02-27T00:00:00+00:00</published><updated>2023-02-27T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/great-leadership/"/><id>https://chemaclass.com/es/blog/great-leadership/</id><summary type="html">A medida que las organizaciones crecen, los líderes deben cambiar el foco de clientes a empleados. Principios clave para escalar el liderazgo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-02-27/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Cuando el negocio crece, el foco de los líderes debe pasar de los clientes a los empleados. Quiero compartir los puntos clave que cualquier líder debería trabajar regularmente.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Para cada punto tendrás recomendaciones de libros que profundizan en el tema, con referencias de expertos reales.&lt;/p>
&lt;hr />
&lt;p>Ya escribí sobre &lt;a href="/es/blog/the-beauty-of-leadership/">la belleza del liderazgo&lt;/a>, y como un rápido resumen, para convertirte en líder, necesitas habilidades específicas:&lt;/p>
&lt;ul>
&lt;li>Excelente &lt;strong>comunicación&lt;/strong>, dando apoyo y habilitando a tu gente&lt;/li>
&lt;li>Liderar con el &lt;strong>ejemplo&lt;/strong>, especialmente para convertirte en una mejor versión de ti mismo&lt;/li>
&lt;li>&lt;strong>Pasión&lt;/strong> por compartir tus habilidades de liderazgo, para que construyas otros líderes&lt;/li>
&lt;/ul>
&lt;p>Para ampliar ese post con recursos y ejemplos, aquí encontrarás libros sobre los siguientes temas:&lt;/p>
&lt;ul>
&lt;li>Motivación&lt;/li>
&lt;li>Liderar a través del cambio&lt;/li>
&lt;li>Empoderar a tu gente&lt;/li>
&lt;li>Comunicación efectiva&lt;/li>
&lt;li>Persuasión&lt;/li>
&lt;li>Disfunciones de equipo&lt;/li>
&lt;li>Principios de gestión&lt;/li>
&lt;li>Mentalidad de CEO&lt;/li>
&lt;li>Liderazgo de ingeniería&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="para-lideres-principiantes">Para líderes “principiantes”&lt;/h2>
&lt;h3 id="motivacion">Motivación&lt;/h3>
&lt;p>Primero necesitas definir un &lt;strong>propósito&lt;/strong> para tu liderazgo. Recomiendo “&lt;a href="/es/readings/start-with-why/">Start with Why&lt;/a>” (Empieza con el porqué), que ayuda a clarificar la diferencia entre grandes líderes y los que no lo son.&lt;/p>
&lt;blockquote>
&lt;p>“La capacidad de inspirar a quienes te rodean y lograr cosas notables comienza con POR QUE.” – Empieza con el porqué&lt;/p>
&lt;/blockquote>
&lt;p>El liderazgo no es ser el jefe de nadie sino &lt;strong>servir&lt;/strong> a otros. Deberías ser un ejemplo que tu gente copiaría y seguiría, especialmente en tiempos difíciles. Esta es una filosofía donde el líder busca servir. “&lt;a href="/es/readings/leaders-eat-last/">Leaders Eat Last&lt;/a>” (Los líderes comen al final) profundiza en este tema.&lt;/p>
&lt;p>Si quieres más, la guinda es “&lt;a href="/es/readings/the-infinite-game/">The infinite game&lt;/a>” (El juego infinito), el tercer libro de Simon Sinek. Cuestiona nuestra mentalidad al confrontar problemas de negocio: la necesidad de una &lt;em>causa justa, liderazgo valiente, equipos de confianza&lt;/em> y un &lt;em>rival digno.&lt;/em>&lt;/p>
&lt;blockquote>
&lt;p>“No existe la organización ‘correcta’. Solo existen organizaciones, cada una con fortalezas distintas, limitaciones distintas y aplicaciones específicas. Una organización no es absoluta. Es una herramienta para hacer que las personas sean productivas trabajando juntas.” – The infinite game&lt;/p>
&lt;/blockquote>
&lt;h3 id="liderar-a-traves-del-cambio">Liderar a través del cambio&lt;/h3>
&lt;p>Liderar a través del cambio es algo que hay que afrontar muchas veces en la vida, te guste o no. “&lt;a href="/es/readings/who-moved-my-cheese/">Who moved my cheese?&lt;/a>” (¿Quién se ha llevado mi queso?) es una fábula sobre las diferentes actitudes que adoptamos al confrontar el cambio.&lt;/p>
&lt;p>¿Cómo eliminas malos hábitos y creas buenos? “&lt;a href="/es/readings/the-power-of-habits/">The Power of Habit&lt;/a>” (El poder de los hábitos) y “&lt;a href="/es/readings/atomic-habits/">Atomic Habits&lt;/a>” (Hábitos atómicos) ayudan a entender que los hábitos son como un músculo. Puedes entrenarlos.&lt;/p>
&lt;blockquote>
&lt;p>“Cambia cómo te identificas. El entorno es más importante que estar motivado. Reduce la fricción para los buenos hábitos y aumenta la fricción para los malos hábitos.” – Atomic Habits&lt;/p>
&lt;/blockquote>
&lt;h3 id="empoderar-a-tu-gente">Empoderar a tu gente&lt;/h3>
&lt;p>Deberías empoderar a tu gente para que se conviertan en líderes. Recomiendo “&lt;a href="/es/readings/turn-the-ship-around/">Turn the ship around!&lt;/a>” (¡Gira el barco!), donde el autor desafía el modelo de &lt;strong>líderes vs. seguidores&lt;/strong> hacia una relación de &lt;strong>líderes-a-líderes&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>“El liderazgo es comunicar a las personas su valor tan claramente que se inspiran para verlo en sí mismas.” – Turn the ship around!&lt;/p>
&lt;/blockquote>
&lt;h3 id="comunicacion-efectiva">Comunicación efectiva&lt;/h3>
&lt;p>La comunicación es una de las habilidades más difíciles porque constantemente te comunicas con personas de diferentes orígenes, experiencias, expectativas y visiones de la vida. Lo importante no es solo lo que dices sino cómo lo dices para que tu mensaje llegue bien al receptor.&lt;/p>
&lt;p>“&lt;a href="/es/readings/leadership-is-language/">Leadership is Language&lt;/a>” (El liderazgo es lenguaje) desafía el modelo de la era industrial (donde los líderes dan órdenes y los empleados las siguen), con estrategias como: &lt;em>controlar el reloj, colaborar, comprometerse, completar y mejorar&lt;/em>.&lt;/p>
&lt;blockquote>
&lt;p>“Tus palabras importan más de lo que piensas.” – Leadership is Language&lt;/p>
&lt;/blockquote>
&lt;p>Es importante reconocer nuestras emociones y no dejar que controlen nuestras acciones. Crear un ambiente abierto, honesto y &lt;strong>seguro&lt;/strong> es clave para generar confianza.&lt;/p>
&lt;p>“&lt;a href="/es/readings/dare-to-lead/">Dare to lead&lt;/a>” (Atrévete a liderar) plantea que los líderes necesitan ser más vulnerables. Los valores sólidos te guían a hacer lo correcto en lugar de lo fácil. La confianza y las conversaciones difíciles importan, aunque te hagan sentir incómodo.&lt;/p>
&lt;blockquote>
&lt;p>“Los grandes líderes deben ser valientes y siempre atreverse a dar retroalimentación constructiva, decir la verdad y ser claros sobre sus expectativas.” – Dare to lead&lt;/p>
&lt;/blockquote>
&lt;h3 id="persuasion">Persuasión&lt;/h3>
&lt;p>En comunicación, necesitas buenas habilidades de persuasión para convencer a otros. “&lt;a href="/es/readings/never-split-the-difference/">Never split the difference&lt;/a>” (Rompe la barrera del no) es un libro sobre negociación de un ex negociador de secuestros del FBI. Ofrece ideas para negociar bien: empezar escuchando, usar espejos para fomentar empatía, empatía táctica para llegar a acuerdos, etiquetar emociones…&lt;/p>
&lt;blockquote>
&lt;p>“La negociación comienza con escuchar, haciendo que se trate de las otras personas, validando sus emociones y creando suficiente confianza y seguridad para que una conversación real pueda comenzar.” – Never split the difference&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2023-02-27/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;hr />
&lt;h2 id="para-lideres-experimentados">Para líderes “experimentados”&lt;/h2>
&lt;p>Asumiendo que has leído los libros anteriores (para “líderes principiantes”) puedo darte más recomendaciones.&lt;/p>
&lt;h3 id="disfunciones-de-equipo">Disfunciones de equipo&lt;/h3>
&lt;p>Una de las áreas más difíciles en comunicación es gestionar conflictos. “&lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">The Five Dysfunctions of a Team&lt;/a>” (Las cinco disfunciones de un equipo) aborda la “ausencia de confianza, miedo al conflicto, falta de compromiso, evasión de responsabilidad e inatención a los resultados” como una pirámide de disfunciones a vigilar.&lt;/p>
&lt;h3 id="principios-de-gestion">Principios de gestión&lt;/h3>
&lt;p>Aunque liderazgo y gestión no son lo mismo, conocer algo de teoría de gestión es útil. “&lt;a href="/es/readings/high-output-management/">High Output Management&lt;/a>” es un gran punto de partida.&lt;/p>
&lt;p>Si quieres más, recomiendo “&lt;a href="/es/readings/the-essential-drucker/">The Essential Drucker&lt;/a>” (Lo esencial de Drucker), que cubre los principios esenciales de la gestión.&lt;/p>
&lt;blockquote>
&lt;p>“La gestión es sobre humanos.” – The Essential Drucker&lt;/p>
&lt;/blockquote>
&lt;h3 id="mentalidad-de-ceo">Mentalidad de CEO&lt;/h3>
&lt;p>No todos los líderes quieren ser CEO, pero “&lt;a href="/es/readings/the-great-ceo-within/">The Great CEO Within&lt;/a>” (El gran CEO interior) ayuda a entender las responsabilidades desde el punto de vista más alto de cualquier organización.&lt;/p>
&lt;p>“&lt;a href="/es/readings/adapt-or-die/">Adapt or Die&lt;/a>” (Adaptarse o morir) cubre los aspectos fundamentales para prosperar en cualquier negocio: Producto, Estrategia, Motor de Crecimiento, Modelo Financiero, Personas, Operaciones, Proceso y Liderazgo.&lt;/p>
&lt;blockquote>
&lt;p>“El liderazgo es sobre ayudar a las personas a adaptarse y liderar a través del cambio para que el negocio y su gente puedan prosperar.” – Adapt or die&lt;/p>
&lt;/blockquote>
&lt;h3 id="liderazgo-de-ingenieria">Liderazgo de ingeniería&lt;/h3>
&lt;p>Sobre ingeniería y crecimiento, recomiendo “&lt;a href="/es/readings/manager-path/">The Manager Path&lt;/a>” (El camino del manager) y “&lt;a href="/es/readings/the-art-of-leadership/">The Art of Leadership&lt;/a>” (El arte del liderazgo). Ambos son fáciles de leer y llenos de sabiduría.&lt;/p>
&lt;blockquote>
&lt;p>“Los managers te dicen dónde estás; los líderes te dicen hacia dónde vas.” – The Art of Leadership&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>Espero haber captado tu atención sobre las áreas clave en las que trabajar. Sé que hay muchos otros libros que podrían estar aquí. Quizás tienes otros en tu estantería. Estos son solo referencias, no necesariamente mejores o peores que otros.&lt;/p>
&lt;p>Tengo muchos más libros pendientes de leer. Aun así, me pareció útil compilar estos para quienes no saben por dónde empezar o cómo convertirse en mejores líderes.&lt;/p>
&lt;p>Los puntos esenciales a recordar:&lt;/p>
&lt;ul>
&lt;li>Ten &lt;strong>pasión por tu trabajo&lt;/strong> y compártela con quienes te rodean. No puedes esperar pasión de tus compañeros si tú no la tienes.&lt;/li>
&lt;li>&lt;strong>Empodera a tu gente&lt;/strong>, creando líderes en lugar de gente que sigue órdenes.&lt;/li>
&lt;li>Aprende a crear un &lt;strong>ambiente seguro&lt;/strong>, clave para la confianza y las relaciones honestas.&lt;/li>
&lt;li>Ayuda a &lt;strong>crear acuerdos&lt;/strong> al resolver conflictos. Evitar conflictos saludables no ayuda a largo plazo.&lt;/li>
&lt;li>Busca &lt;strong>oportunidades para crecer&lt;/strong> en todas partes y ayuda a tu equipo a crecer contigo.&lt;/li>
&lt;/ul>
&lt;p>Tu responsabilidad principal es ayudar a otros a mejorar. Y eso solo es posible si &lt;strong>abrazas el cambio&lt;/strong> y &lt;strong>empiezas contigo mismo&lt;/strong>.&lt;/p>
&lt;p>&lt;img src="/images/blog/2023-02-27/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;h3 id="todos-los-autores-mencionados">Todos los autores mencionados&lt;/h3>
&lt;ul>
&lt;li>Simon Sinek: &lt;a href="/es/readings/start-with-why/">Start with Why&lt;/a>, &lt;a href="/es/readings/leaders-eat-last/">Leaders Eat Last&lt;/a>, &lt;a href="/es/readings/the-infinite-game/">The infinite game&lt;/a>&lt;/li>
&lt;li>Spencer Johnson: &lt;a href="/es/readings/who-moved-my-cheese/">Who moved my cheese?&lt;/a>&lt;/li>
&lt;li>Charles Duhigg: &lt;a href="/es/readings/the-power-of-habits/">The Power of Habit&lt;/a>&lt;/li>
&lt;li>James Clear: &lt;a href="/es/readings/atomic-habits/">Atomic Habits&lt;/a>&lt;/li>
&lt;li>L. David Marquet: &lt;a href="/es/readings/turn-the-ship-around/">Turn the ship around!&lt;/a>, &lt;a href="/es/readings/leadership-is-language/">Leadership is Language&lt;/a>&lt;/li>
&lt;li>Brené Brown: &lt;a href="/es/readings/dare-to-lead/">Dare to lead&lt;/a>&lt;/li>
&lt;li>Chris Voss: &lt;a href="/es/readings/never-split-the-difference/">Never split the difference&lt;/a>&lt;/li>
&lt;li>Patrick M. Lencioni: &lt;a href="/es/readings/the-five-dysfunctions-of-a-team/">The Five Dysfunctions of a Team&lt;/a>&lt;/li>
&lt;li>Andrew S. Grove: &lt;a href="/es/readings/high-output-management/">High Output Management&lt;/a>&lt;/li>
&lt;li>Peter F. Drucker: &lt;a href="/es/readings/the-essential-drucker/">The Essential Drucker&lt;/a>&lt;/li>
&lt;li>Matt Mochary: &lt;a href="/es/readings/the-great-ceo-within/">The Great CEO Within&lt;/a>&lt;/li>
&lt;li>Thomas H. Douglas: &lt;a href="/es/readings/adapt-or-die/">Adapt or Die&lt;/a>&lt;/li>
&lt;li>Camille Fournier: &lt;a href="/es/readings/manager-path/">The Manager Path&lt;/a>&lt;/li>
&lt;li>Michael Lopp: &lt;a href="/es/readings/the-art-of-leadership/">The Art of Leadership&lt;/a>&lt;/li>
&lt;/ul>
&lt;h2 id="extra-leadership-guide-for-the-reluctant-leader">Extra: Leadership Guide for the Reluctant Leader&lt;/h2>
&lt;p>Especialmente si eres un desarrollador de software, este video es para ti.&lt;/p>
&lt;blockquote>
&lt;p>“El liderazgo es para todos. Es para todos vosotros.”&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/3PcL8UkorEg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Adapt or die</title><subtitle>Cómo Crear Innovación, Resolver Puzzles de Personas y Ganar en los Negocios</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2023-02-26T00:00:00+00:00</published><updated>2023-02-26T00:00:00+00:00</updated><author><name>
Thomas H. Douglas</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/adapt-or-die/"/><id>https://chemaclass.com/es/readings/adapt-or-die/</id><summary type="html">A través de la historia de People First IT, este libro presenta El Algoritmo del Éxito: un sistema para transformar organizaciones poniendo a las personas primero.</summary><content type="html">&lt;p>A través de la historia de People First IT, este libro presenta El Algoritmo del Éxito: un sistema con potencial para transformar todos los aspectos de una organización.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Cada capítulo revela parte de la fórmula que las pequeñas y medianas empresas necesitan para triunfar. Con ejemplos reales, investigación y herramientas prácticas, el libro explica cómo crear innovación, resolver problemas de personas y ganar en los negocios.&lt;/p>
&lt;blockquote>
&lt;p>“El liderazgo consiste en ayudar a las personas a adaptarse al cambio para que el negocio y su gente prosperen.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="por-que-fracasan-los-negocios">¿Por qué fracasan los negocios?&lt;/h2>
&lt;p>Los negocios fracasan porque…&lt;/p>
&lt;ul>
&lt;li>no pueden o no quieren tener conversaciones valientes&lt;/li>
&lt;li>se enfocan en el dinero demasiado pronto, olvidando a las personas&lt;/li>
&lt;li>saben crear valor pero no escalarlo&lt;/li>
&lt;li>no priorizan a las personas como responsabilidad principal&lt;/li>
&lt;li>se enfocan en las personas pero carecen de las habilidades para marcar diferencia&lt;/li>
&lt;li>escuchan para responder, no para entender&lt;/li>
&lt;li>creen que sus problemas son únicos porque su idea lo es&lt;/li>
&lt;li>viven dentro del negocio sin trabajar sobre el negocio&lt;/li>
&lt;li>esperan que las cosas pasen sin liderar el cambio&lt;/li>
&lt;li>luchan contra la verdad en lugar de abrazarla&lt;/li>
&lt;/ul>
&lt;h2 id="como-hacer-crecer-tu-equipo">¿Cómo hacer crecer tu equipo?&lt;/h2>
&lt;blockquote>
&lt;p>“Cuando un negocio escala, el foco del dueño y el liderazgo debe pasar de los clientes a los empleados.”&lt;/p>
&lt;/blockquote>
&lt;p>La clave está en tener conversaciones valientes sobre las habilidades necesarias para el siguiente nivel. El objetivo: mejorar la experiencia profesional de cada persona y de quienes la rodean.&lt;/p>
&lt;p>Puntos clave que todos podrían desarrollar:&lt;/p>
&lt;ul>
&lt;li>Buenas comunicaciones&lt;/li>
&lt;li>Enfoque y lograr metas y resultados&lt;/li>
&lt;li>Todos contribuyen&lt;/li>
&lt;li>Ofrecerse apoyo mutuamente&lt;/li>
&lt;li>Buen liderazgo&lt;/li>
&lt;li>Organización clara y buena&lt;/li>
&lt;li>El conflicto constructivo impulsa la innovación&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Las personas no suelen ser el problema raíz. La taxonomía es 3Ps: producto, proceso o personas. ‘Personas’ va al final porque los líderes deben revisar primero producto y proceso. Es decir: las personas primero en valores, pero al último en culpa.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-algoritmo-del-exito">El Algoritmo del Éxito&lt;/h2>
&lt;p>Como muestra el diagrama, todo esto depende del liderazgo. Si liderar es ayudar a otros a adaptarse al cambio, debe ser central en nuestras organizaciones.&lt;/p>
&lt;p>&lt;img src="/images/readings/2023-02-26/aos-leadership.jpg" alt="blog-cover" />&lt;/p>
&lt;h3 id="producto">Producto&lt;/h3>
&lt;ul>
&lt;li>Promesas&lt;/li>
&lt;li>Resolver un problema o necesidad&lt;/li>
&lt;li>Disparadores de liberación de efectivo&lt;/li>
&lt;li>La forma en que creamos valor&lt;/li>
&lt;li>Dolor o Placer&lt;/li>
&lt;li>Innovación&lt;/li>
&lt;li>Conexiones: Lógicas, emocionales y competitivas&lt;/li>
&lt;/ul>
&lt;h3 id="estrategia">Estrategia&lt;/h3>
&lt;ul>
&lt;li>Perfil del cliente objetivo (Quién)&lt;/li>
&lt;li>Estrategia de Creación de Valor (VCS)&lt;/li>
&lt;li>Valores Fundamentales&lt;/li>
&lt;li>Visión compartida&lt;/li>
&lt;li>Ciclo de valor&lt;/li>
&lt;li>Procesos clave&lt;/li>
&lt;/ul>
&lt;h3 id="el-motor-de-crecimiento">El Motor de Crecimiento&lt;/h3>
&lt;ul>
&lt;li>Propuesta única de venta&lt;/li>
&lt;li>Marketing dirigido&lt;/li>
&lt;li>Canales de venta&lt;/li>
&lt;li>Pasos de venta&lt;/li>
&lt;li>Medición del Motor de Crecimiento&lt;/li>
&lt;li>Gestión de embudo y oportunidades&lt;/li>
&lt;li>Retorno sobre Ventas&lt;/li>
&lt;/ul>
&lt;h3 id="el-modelo-financiero">El Modelo Financiero&lt;/h3>
&lt;ul>
&lt;li>Gestión de ingresos&lt;/li>
&lt;li>Costo de bienes vendidos (COGS)&lt;/li>
&lt;li>Costos de ventas y marketing&lt;/li>
&lt;li>Administración general&lt;/li>
&lt;li>EBITDA, ITDA, NOI&lt;/li>
&lt;li>Categorización&lt;/li>
&lt;li>Reportes&lt;/li>
&lt;/ul>
&lt;h3 id="personas">Personas&lt;/h3>
&lt;ul>
&lt;li>Alineación&lt;/li>
&lt;li>Elevadores de personas&lt;/li>
&lt;li>Resolución de problemas&lt;/li>
&lt;li>Bancos de personas&lt;/li>
&lt;li>Código de conducta del liderazgo&lt;/li>
&lt;li>Planes de carrera&lt;/li>
&lt;li>One-on-one’s&lt;/li>
&lt;li>Gestión de ingresos&lt;/li>
&lt;/ul>
&lt;h3 id="operaciones">Operaciones&lt;/h3>
&lt;ul>
&lt;li>Identificar las operaciones centrales&lt;/li>
&lt;li>Responsabilidades&lt;/li>
&lt;li>Gestión de cadencia&lt;/li>
&lt;li>Reuniones&lt;/li>
&lt;li>GSD (Get Shit Done)&lt;/li>
&lt;/ul>
&lt;h3 id="proceso">Proceso&lt;/h3>
&lt;ul>
&lt;li>Promesas Cumplidas&lt;/li>
&lt;li>Downstream / Upstream&lt;/li>
&lt;li>Responsabilidad&lt;/li>
&lt;li>Repetible&lt;/li>
&lt;li>Eficiencias&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Puedes encontrar el libro en &lt;a rel="external" href="https://www.adaptordie.com/the-book/">https://www.adaptordie.com/the-book/&lt;/a>.&lt;/p></content></entry><entry xml:lang="es"><title>El juego infinito</title><subtitle>Un marco para el liderazgo en un mundo que cambia constantemente</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-01-29T00:00:00+00:00</published><updated>2023-01-29T00:00:00+00:00</updated><author><name>
Simon Sinek</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-infinite-game/"/><id>https://chemaclass.com/es/readings/the-infinite-game/</id><summary type="html">¿Cómo lideramos cuando el juego no tiene fin? Simon Sinek propone un marco para pensar a largo plazo en negocios, política y la vida misma.</summary><content type="html">&lt;p>¿Cómo ganamos un juego que no tiene fin? Los juegos finitos (fútbol, ajedrez) tienen jugadores conocidos, reglas fijas y un final claro. Los juegos infinitos (negocios, política, la vida misma) son diferentes: los jugadores van y vienen, las reglas cambian y no hay línea de meta. No hay ganadores ni perdedores, solo avances y retrocesos.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>Los líderes con mentalidad infinita entienden que “el mejor” no es un estado permanente. Se esfuerzan por ser “mejores”. Esa palabra sugiere un viaje de mejora constante y nos invita a contribuir con nuestros talentos y energía.&lt;/p>
&lt;/blockquote>
&lt;p>La pregunta clave es: ¿cómo jugamos para tener éxito en el juego en el que estamos? Simon Sinek ofrece un marco para liderar con mentalidad infinita:&lt;/p>
&lt;ol>
&lt;li>Causa Justa&lt;/li>
&lt;li>Liderazgo valiente&lt;/li>
&lt;li>Equipos de confianza&lt;/li>
&lt;li>Rival digno&lt;/li>
&lt;/ol>
&lt;hr />
&lt;h2 id="1-necesitas-una-causa-justa">#1 Necesitas una Causa Justa&lt;/h2>
&lt;p>Una Causa Justa responde a: &lt;em>¿Por qué existe tu organización?&lt;/em>&lt;/p>
&lt;p>Tiene que ser una causa por la que la gente esté dispuesta a sacrificarse. Trabajar más horas, dar sus mejores ideas, rechazar otras ofertas porque creen en lo que hacen.&lt;/p>
&lt;p>Para ser felices necesitamos propósito. Los negocios no son diferentes. Al desarrollar una Causa Justa, hay que defender algo inclusivo que exista principalmente para beneficio de otros.&lt;/p>
&lt;p>En resumen: una Causa Justa es una visión de futuro tan convincente que la gente quiere construirlo, aunque quizá nunca lo vea terminado.&lt;/p>
&lt;h2 id="2-necesitas-liderazgo-valiente">#2 Necesitas liderazgo valiente&lt;/h2>
&lt;p>Los líderes valientes sacrifican el corto plazo para avanzar en el largo plazo.&lt;/p>
&lt;p>Liderar significa aceptar la responsabilidad de crear un ambiente donde las personas puedan dar lo mejor de sí.&lt;/p>
&lt;p>Los más senior en una organización no son responsables del resultado. Son responsables de las personas que producen ese resultado.&lt;/p>
&lt;h2 id="3-necesitas-equipos-de-confianza">#3 Necesitas equipos de confianza&lt;/h2>
&lt;p>Un equipo de confianza es un ambiente donde la gente puede levantar la mano y decir “Me equivoqué. No me siento preparado para este trabajo. Necesito formación. Necesito ayuda. Tengo miedo.” Sin miedo a humillación ni castigo.&lt;/p>
&lt;p>Sin equipos de confianza, tienes un grupo de personas mintiendo y fingiendo. Y les estás forzando a ello. No es su culpa. Has creado un ambiente donde nadie comparte errores porque teme meterse en problemas. Al final, todo se acumula y explota.&lt;/p>
&lt;p>El líder es responsable del ambiente. Si el ambiente es correcto, tendrás equipos de confianza. Si no, estarás forzando a la gente a protegerse de ti.&lt;/p>
&lt;h2 id="4-necesitas-un-rival-digno">#4 Necesitas un rival digno&lt;/h2>
&lt;p>Tu único competidor real en un juego infinito eres tú mismo. Pero la competencia ayuda a revelar tus debilidades.&lt;/p>
&lt;p>El objetivo no es ser el número uno (eso no existe en un juego infinito). Se trata de construir una base sólida y mirar a largo plazo.&lt;/p>
&lt;p>El dinero es un resultado, no un propósito.&lt;/p>
&lt;blockquote>
&lt;p>No existe la organización “correcta”. Solo hay organizaciones, cada una con fortalezas, limitaciones y aplicaciones distintas. Una organización no es absoluta. Es una herramienta para que las personas sean productivas trabajando juntas.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>Los líderes con mentalidad infinita construyen organizaciones más fuertes, innovadoras e inspiradoras. Son ellos quienes nos lideran hacia el futuro.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/tye525dkfi8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Entrevista sobre XP y Agile</title><subtitle>Agile es sobre CÓMO haces ciertas cosas</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2023-01-09T00:00:00+00:00</published><updated>2023-01-09T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/interview-about-xp-and-agile/"/><id>https://chemaclass.com/es/blog/interview-about-xp-and-agile/</id><summary type="html">Mi entrevista con devm.io sobre Agile y Extreme Programming. Agile es más sobre CÓMO haces ciertas cosas, en lugar de QUÉ cosas haces.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2023-01-09/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Mi entrevista con &lt;strong>devm.io&lt;/strong> sobre Agile y Extreme Programming.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>&lt;strong>devm.io: Hablamos con Chema, un desarrollador de software y experto en Extreme Programming, sobre su tema favorito y su próximo evento en vivo &lt;a rel="external" href="https://devm.io/update-your-team-to-be-more-extreme/">Update Your Team To Be More Extreme&lt;/a>.&lt;/strong>&lt;/p>
&lt;h2 id="podrias-contarnos-un-poco-sobre-ti-quien-eres-y-que-haces">¿Podrías contarnos un poco sobre ti, quién eres y qué haces?&lt;/h2>
&lt;p>Chema: Mi nombre es Jose Maria Valera Reales, pero todos me llaman Chema. Soy originalmente de España pero vivo en Berlín desde 2015. He estado trabajando como desarrollador de software desde 2013. En los últimos años, me he enfocado en alcanzar la excelencia y descubrir cómo ayudar a mis compañeros y, con ellos, a toda la comunidad de software a mejorar en nuestra profesión.&lt;/p>
&lt;p>Actualmente soy Tech Lead en &lt;a rel="external" href="https://teufel.de/">Lautsprecher Teufel GmbH&lt;/a>, donde trabajo con el equipo del webshop de e-commerce. También disfruto del &lt;a rel="external" href="https://github.com/Chemaclass">software de código abierto&lt;/a>, así que me gusta crear pull requests para otros repositorios, y también me encanta cuando recibo pull requests de otros.&lt;/p>
&lt;h2 id="como-describirias-extreme-programming-que-lo-hace-tan-extremo">¿Cómo describirías Extreme Programming? ¿Qué lo hace tan “extremo”?&lt;/h2>
&lt;p>Extreme Programming es el enfoque más directo y pragmático para abrazar Agile en tu equipo de software. Incorpora soluciones basadas en valores, principios y prácticas. No tienes que usar o hacer todo, sino lo que se ajuste a ti y a tu equipo en tu contexto. Sin embargo, estas son soluciones generales útiles que funcionan mejor cuando se combinan.&lt;/p>
&lt;p>Desde mi experiencia, la palabra “extremo” puede ser engañosa, pero la veo como una oportunidad para enfatizar la dificultad de los fundamentos detrás de ella. El punto crítico es darse cuenta de que nuestro “sentido común” no es tan “común” como tendemos a pensar, ni las mejores prácticas para el trabajo en equipo efectivo. Por lo tanto, esto se trata de llevarnos a la efectividad extrema, colaboración y satisfacción mientras trabajamos con otros.&lt;/p>
&lt;h2 id="organizaras-un-evento-en-vivo-en-devm-io-sobre-el-tema-el-19-de-enero-podrias-darnos-un-adelanto-de-lo-que-tu-audiencia-puede-esperar">Organizarás un evento en vivo en devm.io sobre el tema el 19 de enero. ¿Podrías darnos un adelanto de lo que tu audiencia puede esperar?&lt;/h2>
&lt;p>Exploraremos cómo funciona un equipo de software hoy en día, los problemas comunes que encontramos y qué soluciones podríamos aplicar para mejorar las rutinas de nuestro equipo. Buscaremos el verdadero significado de Agile, enfocándonos en las ideas de Extreme Programming.&lt;/p>
&lt;p>Además, compartiré algunas ideas para ayudar a tu equipo a crear oportunidades de aprendizaje con ejemplos concretos que cualquier equipo puede incorporar en su trabajo actual.&lt;/p>
&lt;h2 id="durante-el-evento-tambien-nos-contaras-algo-sobre-katas-que-son-exactamente-las-katas">Durante el evento, también nos contarás algo sobre Katas. ¿Qué son exactamente las Katas?&lt;/h2>
&lt;p>El término “kata” proviene de los movimientos repetitivos hechos en karate que te ayudan a mejorar tus habilidades de combate.&lt;/p>
&lt;p>¿Por qué “katas de código”? Porque como grupo, necesitamos practicar más. La mayor parte de nuestro aprendizaje ocurre en el trabajo, por lo que la mayoría de nuestros errores también se cometen allí. Y porque queremos mantener PROD, somos reacios a probar cosas nuevas.&lt;/p>
&lt;p>Las katas existen para ayudar a los desarrolladores a obtener los mismos beneficios que obtendrías de la práctica en cualquier otra profesión. Estos ejercicios simples de simulación te permiten experimentar y aprender sin la presión de PROD. No hay respuestas correctas o incorrectas en ninguna kata de software: el beneficio viene del proceso, no del resultado.&lt;/p>
&lt;p>Hay katas para ayudarte a mejorar tus habilidades de refactoring (como Gilded Rose Refactoring Kata de Emily Bache) o tus habilidades de testing (fáciles como Fizz Buzz o Roman Numerals, o más avanzadas como Bank Kata de Sandro Mancuso). También son geniales para construir confianza al programar con otros, observar y practicar diferentes roles colaborativamente, fomentar la cohesión del equipo, etc.&lt;/p>
&lt;h2 id="que-papel-juegan-los-metodos-agile-en-el-desarrollo-de-software-para-ti">¿Qué papel juegan los métodos Agile en el desarrollo de software para ti?&lt;/h2>
&lt;p>La primera pregunta aquí es definir qué son los métodos Agile. Al final, todos se comunican de alguna manera, dan retroalimentación a otros y simplifican hasta cierto nivel. A veces las personas tienen el coraje de decir lo que piensan y a veces no, y usualmente intentan respetar a sus compañeros. Así que, para mí, Agile es más sobre “cómo” haces ciertas cosas en lugar de “qué” cosas haces.&lt;/p>
&lt;p>Agile es un proceso de trabajo altamente colaborativo a cualquier nivel, que podría tener una curva de aprendizaje desafiante al principio, pero vale la pena antes de lo que podrías esperar.&lt;/p>
&lt;h2 id="que-tema-en-el-area-de-agile-deberia-recibir-mas-atencion">¿Qué tema en el área de agile debería recibir más atención?&lt;/h2>
&lt;p>La construcción de equipos y abrazar la agilidad, empezando por preguntar “¿por qué?” Necesitamos desafiar el statu quo más a menudo y preguntarnos por qué trabajamos de la manera en que lo hacemos y cómo y qué podríamos hacer diferente para seguir mejorando y nunca dejar de aprender.&lt;/p>
&lt;blockquote>
&lt;p>También puedes leer la entrevista desde el enlace original: &lt;a rel="external" href="https://devm.io/agile/extreme-programming-agile">https://devm.io/agile/extreme-programming-agile&lt;/a>.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Momo</title><subtitle>O la extraña historia de los ladrones de tiempo y la niña que devolvió el tiempo robado a la gente</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2022-12-17T00:00:00+00:00</published><updated>2022-12-17T00:00:00+00:00</updated><author><name>
Michael Ende</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/momo/"/><id>https://chemaclass.com/es/readings/momo/</id><summary type="html">Un cuento de hadas moderno sobre nuestra obsesión con el tiempo y cómo hemos olvidado cuidar a los demás.</summary><content type="html">&lt;p>Un cuento de hadas moderno que refleja la lucha entre el bien y el mal en nuestra sociedad. El foco: la falta de tiempo para cuidar a quienes nos importan.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Este libro explora nuestra relación con el tiempo y cómo lo usamos (o malgastamos) en la sociedad moderna.&lt;/p></content></entry><entry xml:lang="es"><title>¿Ignorar Scrum para ser más Agile?</title><subtitle>Matando la agilidad con reuniones excesivas</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-12-06T00:00:00+00:00</published><updated>2022-12-06T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/ignoring-scrum-to-get-more-agile/"/><id>https://chemaclass.com/es/blog/ignoring-scrum-to-get-more-agile/</id><summary type="html">Las personas se vuelven esclavas de sistemas que se supone que ayudan. Las reuniones aburridas están matando el agile. Las reuniones requieren participación activa de todos. De lo contrario, podrías no ser esencial para esa reunión, y mejor usar tu tiempo con algo más.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-12-06/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Hablando con un amigo sobre agile, me hizo una pregunta interesante: a veces Agile y Scrum encajan mal, especialmente con las reuniones. Aquí van mis reflexiones.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“¿Crees que tendría sentido simplemente usar agile e ignorar scrum (sprints) completamente en una empresa basada en producto? Siento que es difícil ser agile cuando tienes 10 horas de reuniones por semana.” Filip G.&lt;/p>
&lt;/blockquote>
&lt;p>Esto conecta con la esencia de &lt;a href="/es/readings/xp-embrace-change/">Extreme Programming&lt;/a>: el primer valor es la Comunicación Efectiva.&lt;/p>
&lt;blockquote>
&lt;p>“Probablemente algunas empresas no saben usar bien las reuniones y las hacen por costumbre.” Filip G.&lt;/p>
&lt;/blockquote>
&lt;p>No diría ignorar Scrum del todo. Scrum (bien hecho) es un gran “Framework de Gestión de Producto”. Para entenderlo mejor recomiendo: &lt;a href="/es/readings/scrum-the-art-of-doing-twice">Scrum: The Art of Doing Twice the Work in Half the Time&lt;/a>.&lt;/p>
&lt;p>El problema principal con Scrum hoy es que la gestión tomó el control y los desarrolladores no saben practicarlo de forma realmente Agile. Ahí empieza el problema. Recomiendo &lt;a href="/es/readings/zombie-scrum-survival-guide/">Zombie Scrum Survival Guide&lt;/a>, un libro divertido y fácil de leer que aborda los problemas típicos de equipos Scrum.&lt;/p>
&lt;p>No es “Agile sí, Scrum no”. Son compatibles. El reto es enfocar los procesos del equipo desde una perspectiva agile.&lt;/p>
&lt;h2 id="agile-en-pocas-palabras">Agile en pocas palabras&lt;/h2>
&lt;p>Recientemente escribí un post sobre fundamentos agile, que te recomiendo leer para entrar en los detalles: &lt;a href="/es/blog/working-agile-with-non-agile-teams/">Trabajando agile con equipos no agile&lt;/a>. Pero, el &lt;strong>tl;dr&lt;/strong>:
&lt;ins>Agile es sobre retroalimentación rápida. Es sobre comunicación efectiva y reducir desperdicio mientras se apunta a la simplicidad.&lt;/ins>&lt;/p>
&lt;p>&lt;a rel="external" href="https://agilemanifesto.org/">Agile&lt;/a> es sobre mantener estos valores siempre presentes:&lt;/p>
&lt;ul>
&lt;li>Individuos e interacciones sobre procesos y herramientas&lt;/li>
&lt;li>Software funcionando sobre documentación extensiva&lt;/li>
&lt;li>Colaboración con el cliente sobre negociación de contratos&lt;/li>
&lt;li>Responder ante el cambio sobre seguir un plan&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Aunque hay valor en los elementos de la derecha, valoramos más los elementos de la izquierda.&lt;/p>
&lt;/blockquote>
&lt;h2 id="scrum-en-pocas-palabras">Scrum en pocas palabras&lt;/h2>
&lt;p>Scrum es un framework de gestión de proyectos orientado al desarrollo de software, aunque se usa en ventas, marketing y más. Está pensado para equipos de 5-9 personas (ver &lt;a href="/es/blog/dunbar-number/">número de Dunbar&lt;/a>) autónomos y responsables de dividir su trabajo en partes pequeñas para completar en iteraciones llamadas sprints (1, 2 o 4 semanas).&lt;/p>
&lt;p>Las ceremonias/reuniones típicas son:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Stand-up&lt;/strong>: 15 min (o menos) para sincronizar al equipo y actuar si alguien está bloqueado o necesita ayuda.&lt;/li>
&lt;li>&lt;strong>Refinement&lt;/strong>: ~2h para asegurar que los tickets están listos antes de planificarlos.&lt;/li>
&lt;li>&lt;strong>Planning&lt;/strong>: ~2h para planificar el trabajo del siguiente sprint.&lt;/li>
&lt;li>&lt;strong>Demo/Review&lt;/strong>: ~2h para mostrar el trabajo hecho al equipo, stakeholders e interesados.&lt;/li>
&lt;li>&lt;strong>Retrospectiva&lt;/strong>: ~2h para que el equipo reflexione y mejore.&lt;/li>
&lt;/ul>
&lt;p>La pregunta clave es cómo organiza tu equipo estas reuniones y, sobre todo, si son efectivas. Estas son solo algunas de las reuniones de cualquier “Equipo Scrum”.&lt;/p>
&lt;p>Pero además de estas, se acumulan muchas otras reuniones. De pronto el día entero se ha ido y sientes que no has producido el valor esperado. Si tu trabajo no consiste en estar en reuniones constantemente, algo está mal.&lt;/p>
&lt;h3 id="reuniones-aburridas">Reuniones aburridas&lt;/h3>
&lt;p>¿Has estado alguna vez en una reunión pensando “&lt;em>Esto es aburrido, qué pérdida de tiempo…&lt;/em>”? Yo lo he vivido más de una vez. ¿A quién culpar? Esa suele ser la primera pregunta. Seguida de: “&lt;em>Mi jefe, obviamente. Él organizó esta reunión, me invitó, estoy obligado a asistir, y esta pérdida de tiempo es su culpa.&lt;/em>”&lt;/p>
&lt;p>No creo que sea una respuesta honesta. Culpar a otros y alejar responsabilidades es mucho más fácil que mirarse a uno mismo.&lt;/p>
&lt;p>“&lt;em>Estoy obligado a asistir, y esta pérdida de tiempo es su culpa&lt;/em>” puede ser cierto. Quizás estabas obligado y estás perdiendo el tiempo. Pero, ¿de verdad no hay forma de actuar al respecto?&lt;/p>
&lt;p>Cuando algo no funciona como espero (no me gusta el resultado, creo que algo está mal), antes de culpar a otros prefiero reflexionar: ¿cuál es la raíz del problema? ¿Qué puedo hacer para mejorar la situación?&lt;/p>
&lt;hr />
&lt;h2 id="que-puedes-hacer-al-respecto">¿Qué puedes hacer al respecto?&lt;/h2>
&lt;p>Volviendo al tema de “muchas reuniones”: si estás en una que se siente mal o aburrida, pregúntate:&lt;/p>
&lt;blockquote>
&lt;p>¿Me aburro? ¿Por qué? ¿Quizás no participo en el resultado de la reunión? Si es así, ¿mi presencia es realmente necesaria? ¿Podría pedir un resumen después y salir para hacer algo más productivo?&lt;/p>
&lt;p>O al revés: ¿está bien aburrirse en esta reunión? ¿Debería participar más y contribuir al resultado?&lt;/p>
&lt;/blockquote>
&lt;p>Veo este patrón:&lt;/p>
&lt;ul>
&lt;li>Si la reunión no aburre, es productiva y dará buenos resultados para todos.&lt;/li>
&lt;li>Si aburre, hay dos opciones: A) está bien que aburra, pide salir educadamente y pide el resumen después; o B) no está bien que aburra porque tu participación es necesaria. Involúcrate más con tus compañeros y la reunión dejará de ser aburrida.&lt;/li>
&lt;/ul>
&lt;p>Hay muchas estrategias. Depende de ti actuar cuando veas algo mejorable.&lt;/p>
&lt;p>Está bien señalar el “&lt;em>elefante en la habitación&lt;/em>” y pedir ayuda para mejorar cualquier situación que sientas que no funciona como debería.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-12-06/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Recipes for Decoupling</title><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2022-11-28T00:00:00+00:00</published><updated>2022-11-28T00:00:00+00:00</updated><author><name>
Matthias Noback</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/recipes-for-decoupling/"/><id>https://chemaclass.com/es/readings/recipes-for-decoupling/</id><summary type="html">¿Qué es el acoplamiento y por qué nos perjudica? Este libro recopila estrategias prácticas para separar tu código de dominio de la infraestructura y mantener un sistema sano a largo plazo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>¿Qué es el acoplamiento y por qué nos perjudica? ¿Cómo desacoplar de forma eficiente? Este libro recopila estrategias para separar tu código de dominio de los detalles de infraestructura. El resultado: un sistema más sano a largo plazo.&lt;/p>
&lt;p>Aprenderás a crear reglas de &lt;a rel="external" href="https://phpstan.org/">&lt;strong>PHPStan&lt;/strong>&lt;/a> desde cero. Además, el libro te guía por múltiples oportunidades de desacoplamiento:&lt;/p>
&lt;ul>
&lt;li>framework web&lt;/li>
&lt;li>frameworks cli&lt;/li>
&lt;li>validación de formularios&lt;/li>
&lt;li>orm y base de datos&lt;/li>
&lt;li>framework de testing&lt;/li>
&lt;/ul>
&lt;p>Lee más sobre el libro: &lt;a rel="external" href="https://matthiasnoback.nl/book/recipes-for-decoupling/">matthiasnoback.nl/book/recipes-for-decoupling/&lt;/a>&lt;/p>
&lt;blockquote>
&lt;p>Cómpralo aquí: &lt;a rel="external" href="https://leanpub.com/recipes-for-decoupling">leanpub.com/recipes-for-decoupling&lt;/a>&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Trabajando Agile con Equipos No Agile</title><subtitle>¿Cómo puedes trabajar con otros equipos que no son agile?</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2022-11-11T00:00:00+00:00</published><updated>2022-11-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/working-agile-with-non-agile-teams/"/><id>https://chemaclass.com/es/blog/working-agile-with-non-agile-teams/</id><summary type="html">Asumamos que ya sabes qué es el manifiesto agile. Consideremos que aplicas la mayoría de los valores, principios y prácticas de extreme programming. ¿Cómo puedes trabajar con otros equipos que no son agile?</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-11-11/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Asumamos que ya sabes qué es el manifiesto agile. Consideremos que aplicas la mayoría de los valores, principios y prácticas de “extreme programming”. ¿Cómo puedes trabajar con otros equipos que no son agile?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;ul>
&lt;li>Individuos e interacciones sobre procesos y herramientas&lt;/li>
&lt;li>Software funcionando sobre documentación extensiva&lt;/li>
&lt;li>Colaboración con el cliente sobre negociación de contratos&lt;/li>
&lt;li>Responder ante el cambio sobre seguir un plan&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;p>Estás usando bucles de retroalimentación cortos, donde las cosas cambian constantemente. Puedes sentir que el equipo está vivo y cada uno es esencial.&lt;/p>
&lt;p>&lt;strong>Abrazas el cambio&lt;/strong> hasta el punto de que &lt;strong>disfrutas&lt;/strong> saliendo de tu zona de confort cuando es necesario. Buscando crear &lt;strong>valor&lt;/strong> para tu equipo y sus dinámicas, y siempre considerando el crecimiento personal.&lt;/p>
&lt;p>Pero claro, asumamos todo eso, y todo lo demás que pueda haber olvidado respecto a la “&lt;strong>agilidad&lt;/strong>”, ¿cómo podrías trabajar con un equipo externo que no es agile? ¿Cómo podría tu “equipo perfectamente agile” trabajar con otro grupo de personas que no tiene nada que ver con software? Por ejemplo, un médico.&lt;/p>
&lt;p>Un médico no tiene tiempo para aprender sobre tus “valores y principios agile para desarrollo de software”. Un médico no tiene tiempo para aprender sobre “extreme programming”. De manera similar, no tienen tiempo para aprender sobre testing, diseño, arquitectura y &lt;strong>buenas prácticas&lt;/strong> relacionadas con el software en general.&lt;/p>
&lt;p>¿Cómo podrías crear un &lt;strong>puente&lt;/strong> entre ese médico y tu equipo de software?&lt;/p>
&lt;h2 id="como-podrias-trabajar-agile-con-ese-medico">¿Cómo podrías trabajar agile con ese médico?&lt;/h2>
&lt;p>Si necesitas trabajar con ese médico es porque él/ella debería ser un experto de dominio. Sugiero que uno o dos miembros de tu equipo se reúnan con ese experto durante 30/60 min, para que puedan hablar y compartir sus impresiones. Y luego repetir esto tanto como sea posible para acortar el bucle de retroalimentación. Por ejemplo, una vez a la semana.&lt;/p>
&lt;p>Recopilar esos requisitos e impresiones de los expertos y luego dirigir el diseño de tu software de acuerdo con eso es &lt;a rel="external" href="https://en.wikipedia.org/wiki/Domain-driven_design">Domain-Driven Design&lt;/a>. Puedes encontrar mucha documentación sobre &lt;em>DDD&lt;/em> en libros (como &lt;em>&lt;a href="/es/readings/domain-driven-design-distilled">Domain-Driven Design Distilled&lt;/a>&lt;/em>) o en muchos blogs en Internet.&lt;/p>
&lt;p>Sin embargo, el aspecto crítico aquí no es qué requisitos o impresiones &lt;em>se están resolviendo&lt;/em> sino &lt;strong>cómo&lt;/strong>.
¿Cómo podrías trabajar agile con ese médico?&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-11-11/middle.jpg" alt="blog-middle" />&lt;/p>
&lt;blockquote>
&lt;p>Agile es sobre retroalimentación rápida. Es sobre comunicación efectiva y reducir desperdicio mientras se apunta a la simplicidad.&lt;/p>
&lt;/blockquote>
&lt;h3 id="al-aplicar-verdaderamente-estos-cinco-valores-ya-estas-actuando-de-forma-agile">Al aplicar verdaderamente estos cinco valores, ya estás actuando de forma agile&lt;/h3>
&lt;ul>
&lt;li>Comunicación&lt;/li>
&lt;li>Retroalimentación&lt;/li>
&lt;li>Simplicidad&lt;/li>
&lt;li>Coraje&lt;/li>
&lt;li>Respeto&lt;/li>
&lt;/ul>
&lt;p>Estos &lt;strong>objetivos abstractos&lt;/strong> aplican a cualquier profesión, e incluso a la vida, no solo al software.&lt;/p>
&lt;blockquote>
&lt;p>La comunicación continua ayuda a acortar el bucle de retroalimentación, lo que simplifica las tareas. Siempre con el coraje de abordar la verdad y respeto mutuo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="las-practicas-son-las-cosas-que-haces">Las prácticas son las cosas que haces&lt;/h3>
&lt;ul>
&lt;li>Sentarse Juntos&lt;/li>
&lt;li>Pair Programming&lt;/li>
&lt;li>Test First&lt;/li>
&lt;li>Diseño Incremental&lt;/li>
&lt;li>y muchas más&lt;/li>
&lt;/ul>
&lt;p>Y a pesar de tener un nombre técnico, podrían aplicar a cualquier profesión:&lt;/p>
&lt;blockquote>
&lt;ul>
&lt;li>Sentarse Juntos &amp;amp; Pair Programming: &lt;strong>pensar y hacer&lt;/strong> con otros compañeros&lt;/li>
&lt;li>Test First: &lt;strong>verifica tus suposiciones&lt;/strong> primero, luego resuelve el problema&lt;/li>
&lt;li>Diseño Incremental: lo que sea que hagas, &lt;strong>hazlo mejor&lt;/strong> incrementalmente&lt;/li>
&lt;/ul>
&lt;/blockquote>
&lt;h3 id="los-principios-guian-y-motivan-las-practicas-hacia-los-valores">Los principios guían y motivan las prácticas hacia los valores&lt;/h3>
&lt;ul>
&lt;li>Beneficio Mutuo&lt;/li>
&lt;li>Diversidad&lt;/li>
&lt;li>Fracaso&lt;/li>
&lt;li>Oportunidad&lt;/li>
&lt;li>Pasos Pequeños&lt;/li>
&lt;li>Calidad&lt;/li>
&lt;li>y muchos más&lt;/li>
&lt;/ul>
&lt;p>El beneficio mutuo es el más importante porque se trata de encontrar prácticas que nos beneficien ahora, a nosotros después, y también al cliente.&lt;/p>
&lt;blockquote>
&lt;p>Otros principios incluyen la diversidad de ideas. No tengas miedo del fracaso. Mira todo lo que haces como una oportunidad de aprendizaje. Evita pasos gigantes porque tienen mayor riesgo de fallar. Apunta a un sistema de alta calidad porque son más predecibles y más fáciles de cambiar.&lt;/p>
&lt;/blockquote>
&lt;h2 id="la-pregunta-permanece-eres-agile">La pregunta permanece: ¿eres agile?&lt;/h2>
&lt;p>Creo verdaderamente que un equipo agile es el que puede lidiar con el cambio a nivel de equipo. Por lo tanto, primero debes dominar agile dentro de tu equipo, y luego puedes colaborar con otros equipos de “manera agile”.&lt;/p>
&lt;p>Una vez que hayas interiorizado estos puntos anteriores, puedes aplicarlos mientras trabajas con cualquier persona de cualquier equipo.&lt;/p>
&lt;p>Aunque estas ideas aisladas son buenas, son aún más poderosas cuando se combinan. Crean una atmósfera de curiosidad y aprendizaje activo. Incluso podría despertar alguna &lt;strong>pasión&lt;/strong> por tu profesión que construye un aura de cohesión de equipo, y así sin más, el equipo respira por sí mismo.&lt;/p>
&lt;p>Todos se preocupan y asumen plena responsabilidad de mantener al equipo saludable construyendo &lt;strong>confianza&lt;/strong>. No hay miedo a &lt;strong>conflictos&lt;/strong> saludables. Se sienten empoderados y &lt;strong>responsables&lt;/strong> de sus compromisos. El equipo &lt;strong>celebra&lt;/strong> sus resultados y aprende de sus &lt;strong>errores&lt;/strong>; ya no hay necesidad de máscaras.&lt;/p>
&lt;p>Es entonces cuando la magia empieza a suceder, y de repente puedes trabajar agile con cualquier equipo, especialmente el tuyo.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-11-11/footer.jpg" alt="blog-footer" />&lt;/p></content></entry><entry xml:lang="es"><title>Lo esencial de Drucker</title><subtitle>Lo Mejor de Sesenta Años de Escritos de Peter Drucker sobre Gestión</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2022-10-29T00:00:00+00:00</published><updated>2022-10-29T00:00:00+00:00</updated><author><name>
Peter F. Drucker</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-essential-drucker/"/><id>https://chemaclass.com/es/readings/the-essential-drucker/</id><summary type="html">Veintiséis textos esenciales sobre gestión: cómo liderar organizaciones, desarrollar personas y entender el papel de las empresas en la sociedad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Una selección de veintiséis textos sobre gestión organizacional, el individuo y la sociedad.&lt;/p>
&lt;p>El libro cubre los principios básicos de la gestión junto con sus problemas, desafíos y oportunidades. Ofrece a managers, ejecutivos y profesionales las herramientas necesarias para afrontar lo que la economía y la sociedad del mañana les exigirán.&lt;/p>
&lt;hr />
&lt;h2 id="4-principios-esenciales-de-la-gestion">4 Principios Esenciales de la Gestión&lt;/h2>
&lt;ol>
&lt;li>La gestión trata sobre humanos&lt;/li>
&lt;li>La gestión debe definir los valores, objetivos, metas y misión de una organización&lt;/li>
&lt;li>La gestión debe permitir que la organización y sus miembros crezcan y se desarrollen&lt;/li>
&lt;li>Los resultados solo existen fuera de la organización&lt;/li>
&lt;/ol>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/1il9VfJoaDo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Diferentes Creencias sobre la Calidad del Software</title><subtitle>Algunas reflexiones sobre la calidad del software en tu equipo</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2022-10-08T00:00:00+00:00</published><updated>2022-10-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/different-beliefs-about-software-quality/"/><id>https://chemaclass.com/es/blog/different-beliefs-about-software-quality/</id><summary type="html">¿Qué hacer cuando trabajas en "software malo" y no puedes mejorarlo porque va en contra de las creencias de tus compañeros? ¿Deberías cambiar de empresa?</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-10-08/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Hace poco recibí una pregunta en Twitter que me hizo pensar bastante. Decidí compartir mis reflexiones al respecto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="contexto">Contexto&lt;/h2>
&lt;p>Primero, algo de contexto: me siento muy bien porque el código base donde trabajo mejora cada vez más, así que tuiteé esto:&lt;/p>
&lt;blockquote>
&lt;p>“A medida que el software mejora con el tiempo, puedes sentir que lo estás haciendo bien.”&lt;/p>
&lt;/blockquote>
&lt;p>Y entonces recibí una pregunta pidiendo sugerencias:&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-10-08/tweet.jpg" alt="blog-tweet" />&lt;/p>
&lt;p>Así que aquí vamos…&lt;/p>
&lt;hr />
&lt;h2 id="mi-respuesta">Mi respuesta&lt;/h2>
&lt;h3 id="crear-acuerdos">Crear acuerdos&lt;/h3>
&lt;p>Lo primero es crear acuerdos sobre qué significa software de calidad para tu equipo y para ti. Esto aclara qué cultura de software quieres construir. Dejar tu empresa debería ser el &lt;em>último recurso&lt;/em>.&lt;/p>
&lt;p>Antes de pensar en irte, pregúntate:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>¿Por qué crees&lt;/strong> que no puedes mejorar el código base de tu empresa?&lt;/li>
&lt;li>&lt;strong>¿Qué puedes hacer&lt;/strong> para reducir la fricción entre tus diferentes creencias sobre calidad?&lt;/li>
&lt;/ul>
&lt;p>No existe un código base perfecto. El software es una entidad viva que cambia constantemente. Para mí, software de calidad es el que puede adaptarse al cambio con facilidad.&lt;/p>
&lt;p>Una vez que acordéis ese objetivo, hay muchas formas de lograrlo. Mi favorita es mantener una &lt;strong>mentalidad agile&lt;/strong> con dosis de &lt;strong>valores, principios y prácticas de Extreme Programming&lt;/strong>.&lt;/p>
&lt;h3 id="el-software-es-sobre-personas">El software es sobre personas&lt;/h3>
&lt;p>El software no es solo escribir &lt;em>código limpio y sólido&lt;/em>. Eso es deseable, claro, pero primero hay que entender por qué lo queremos. El “&lt;em>por qué&lt;/em>” se basa en los &lt;strong>valores&lt;/strong> del equipo.&lt;/p>
&lt;p>Si no compartís el mismo propósito, el mismo “por qué”, no &lt;em>disfrutaréis&lt;/em> trabajando juntos. En ese caso, buscar otra empresa que comparta tus valores es una opción. Pero antes, intenta arreglar el problema de raíz y ayuda a tu equipo a mejorar.&lt;/p>
&lt;h3 id="entendiendo-tu-por-que">Entendiendo tu por qué&lt;/h3>
&lt;p>Primero necesitas entender tu “&lt;em>por qué&lt;/em>” a fondo para transmitirlo a tus compañeros. ¿Has hecho todo lo posible para comunicar tu “&lt;em>por qué&lt;/em>”?&lt;/p>
&lt;p>Algunas ideas: fomentar la programación colaborativa (pair/mob), dar charlas técnicas internas, crear una cultura de compartir conocimiento a diario, cuestionar el statu quo y buscar oportunidades de mejora en todas partes.&lt;/p>
&lt;h3 id="tu-trayectoria-profesional">Tu trayectoria profesional&lt;/h3>
&lt;p>Si después de varios meses intentando estas ideas de verdad ninguna funciona, busca una empresa que comparta tus creencias. Al fin y al cabo, tú eres el principal responsable de tu carrera profesional.&lt;/p>
&lt;blockquote>
&lt;p>&lt;a rel="external" href="https://x.com/Chemaclass/status/1578425454562021376">Hilo de twitter&lt;/a> original.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2022-10-08/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;h2 id="pensamientos-adicionales">Pensamientos adicionales&lt;/h2>
&lt;p>Si &lt;strong>quieres que algo sea diferente&lt;/strong>, no esperes a que cambie solo. Intenta &lt;strong>cambiarlo&lt;/strong>; si no funciona, déjalo. Quizás no es tu sitio.&lt;/p>
&lt;p>Eso sí, reflexiona si ves este patrón repetirse a menudo (cambiar de empresa demasiado rápido). Si es así, quizás el problema no son las empresas sino tú.&lt;/p>
&lt;p>El desarrollo de software no es solo código, es &lt;strong>negocio&lt;/strong>. Hay que encontrar un equilibrio justo entre velocidad, costes y calidad según la situación. A veces conviene asumir algo de &lt;em>deuda técnica&lt;/em> para llegar antes al mercado.&lt;/p>
&lt;p>Ningún equipo debería tener “baja calidad” como parte de su identidad. Cada equipo tiene expectativas de calidad. La &lt;strong>clave&lt;/strong> está en &lt;strong>acordar qué es buena calidad&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>Gracias a mi anterior Engineering Manager, Evgenii Sokolov, quien me inspiró a escribir estas líneas adicionales después de compartir el post original.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Atrévete a liderar</title><subtitle>Trabajo Valiente. Conversaciones Difíciles. Corazones Enteros.</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2022-09-30T00:00:00+00:00</published><updated>2022-09-30T00:00:00+00:00</updated><author><name>
Brené Brown</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/dare-to-lead/"/><id>https://chemaclass.com/es/readings/dare-to-lead/</id><summary type="html">El liderazgo no va de títulos ni de poder. Va de reconocer el potencial en las personas y ayudarlas a desarrollarlo. Un libro para quienes prefieren el coraje a la comodidad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El liderazgo no va de títulos, estatus ni poder sobre los demás. Los líderes reconocen el potencial en las personas y las ideas, y se comprometen a desarrollarlo. Este libro es para quienes están listos para elegir el coraje sobre la comodidad y marcar la diferencia.&lt;/p>
&lt;h2 id="coraje-y-vulnerabilidad">Coraje y vulnerabilidad&lt;/h2>
&lt;h3 id="los-lideres-necesitan-ser-mas-vulnerables">Los líderes necesitan ser más vulnerables&lt;/h3>
&lt;p>El problema es que la mayoría de las personas asocian esa vulnerabilidad como sinónimo de debilidad, pero eso no es cierto.&lt;/p>
&lt;blockquote>
&lt;p>“La vulnerabilidad es la emoción humana universal que sentimos cuando nos exponemos a otros durante momentos de riesgo o
incertidumbre.”&lt;/p>
&lt;/blockquote>
&lt;p>Y de esto se trata el núcleo del liderazgo: el coraje &lt;strong>para actuar como debemos&lt;/strong> a pesar del miedo, la incertidumbre o
el peligro en nuestro camino.&lt;/p>
&lt;h2 id="valores">Valores&lt;/h2>
&lt;p>El lugar de trabajo moderno puede sentirse como una “arena de gladiadores”. Aunque puede que no sea una cuestión de vida o muerte,
todavía requiere valentía, y mucho esfuerzo y lágrimas, al punto de que podemos sentirnos tan abrumados que estamos
tentados a irnos. Entonces, según Brené:&lt;/p>
&lt;blockquote>
&lt;p>“Una de las fuentes más significativas de motivación para aguantar es tener absolutamente claros nuestros valores fundamentales.”&lt;/p>
&lt;/blockquote>
&lt;p>Los valores son los &lt;strong>ideales&lt;/strong> que tenemos y que dan propósito a lo que hacemos en nuestra vida. Nos guían y nos dan algo a lo que
aferrarnos durante tiempos oscuros y difíciles. Los valores fuertes nos guían &lt;strong>a hacer lo correcto&lt;/strong> en lugar de lo fácil.&lt;/p>
&lt;h2 id="honestidad">Honestidad&lt;/h2>
&lt;p>Un gran líder fomenta el potencial en las personas y posee el coraje de guiar este potencial mientras se desarrolla. Una de
las habilidades críticas para hacer esto es el coraje y la capacidad de dar &lt;strong>retroalimentación honesta y abierta&lt;/strong>.&lt;/p>
&lt;p>Desafortunadamente, muchos líderes tienen miedo de dar retroalimentación difícil y dejan a sus empleados en la oscuridad. Sí, a veces la
verdad duele, pero a menudo evitamos las conversaciones difíciles porque nos hacen sentir incómodos &lt;strong>a nosotros&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>“Los grandes líderes deben ser valientes y siempre atreverse a proporcionar retroalimentación constructiva, decir la verdad y ser claros sobre
sus expectativas.”&lt;/p>
&lt;/blockquote>
&lt;p>A largo plazo, esto es más amable y más productivo.&lt;/p>
&lt;h2 id="confianza">Confianza&lt;/h2>
&lt;blockquote>
&lt;p>“La confianza es un aspecto esencial de nuestras relaciones laborales.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="7-comportamientos-que-fomentan-la-confianza">7 comportamientos que fomentan la confianza&lt;/h3>
&lt;p>Expresados junto con el acrónimo: &lt;em>BRAVING&lt;/em>&lt;/p>
&lt;ol>
&lt;li>Establecer &lt;strong>B&lt;/strong>oundaries (Límites) - respetar los límites de cada uno&lt;/li>
&lt;li>&lt;strong>R&lt;/strong>eliability (Fiabilidad) - lo que significa seguir las palabras con acciones&lt;/li>
&lt;li>&lt;strong>A&lt;/strong>ccountability (Responsabilidad) - ser responsable y reconocer los errores&lt;/li>
&lt;li>&lt;strong>V&lt;/strong>ault (Bóveda) - la capacidad de mantener privada la información confidencial&lt;/li>
&lt;li>&lt;strong>I&lt;/strong>ntegrity (Integridad) - elegir el coraje sobre la comodidad&lt;/li>
&lt;li>&lt;strong>N&lt;/strong>on-judgment (No juzgar) - hablar entre nosotros sin juzgar&lt;/li>
&lt;li>&lt;strong>G&lt;/strong>enerosity (Generosidad) - asumir que las personas se encuentran contigo con las mejores intenciones&lt;/li>
&lt;/ol>
&lt;h2 id="fracaso">Fracaso&lt;/h2>
&lt;p>La capacidad de fracasar y recuperarse de ello es una &lt;strong>habilidad esencial&lt;/strong> para cualquier gran líder. El miedo al fracaso nos frena y
nos impide alcanzar la verdadera grandeza.&lt;/p>
&lt;p>Es crucial &lt;strong>quitarse la armadura del perfeccionismo&lt;/strong> y saltar a la incertidumbre de la vida. Solo de esta manera
ganamos realmente el coraje para tener éxito y liderar.&lt;/p>
&lt;hr />
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/uk68F2Jl3q8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>La Belleza del Liderazgo</title><subtitle>¿Team Lead? ¿Tech Lead? ¿Qué es el liderazgo y qué no lo es?</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2022-09-25T00:00:00+00:00</published><updated>2022-09-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-beauty-of-leadership/"/><id>https://chemaclass.com/es/blog/the-beauty-of-leadership/</id><summary type="html">El liderazgo es acción, no un título. No tiene nada que ver con gestión o jerarquía. Qué significa realmente y cómo cualquiera puede liderar.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-09-25/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>El liderazgo no es sinónimo de gestión, no tiene nada que ver con títulos o atributos personales. Entonces, ¿qué es? ¿Cómo podemos convertirnos en líderes? Y lo más importante, ¿por qué?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Investigando este tema, encontré &lt;a rel="external" href="https://www.forbes.com/sites/kevinkruse/2013/04/09/what-is-leadership/">“What is leadership” de Kevin Kruse&lt;/a>, que me gustó mucho. Quiero compartir los puntos clave de ese post porque explica muy bien qué &lt;em>es&lt;/em> y qué &lt;em>no es&lt;/em> liderazgo.&lt;/p>
&lt;hr />
&lt;h2 id="que-no-es-liderazgo">¿Qué no es liderazgo?&lt;/h2>
&lt;p>El liderazgo no tiene nada que ver con títulos. Tener un cargo de nivel C no te convierte automáticamente en líder. No necesitas un título para serlo.&lt;/p>
&lt;p>Tampoco tiene que ver con atributos personales. No hace falta ser extrovertido ni carismático para practicar el liderazgo.&lt;/p>
&lt;p>Liderazgo y gestión no son lo mismo. Gestionar implica planificar, medir, monitorear, coordinar, resolver, contratar, despedir… Los managers gestionan &lt;em>cosas&lt;/em>. Los líderes lideran &lt;strong>personas&lt;/strong>.&lt;/p>
&lt;h2 id="que-es-liderazgo">¿Qué es liderazgo?&lt;/h2>
&lt;blockquote>
&lt;p>“Un líder es alguien que tiene seguidores.” Peter Drucker.&lt;/p>
&lt;/blockquote>
&lt;p>Esta definición es demasiado simplista y puede ser peligrosa. Que tengas personas “bajo ti” haciendo lo que dices porque “siguen órdenes” no te convierte en líder. Podrías ser un comandante, pero no necesariamente un líder.&lt;/p>
&lt;blockquote>
&lt;p>“La capacidad de traducir la visión en realidad.” Warren Bennis.&lt;/p>
&lt;/blockquote>
&lt;p>Cada sprint, visualizas frutos en tu jardín. Y trabajas hacia ello y lo haces realidad. Esto te hace jardinero, no líder.&lt;/p>
&lt;blockquote>
&lt;p>“Los líderes serán aquellos que empoderen a otros.” Bill Gates.&lt;/p>
&lt;/blockquote>
&lt;p>Empoderar a otros es esencial, pero falta la visión u objetivo común.&lt;/p>
&lt;blockquote>
&lt;p>“El liderazgo es influencia.” John Maxwell.&lt;/p>
&lt;/blockquote>
&lt;p>Un manager tiene el poder de despedir miembros del equipo, lo que da mucha influencia. Igual que un ladrón con pistola tiene “influencia” sobre sus víctimas. Nos falta la fuente de esa influencia.&lt;/p>
&lt;h3 id="entonces-que-tal-combinarlas-todas">Entonces, ¿qué tal combinarlas todas?&lt;/h3>
&lt;blockquote>
&lt;p>“El liderazgo es un proceso de influencia social, que maximiza los esfuerzos de otros hacia el logro de un objetivo.” Kevin Kruse&lt;/p>
&lt;/blockquote>
&lt;p>Elementos clave de esta definición:&lt;/p>
&lt;ul>
&lt;li>El liderazgo comienza desde la influencia social, no la autoridad o el poder&lt;/li>
&lt;li>El liderazgo requiere otros, no necesariamente subordinados directos&lt;/li>
&lt;li>Incluye un objetivo&lt;/li>
&lt;li>No hay mención de un título o atributos de ningún tipo&lt;/li>
&lt;/ul>
&lt;p>&lt;em>Fin de los puntos clave de &lt;a rel="external" href="https://www.forbes.com/sites/kevinkruse/2013/04/09/what-is-leadership/">“What is leadership” por Kevin Kruse&lt;/a>.&lt;/em>&lt;/p>
&lt;hr />
&lt;p>&lt;img src="/images/blog/2022-09-25/footer.jpg" alt="blog-cover" />&lt;/p>
&lt;h2 id="por-que-alguien-querria-convertirse-en-lider">¿Por qué alguien querría convertirse en líder?&lt;/h2>
&lt;p>Hay dos concepciones diferentes en esta pregunta, y conviene separarlas desde el principio.&lt;/p>
&lt;p>Por un lado está el “título de líder”, asociado normalmente con puestos de gestión. &lt;strong>No&lt;/strong> me refiero a eso. Puedes ser un gran manager y un pésimo líder.&lt;/p>
&lt;p>Un líder es alguien con actitud de &lt;strong>multiplicador&lt;/strong>. Busca desarrollar habilidades (relacionadas con su influencia social) para potenciar el valor que genera.&lt;/p>
&lt;p>Entonces, ¿puede cualquiera convertirse en líder? ¿Cuáles son esas &lt;em>habilidades&lt;/em> necesarias?&lt;/p>
&lt;h2 id="puede-todo-el-mundo-convertirse-en-lider">¿Puede todo el mundo convertirse en líder?&lt;/h2>
&lt;p>Con esta definición clara, podemos ver que el liderazgo tiene distintos grados según la persona y las responsabilidades que quiera asumir.&lt;/p>
&lt;p>Para convertirte en líder necesitas habilidades específicas. Estas son las que considero más importantes:&lt;/p>
&lt;ul>
&lt;li>Excelente &lt;strong>comunicación&lt;/strong>, dando apoyo y habilitando a las personas a tu alrededor&lt;/li>
&lt;li>Liderar con el &lt;strong>ejemplo&lt;/strong>, especialmente para convertirte en una mejor versión de ti mismo&lt;/li>
&lt;li>&lt;strong>Pasión&lt;/strong> por compartir tus habilidades de liderazgo, para que construyas otros líderes&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>El liderazgo comienza dentro de tu propia vida y comportamiento.&lt;/p>
&lt;/blockquote>
&lt;p>Sé que no todos quieren aceptar los cambios necesarios para convertirse en líder. Pero creo de verdad que cualquiera puede desarrollar ciertas habilidades de liderazgo, lo que también significa &lt;strong>inspirar&lt;/strong> a quienes te rodean.&lt;/p>
&lt;h2 id="como-convertirse-en-un-mejor-lider">¿Cómo convertirse en un mejor líder?&lt;/h2>
&lt;p>Puedes inspirarte en muchas fuentes. Aprendes de tus errores y éxitos, y de quienes te rodean. Pero también es muy útil escuchar la sabiduría de gente fuera de tu círculo: podcasts, charlas TED, libros, audiolibros…&lt;/p>
&lt;blockquote>
&lt;p>La belleza del liderazgo es que no pide permiso. Ni título, ni promoción, ni organigrama. Empieza en el momento en que decides elevar a quienes te rodean.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Entendiendo a las Personas</title><subtitle>Malentendidos, comunicación efectiva y autorreflexión</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2022-08-22T00:00:00+00:00</published><updated>2022-08-22T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/understanding-people/"/><id>https://chemaclass.com/es/blog/understanding-people/</id><summary type="html">Uno de los mayores retos es evitar malentendidos y aceptar que los demás no piensan igual que tú.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-08-22/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Uno de los mayores retos es evitar malentendidos y aceptar que los demás no piensan igual que tú.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="percepciones-diferentes">Percepciones diferentes&lt;/h2>
&lt;p>Cada persona tiene experiencias y antecedentes distintos. Todos percibimos la realidad de forma diferente. Ser consciente de esto es el primer paso para entender tu rol en la comunicación con otros, y para desarrollar empatía.&lt;/p>
&lt;p>Muchas veces, el verdadero problema detrás de la fricción en un equipo es la mala comunicación. A veces nadie sabe cómo ni por qué dos miembros del equipo ya no se llevan bien. Pero el conflicto es obvio.&lt;/p>
&lt;p>El problema es que impide al equipo trabajar con eficacia. La razón suele ser la &lt;strong>incapacidad de entender las motivaciones y problemas del otro&lt;/strong>.&lt;/p>
&lt;p>Y eso lleva a malentendidos.&lt;/p>
&lt;h2 id="malentendidos">Malentendidos&lt;/h2>
&lt;p>Lo que tú entiendes de una conversación puede diferir de lo que percibe la otra persona. Eso causa problemas. Y puede convertirse en algo serio que afecte la relación entre ambas partes.&lt;/p>
&lt;h2 id="como-resolverlo">¿Cómo resolverlo?&lt;/h2>
&lt;p>Evitar malentendidos no es fácil, pero puedes mejorar paso a paso trabajando tus habilidades de comunicación.&lt;/p>
&lt;h3 id="empatia">Empatía&lt;/h3>
&lt;p>Empatía es la capacidad de entender lo que sienten otras personas. Ver las cosas desde su punto de vista e imaginarte en su lugar. Ponerte en su posición.&lt;/p>
&lt;h3 id="comunicacion-efectiva">Comunicación efectiva&lt;/h3>
&lt;p>La solución no suele empezar por arreglar a la otra persona. Lo que ayuda es trabajar en &lt;strong>ser más explícito&lt;/strong>. Por ejemplo:&lt;/p>
&lt;ul>
&lt;li>Clarifica las expectativas sobre el objetivo común
&lt;ul>
&lt;li>Crea conversaciones abiertas y honestas sobre lo que esperas&lt;/li>
&lt;li>Las suposiciones son peligrosas&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Da tanto contexto como sea necesario
&lt;ul>
&lt;li>Aunque te parezca evidente&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Cada detalle cuenta
&lt;ul>
&lt;li>Más información siempre es mejor que menos&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;p>Para comunicarnos bien, hay que &lt;strong>reducir el riesgo de malentendidos al mínimo&lt;/strong>.&lt;/p>
&lt;h3 id="autorreflexion">Autorreflexión&lt;/h3>
&lt;p>Los conflictos saludables son normales y aceptables. No hay que tener miedo a los desacuerdos. Está bien cambiar de opinión al descubrir nuevas posibilidades. Cuanto antes, mejor.&lt;/p>
&lt;p>En mi experiencia, entender a las personas es complicado por muchas razones. Pero sobre todo por los malentendidos que generamos por falta de contexto, más que por desacuerdos reales.&lt;/p>
&lt;p>Si algo no funciona como esperabas, empieza mirándote a ti mismo. No culpes a otros. ¿Qué podrías haber dicho para crear más claridad? ¿Qué harías diferente?&lt;/p>
&lt;p>La autorreflexión es esencial para mejorar y corregir tu actitud. Para adaptarte al cambio constante que nos rodea, &lt;strong>especialmente cuando tratas con personas&lt;/strong>.&lt;/p>
&lt;blockquote>
&lt;p>Mira más allá de tu área de influencia. Comparte tus ideas y no te avergüences de tus errores si los tomas como oportunidades de aprendizaje.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2022-08-22/footer.jpg" alt="personas comunicándose" />&lt;/p></content></entry><entry xml:lang="es"><title>Continuous Discovery Habits</title><subtitle>Descubre Productos que Crean Valor para el Cliente y Valor de Negocio</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-08-21T00:00:00+00:00</published><updated>2022-08-21T00:00:00+00:00</updated><author><name>
Teresa Torres</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/continuous-discovery-habits/"/><id>https://chemaclass.com/es/readings/continuous-discovery-habits/</id><summary type="html">Una guía práctica para product managers y diseñadores que quieren tomar mejores decisiones y crear productos que realmente importen a sus clientes.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Este libro te enseña cómo product managers y diseñadores pueden crear productos que realmente impacten la vida de sus clientes. Propone un proceso claro de toma de decisiones para equipos de producto que quieran mejorar continuamente.&lt;/p>
&lt;h4 id="parte-1-que-es-el-descubrimiento-continuo">Parte 1: ¿Qué es el descubrimiento continuo?&lt;/h4>
&lt;ol>
&lt;li>El Qué y Por Qué del Descubrimiento Continuo&lt;/li>
&lt;li>Un Framework Común para el Descubrimiento Continuo&lt;/li>
&lt;/ol>
&lt;h4 id="parte-2-los-habitos-de-descubrimiento-continuo">Parte 2: Los hábitos de descubrimiento continuo&lt;/h4>
&lt;ol start="3">
&lt;li>Enfocarse en Resultados Sobre Outputs&lt;/li>
&lt;li>Visualizar Lo Que Sabes&lt;/li>
&lt;li>Entrevistas Continuas&lt;/li>
&lt;li>Mapear el Espacio de Oportunidades&lt;/li>
&lt;li>Priorizar Oportunidades, No Soluciones&lt;/li>
&lt;li>Ideación Potenciada&lt;/li>
&lt;li>Identificar Suposiciones Ocultas&lt;/li>
&lt;li>Probar Suposiciones, No Ideas&lt;/li>
&lt;li>Medir el Impacto&lt;/li>
&lt;li>Gestionar los Ciclos&lt;/li>
&lt;li>Muestra Tu Trabajo&lt;/li>
&lt;/ol>
&lt;h4 id="parte-3-desarrollando-tus-habitos-de-descubrimiento-continuo">Parte 3: Desarrollando tus hábitos de descubrimiento continuo&lt;/h4>
&lt;ol start="14">
&lt;li>Empieza Pequeño e Itera&lt;/li>
&lt;li>¿Qué Sigue?&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>Enfocarse en resultados sobre outputs te ayudará a crear los productos correctos para tus clientes.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="el-que-y-por-que-del-descubrimiento-continuo">El Qué y Por Qué del Descubrimiento Continuo&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/yNCcQODWYh0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Gran CEO Interior</title><subtitle>La guía táctica para construir empresas</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2022-08-01T00:00:00+00:00</published><updated>2022-08-01T00:00:00+00:00</updated><author><name>
Matt Mochary</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-great-ceo-within/"/><id>https://chemaclass.com/es/readings/the-great-ceo-within/</id><summary type="html">Cómo escalar tu negocio de startup a empresa con sistemas de responsabilidad, resolución de problemas y feedback transparente.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Matt Mochary hace coaching a CEOs de las empresas tech de más rápido crecimiento en Silicon Valley. Comparte sus herramientas de liderazgo y operaciones con cualquier CEO o manager del mundo.&lt;/p>
&lt;p>El libro enseña a escalar tu negocio de startup a empresa con sistemas de responsabilidad, resolución de problemas y feedback transparente.&lt;/p>
&lt;blockquote>
&lt;p>Leer, hablar con expertos, practicar y enseñar son las mejores formas de aprender y mejorar.&lt;/p>
&lt;/blockquote>
&lt;h2 id="3-ideas-clave">3 ideas clave&lt;/h2>
&lt;ul>
&lt;li>Aprende a gestionarte a ti mismo antes de gestionar tu negocio.&lt;/li>
&lt;li>No ignores los conflictos. Sé transparente, da y recibe feedback a menudo, y escucha activamente.&lt;/li>
&lt;li>Obsesiónate con conocer a tu cliente. Haz mejores preguntas.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;h3 id="el-equipo">El equipo&lt;/h3>
&lt;ul>
&lt;li>Evita sociedades 50/50. Aunque suena ideal, genera problemas cuando hay que desempatar.&lt;/li>
&lt;li>Busca un socio con habilidades complementarias. Dale un buen porcentaje de la empresa; vale la pena.&lt;/li>
&lt;li>El equipo fundador no debería crecer más de seis personas hasta tener product-market fit (PMF).&lt;/li>
&lt;li>Las métricas de PMF importan: ingresos, tasas de renovación…&lt;/li>
&lt;/ul>
&lt;h3 id="hacer-las-cosas">Hacer las cosas&lt;/h3>
&lt;ul>
&lt;li>Lee “Organízate con Eficacia” (Getting Things Done) de David Allen.&lt;/li>
&lt;/ul>
&lt;h3 id="inbox-cero">Inbox cero&lt;/h3>
&lt;ul>
&lt;li>Mantén tu bandeja de entrada limpia, como el triaje de un hospital.
&lt;ul>
&lt;li>Distingue lo urgente de lo que no lo es.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="meta-principal">Meta principal&lt;/h3>
&lt;ul>
&lt;li>Reserva dos horas cada día para trabajar solo en tu meta principal.&lt;/li>
&lt;li>Cuanto más temprano en el día, mejor.&lt;/li>
&lt;/ul>
&lt;h3 id="puntualidad-y-presencia">Puntualidad y presencia&lt;/h3>
&lt;ul>
&lt;li>No desperdicies el tiempo de los demás.&lt;/li>
&lt;li>Si vas a llegar tarde, avisa cuanto antes.&lt;/li>
&lt;li>Estate presente y enfócate en lo que se discute.&lt;/li>
&lt;/ul>
&lt;h3 id="si-lo-dices-dos-veces-escribelo">Si lo dices dos veces, escríbelo&lt;/h3>
&lt;ul>
&lt;li>Documenta todos los procesos. Ante la duda, escríbelo.&lt;/li>
&lt;/ul>
&lt;h3 id="gratitud">Gratitud&lt;/h3>
&lt;ul>
&lt;li>Enfócate en lo positivo.&lt;/li>
&lt;li>Rendimos mejor cuando disfrutamos y nos sentimos bien.&lt;/li>
&lt;li>Sé agradecido. Dile a la gente cuando hace algo bien.&lt;/li>
&lt;/ul>
&lt;h3 id="auditoria-de-energia">Auditoría de energía&lt;/h3>
&lt;ul>
&lt;li>Analiza tu tiempo: qué actividades te dan energía y cuáles te la quitan.
&lt;ul>
&lt;li>Delega o externaliza lo que te drena tanto como puedas.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="salud">Salud&lt;/h3>
&lt;ul>
&lt;li>Tu salud mental y física es tu recurso más importante.
&lt;ul>
&lt;li>Cuídate y cuida a quienes te rodean.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="toma-de-decisiones">Toma de decisiones&lt;/h3>
&lt;ul>
&lt;li>Exige que quien quiera discutir un tema lo escriba antes, junto con la solución propuesta.&lt;/li>
&lt;li>Lleva tiempo, pero produce decisiones mucho más reflexivas.&lt;/li>
&lt;/ul>
&lt;h3 id="conseguir-compromiso">Conseguir compromiso&lt;/h3>
&lt;ul>
&lt;li>La gente se compromete cuando siente que es parte de la decisión y su opinión importa.&lt;/li>
&lt;li>A más influencia, más involucración.&lt;/li>
&lt;/ul>
&lt;h3 id="problemas-y-solucion-propuesta">Problemas y solución propuesta&lt;/h3>
&lt;ul>
&lt;li>Quien presente un problema en una reunión debe traerlo por escrito.
&lt;ul>
&lt;li>Incluir descripción del problema y solución propuesta. Nada de “no sé”. Al menos una hipótesis.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Los problemas se presentan en la reunión semanal.&lt;/li>
&lt;li>Da 5 minutos para discutir cada solución.
&lt;ul>
&lt;li>Si hay consenso, perfecto.&lt;/li>
&lt;li>Si no, usa el framework RAPID en lugar de seguir debatiendo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="la-voz-mas-fuerte-en-la-sala">La voz más fuerte en la sala&lt;/h3>
&lt;ul>
&lt;li>Piensa quién está en la sala durante las discusiones grupales.&lt;/li>
&lt;li>Evita influir en los demás: que escriban su voto o ideas antes de que tú compartas las tuyas.&lt;/li>
&lt;li>Deja que los juniors pregunten y hablen primero.&lt;/li>
&lt;/ul>
&lt;h3 id="acuerdos-descuidados">Acuerdos descuidados&lt;/h3>
&lt;ul>
&lt;li>Acuerdos descuidados: la gente no llega a tiempo o no cumple lo que prometió.&lt;/li>
&lt;li>El antídoto son los “acuerdos impecables”:
&lt;ul>
&lt;li>Definidos con precisión&lt;/li>
&lt;li>Acordados por todas las personas relevantes&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Tiene que haber consecuencias por romper acuerdos.&lt;/li>
&lt;li>Si no puedes cumplir, avisa cuanto antes a los involucrados.&lt;/li>
&lt;/ul>
&lt;h3 id="transparencia">Transparencia&lt;/h3>
&lt;ul>
&lt;li>No ocultes información negativa.&lt;/li>
&lt;li>La imaginación es más poderosa que la realidad.&lt;/li>
&lt;li>Comparte toda la información relevante con tu equipo, buena y mala.
&lt;ul>
&lt;li>Deja que se adapten.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="resolucion-de-conflictos">Resolución de conflictos&lt;/h3>
&lt;ul>
&lt;li>Los conflictos interpersonales casi siempre ocurren porque la gente:
&lt;ul>
&lt;li>No comparte del todo sus pensamientos y sentimientos&lt;/li>
&lt;li>No se siente escuchada&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Demuestra que has escuchado resumiendo lo que dijeron hasta que respondan “exacto”.&lt;/li>
&lt;/ul>
&lt;h3 id="identificacion-de-problemas">Identificación de problemas&lt;/h3>
&lt;ul>
&lt;li>Pide a la gente que imaginen ser el CEO y respondan:
&lt;ul>
&lt;li>“¿Cuáles son los 3 problemas más importantes a resolver en los próximos 90 días?”&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Pide que escriban sus pensamientos sobre la empresa cuando sientan alegría, emoción, tristeza, ira o miedo.&lt;/li>
&lt;/ul>
&lt;h3 id="liderazgo-consciente">Liderazgo consciente&lt;/h3>
&lt;ul>
&lt;li>Interésate más en aprender que en tener razón.&lt;/li>
&lt;/ul>
&lt;h3 id="obsesion-por-el-cliente">Obsesión por el cliente&lt;/h3>
&lt;ul>
&lt;li>Enfócate en el resultado, no en el output.&lt;/li>
&lt;li>Resuelves un problema del cliente, no solo haces un producto.&lt;/li>
&lt;/ul>
&lt;h3 id="cultura">Cultura&lt;/h3>
&lt;ul>
&lt;li>No eliges tus valores. Los tienes.&lt;/li>
&lt;li>Úsalos como guía para contratar y despedir.&lt;/li>
&lt;li>Celebra. Reconoce los logros públicamente.&lt;/li>
&lt;li>No midas horas. Mide resultados.&lt;/li>
&lt;li>Evita la política de oficina: nunca dejes que el lobbying funcione.&lt;/li>
&lt;/ul>
&lt;h3 id="wiki-de-empresa">Wiki de empresa&lt;/h3>
&lt;ul>
&lt;li>Ten una wiki y haz obligatorio que los nuevos empleados la lean.&lt;/li>
&lt;li>Si haces algo dos veces, documenta exactamente lo que hiciste.
&lt;ul>
&lt;li>Todo el equipo debería contribuir.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="seguimiento-de-metas">Seguimiento de metas&lt;/h3>
&lt;ul>
&lt;li>Nunca asignes una acción sin que la persona la acepte verbal o por escrito.&lt;/li>
&lt;/ul>
&lt;h3 id="areas-de-responsabilidad">Áreas de responsabilidad&lt;/h3>
&lt;ul>
&lt;li>Cuando varias personas comparten una responsabilidad, a menudo se hace mal o no se hace.&lt;/li>
&lt;li>Asigna una persona a cada función en la empresa.&lt;/li>
&lt;/ul>
&lt;h3 id="sin-punto-unico-de-fallo">Sin punto único de fallo&lt;/h3>
&lt;ul>
&lt;li>Documenta todos los procesos.&lt;/li>
&lt;li>Entrena a una segunda persona para cada rol.&lt;/li>
&lt;/ul>
&lt;h3 id="kpis">KPIs&lt;/h3>
&lt;ul>
&lt;li>Conoce tus 5-6 KPIs más importantes y haz seguimiento constante. Que sean visibles para todo el equipo.&lt;/li>
&lt;/ul>
&lt;h3 id="colaboracion">Colaboración&lt;/h3>
&lt;ul>
&lt;li>Define visión y metas para empresa, departamento e individuo.&lt;/li>
&lt;li>Comunícalas a cada miembro del equipo.&lt;/li>
&lt;li>Haz seguimiento semanal del progreso.&lt;/li>
&lt;li>Da feedback sobre qué va bien y qué hay que ajustar.&lt;/li>
&lt;/ul>
&lt;h3 id="okrs">OKRs&lt;/h3>
&lt;ul>
&lt;li>Apunta a 3 objetivos con 3 resultados clave cada uno.&lt;/li>
&lt;li>Para empresa, departamento, equipo e individuo.
&lt;ul>
&lt;li>Que estén alineados en cascada.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Objetivo = “¿a dónde queremos ir?”. No tiene que ser medible.&lt;/li>
&lt;li>Resultados clave = “¿cómo sabemos que llegamos?”. Tienen que ser medibles.&lt;/li>
&lt;li>Reúne a tu equipo de liderazgo con sus propuestas de OKRs para el trimestre.
&lt;ul>
&lt;li>Deja que cada persona proponga los suyos. Se involucrarán más.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="feedback">Feedback&lt;/h3>
&lt;ul>
&lt;li>Nunca des feedback negativo por canales unidireccionales (email, mensaje, buzón de voz).&lt;/li>
&lt;/ul>
&lt;h4 id="el-problema-de-no-dar-feedback">El problema de no dar feedback&lt;/h4>
&lt;ul>
&lt;li>No verás los problemas de tu empresa.&lt;/li>
&lt;li>La comunicación se romperá.&lt;/li>
&lt;li>Tu mejor talento se irá.&lt;/li>
&lt;/ul>
&lt;h4 id="las-4-a-s-para-pedir-feedback">Las 4 A’s para pedir feedback&lt;/h4>
&lt;ol>
&lt;li>Pídelo.&lt;/li>
&lt;li>Reconócelo: repite lo que dijeron. Que se sientan escuchados.&lt;/li>
&lt;li>Agradécelo.&lt;/li>
&lt;li>Actúa.&lt;/li>
&lt;/ol>
&lt;h4 id="como-dar-feedback-negativo">Cómo dar feedback negativo&lt;/h4>
&lt;ol>
&lt;li>Pide permiso.&lt;/li>
&lt;li>Describe el comportamiento (hecho).&lt;/li>
&lt;li>Di cómo te hace sentir (sentimientos).&lt;/li>
&lt;li>Comparte tus pensamientos y opiniones (historia).&lt;/li>
&lt;li>Haz una petición: qué cambio te gustaría ver.&lt;/li>
&lt;li>Pregunta si aceptan el feedback.&lt;/li>
&lt;/ol>
&lt;h3 id="recaudacion-de-fondos">Recaudación de fondos&lt;/h3>
&lt;ul>
&lt;li>Elige un socio, no una empresa.&lt;/li>
&lt;li>Para contactar a un inversor, pide a 3-5 personas de tu red que lo conozcan que envíen un email de recomendación.&lt;/li>
&lt;li>Concentra las referencias en la misma semana para que te noten.&lt;/li>
&lt;li>Habla de tu empresa cuando el inversor ya confíe en ti.&lt;/li>
&lt;li>Véndete a ti mismo, no solo la empresa.&lt;/li>
&lt;/ul>
&lt;h3 id="reclutamiento">Reclutamiento&lt;/h3>
&lt;ul>
&lt;li>Dedica poco tiempo a candidatos que no vas a contratar y mucho a los que sí.&lt;/li>
&lt;li>Como hiring manager, escribe un plan de 90 días para el puesto.&lt;/li>
&lt;/ul>
&lt;h3 id="onboarding">Onboarding&lt;/h3>
&lt;ul>
&lt;li>Dale al onboarding más atención que al reclutamiento.&lt;/li>
&lt;li>Asigna a cada nuevo empleado un compañero con quien reunirse 15 minutos diarios las primeras 2 semanas.&lt;/li>
&lt;/ul>
&lt;h3 id="despido">Despido&lt;/h3>
&lt;ul>
&lt;li>Al anunciarlo, elogia las contribuciones de la persona y asume la responsabilidad de no haber podido encajar sus habilidades con las necesidades de la empresa.&lt;/li>
&lt;li>No culpes ni critiques. Asume la responsabilidad de la situación.&lt;/li>
&lt;/ul>
&lt;h3 id="ventas-efectivas">Ventas efectivas&lt;/h3>
&lt;ul>
&lt;li>Construye confianza.&lt;/li>
&lt;li>Vende resultados, no características.&lt;/li>
&lt;li>Identifica los dolores de los clientes.&lt;/li>
&lt;/ul>
&lt;h3 id="construir-confianza">Construir confianza&lt;/h3>
&lt;ul>
&lt;li>Pregunta a los clientes sobre ellos mismos.
&lt;ul>
&lt;li>Escucha activamente y refleja lo que dicen.&lt;/li>
&lt;li>En la segunda reunión, demuestra que recuerdas lo que dijeron en la primera.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Deja claro que no vas a hablar de tu empresa.&lt;/li>
&lt;li>Pide poco tiempo.&lt;/li>
&lt;li>Invítalos a un evento social sin agenda.&lt;/li>
&lt;/ul>
&lt;h3 id="desarrollo-de-clientes">Desarrollo de clientes&lt;/h3>
&lt;ul>
&lt;li>Las preguntas correctas te ayudan a identificar los desafíos del cliente.&lt;/li>
&lt;li>Entiende su dolor antes de presentar tu solución.
&lt;ol>
&lt;li>¿Cuáles son sus metas?&lt;/li>
&lt;li>¿Qué les impide alcanzarlas?&lt;/li>
&lt;li>¿Cuáles serían sus soluciones ideales?&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;h3 id="vende-resultados-no-caracteristicas">Vende resultados, no características&lt;/h3>
&lt;ul>
&lt;li>A la mayoría no le importan las características de tu producto. Les importan sus resultados de negocio.&lt;/li>
&lt;li>Enfócate en el por qué.&lt;/li>
&lt;li>Pinta la visión de un mundo donde el cliente logra lo que quiere gracias a tu producto.&lt;/li>
&lt;/ul>
&lt;h3 id="equipo-de-ventas-y-pipeline">Equipo de ventas y pipeline&lt;/h3>
&lt;ul>
&lt;li>No contrates vendedores de inmediato.&lt;/li>
&lt;li>En general, los vendedores no venderán mejor que los fundadores. Y no podrán vender si tú no puedes.&lt;/li>
&lt;li>Contrata un equipo de ventas solo si:
&lt;ul>
&lt;li>Tienes una versión inicial de product-market fit (tus clientes de pago renuevan).&lt;/li>
&lt;li>Sabes qué vendes y a quién.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="estructura-del-equipo-de-ventas">Estructura del equipo de ventas&lt;/h3>
&lt;ul>
&lt;li>Generar leads y cerrar son funciones distintas. Sepáralas.&lt;/li>
&lt;li>Los vendedores senior son caros. Que se enfoquen en cerrar tratos.&lt;/li>
&lt;li>Estructura ideal:
&lt;ul>
&lt;li>Calificadores (SDRs): generan leads.&lt;/li>
&lt;li>Cerradores (Account Executives): cierran leads.&lt;/li>
&lt;li>Cultivadores (Customer Success): atienden clientes existentes.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="generacion-de-leads">Generación de leads&lt;/h3>
&lt;ul>
&lt;li>Leads predecibles es el primer paso hacia ingresos predecibles.&lt;/li>
&lt;/ul>
&lt;h3 id="marketing">Marketing&lt;/h3>
&lt;ul>
&lt;li>Empieza por la fruta al alcance de la mano: el segmento de clientes cuyo problema tu producto resuelve 10x mejor que la competencia.&lt;/li>
&lt;li>Pasa al siguiente segmento cuando tengas recursos para ello.&lt;/li>
&lt;/ul>
&lt;h3 id="product-market-fit-pmf">Product-market fit (PMF)&lt;/h3>
&lt;ul>
&lt;li>Diseña una solución claramente mejor que las existentes para el problema de tus clientes objetivo.&lt;/li>
&lt;li>¿Cómo sabes si tienes PMF?
&lt;ul>
&lt;li>Tus clientes te lo dicen: renuevan, compran más, te recomiendan.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>B2B: PMF = contratos a largo plazo.&lt;/li>
&lt;li>B2C: PMF = segunda compra, renovación, compartir en redes sociales.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/tBimI7QNjBA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>Matt Mochary habla sobre su método de coaching, cómo entender y superar el miedo primigenio, el síndrome del impostor y más.&lt;/p></content></entry><entry xml:lang="es"><title>El Triángulo de Gestión de Proyectos</title><subtitle>El Triángulo de Hierro</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2022-07-25T00:00:00+00:00</published><updated>2022-07-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-project-management-triangle/"/><id>https://chemaclass.com/es/blog/the-project-management-triangle/</id><summary type="html">Entrega valor constantemente en iteraciones cortas. ¿Por qué? Porque esto te ayudará a obtener retroalimentación, y la retroalimentación es necesaria para tomar las decisiones correctas.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-07-25/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Un triángulo de tiempo, calidad y coste. Es un indicador de que estos tres parámetros están interconectados.
Puedes fijar uno o dos de ellos, pero no los tres.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="la-triple-restriccion">La triple restricción&lt;/h3>
&lt;ul>
&lt;li>Barato y rápido: la calidad sufrirá.&lt;/li>
&lt;li>Barato y bueno: llevará más tiempo.&lt;/li>
&lt;li>Rápido y bueno: subirá el precio.&lt;/li>
&lt;/ul>
&lt;h2 id="waterfall-vs-agile">Waterfall vs Agile&lt;/h2>
&lt;p>En metodologías de software, puedes adaptar esta idea cambiando &lt;strong>calidad&lt;/strong> por &lt;strong>alcance&lt;/strong>:&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-07-25/middle.jpg" alt="triángulo con alcance en lugar de calidad" />&lt;/p>
&lt;h3 id="waterfall">Waterfall&lt;/h3>
&lt;p>En proyectos waterfall, el alcance está fijado, mientras que el tiempo y el dinero serán más variables. Dependiendo de si es más importante terminar a tiempo o dentro del presupuesto.&lt;/p>
&lt;h3 id="agile">Agile&lt;/h3>
&lt;p>Por otro lado, en un entorno agile normalmente trabajamos en iteraciones de pocas semanas, así que esta es la parte fija: el tiempo, para entregar valor lo antes posible, y así obtener retroalimentación y recalibrar una y otra vez.&lt;/p>
&lt;p>Los costes en un equipo de software también están fijados por las personas que pertenecen a él.&lt;/p>
&lt;blockquote>
&lt;p>El tiempo está fijado, el coste está fijado, así que por la regla del triángulo de hierro, el alcance debe ser variable.&lt;/p>
&lt;/blockquote>
&lt;p>Un equipo agile no puede predecir el alcance de su trabajo en un proyecto de un año, sin embargo, no necesitan hacerlo. Su &lt;strong>enfoque debería estar en entregar constantemente valor tanto como sea posible&lt;/strong>, o al menos al final de cada iteración, reflejando sus aprendizajes y recalibrando sus prioridades una y otra vez.&lt;/p>
&lt;p>Como puedes ver, un dato curioso es que waterfall y agile comparten un triángulo invertido con sus parámetros fijos y variables. Realmente interesante.&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-07-25/footer.jpg" alt="triángulos invertidos de waterfall y agile" />&lt;/p>
&lt;h2 id="referencia">Referencia&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/MKEyF2dmGaM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>La Estrella de Mar y la Araña</title><subtitle>El poder imparable de las organizaciones sin líder</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2022-07-19T00:00:00+00:00</published><updated>2022-07-19T00:00:00+00:00</updated><author><name>
Ori Brafman</name></author><author><name>
Rod Beckstrom</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-starfish-and-the-spider/"/><id>https://chemaclass.com/es/readings/the-starfish-and-the-spider/</id><summary type="html">Si cortas la cabeza a una araña, muere. Si cortas una pata a una estrella de mar, le crece otra y esa pata puede convertirse en una estrella nueva. Las organizaciones descentralizadas están cambiando los negocios y el mundo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Si cortas la cabeza a una araña, muere. Si cortas una pata a una estrella de mar, le crece otra y esa pata puede convertirse en una estrella nueva. Las organizaciones jerárquicas tradicionales son como arañas. Las organizaciones descentralizadas son como estrellas de mar, y están cambiando los negocios y el mundo.&lt;/p>
&lt;p>¿Qué hay detrás del éxito de Wikipedia, Craigslist y Skype? ¿Qué tienen en común eBay y General Electric con los movimientos abolicionistas y de derechos de la mujer? ¿Qué decisión puso a General Motors y Toyota en caminos tan diferentes?&lt;/p>
&lt;p>Ori Brafman y Rod Beckstrom ofrecen respuestas sorprendentes, historias fascinantes y conexiones inesperadas. El libro explora qué pasa cuando las estrellas de mar se enfrentan a las arañas. Muestra cómo empresas e instituciones (IBM, Intuit, el gobierno de EE.UU.) están adoptando principios de estrella de mar para tener éxito.&lt;/p>
&lt;hr />
&lt;p>Rod Beckstrom resume las ideas principales del libro en esta charla:&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/fumQ0s7DCEY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Artesanía Limpia</title><subtitle>Disciplinas, Estándares y Ética</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><published>2022-07-11T00:00:00+00:00</published><updated>2022-07-11T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/clean-craftsmanship/"/><id>https://chemaclass.com/es/readings/clean-craftsmanship/</id><summary type="html">Disciplinas, estándares y ética del desarrollo de software profesional.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro tiene tres partes: disciplinas, estándares y ética.&lt;/p>
&lt;p>La primera es la más técnica. Te guía con ejemplos de TDD y muestra cómo el testing te ayuda a diseñar tu código.&lt;/p>
&lt;p>La segunda trata sobre productividad, calidad y coraje.&lt;/p>
&lt;p>La tercera explica cómo hemos llegado hasta aquí como profesionales del software y nuestra responsabilidad ética: no hacer daño, integridad y trabajo en equipo.&lt;/p>
&lt;hr />
&lt;p>Una de mis partes favoritas del libro:&lt;/p>
&lt;blockquote>
&lt;p>Nuestra industria es dinámica y cambia constantemente. Hay que aprender de forma continua y agresiva.&lt;/p>
&lt;p>¿Cómo y cuándo aprendes? Si tu empresa te da tiempo para ello, aprovéchalo al máximo. Si no, tendrás que hacerlo por tu cuenta.&lt;/p>
&lt;p>Prepárate para dedicar varias horas al mes. Reserva ese tiempo.&lt;/p>
&lt;p>Sí, ya sé: familia, facturas, viajes, la vida. Pero también tienes una profesión. Y las profesiones requieren cuidado y mantenimiento. Aprendamos de forma continua y agresiva.&lt;/p>
&lt;p>&lt;code>Capítulo 11. Coraje - Aprendizaje Agresivo Continuo&lt;/code>&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="indice">Índice&lt;/h2>
&lt;h3 id="parte-i-las-disciplinas">Parte I: Las Disciplinas&lt;/h3>
&lt;h4 id="capitulo-1-artesania">Capítulo 1. Artesanía&lt;/h4>
&lt;ul>
&lt;li>Extreme Programming&lt;/li>
&lt;li>Test-Driven Development&lt;/li>
&lt;li>Refactoring&lt;/li>
&lt;li>Diseño Simple&lt;/li>
&lt;li>Programación Colaborativa&lt;/li>
&lt;li>Tests de Aceptación&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-2-test-driven-development">Capítulo 2. Test-Driven Development&lt;/h4>
&lt;ul>
&lt;li>Visión General&lt;/li>
&lt;li>Lo Básico&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-3-tdd-avanzado">Capítulo 3. TDD Avanzado&lt;/h4>
&lt;ul>
&lt;li>Quedarse Atascado&lt;/li>
&lt;li>Arrange, Act, Assert&lt;/li>
&lt;li>Test Doubles&lt;/li>
&lt;li>Arquitectura&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-4-diseno-de-tests">Capítulo 4. Diseño de Tests&lt;/h4>
&lt;ul>
&lt;li>Testeando Bases de Datos&lt;/li>
&lt;li>Testeando GUIs&lt;/li>
&lt;li>Patrones de Test&lt;/li>
&lt;li>Subclase Específica de Test&lt;/li>
&lt;li>Humble Object&lt;/li>
&lt;li>Diseño de Tests&lt;/li>
&lt;li>Rompiendo la Correspondencia&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-5-refactoring">Capítulo 5. Refactoring&lt;/h4>
&lt;ul>
&lt;li>¿Qué es Refactoring?&lt;/li>
&lt;li>El Kit Básico de Herramientas&lt;/li>
&lt;li>Extract Method&lt;/li>
&lt;li>Las Disciplinas&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-6-diseno-simple">Capítulo 6. Diseño Simple&lt;/h4>
&lt;ul>
&lt;li>YAGNI&lt;/li>
&lt;li>Cubierto por Tests&lt;/li>
&lt;li>Cobertura&lt;/li>
&lt;li>¿Diseño?&lt;/li>
&lt;li>Maximizar Expresión&lt;/li>
&lt;li>La Abstracción Subyacente&lt;/li>
&lt;li>Minimizar Duplicación&lt;/li>
&lt;li>Minimizar Tamaño&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-7-programacion-colaborativa">Capítulo 7. Programación Colaborativa&lt;/h4>
&lt;h4 id="capitulo-8-tests-de-aceptacion">Capítulo 8. Tests de Aceptación&lt;/h4>
&lt;ul>
&lt;li>La Disciplina&lt;/li>
&lt;li>El Build Continuo&lt;/li>
&lt;/ul>
&lt;h3 id="parte-ii-los-estandares">Parte II: Los Estándares&lt;/h3>
&lt;h4 id="capitulo-9-productividad">Capítulo 9. Productividad&lt;/h4>
&lt;ul>
&lt;li>Nunca Enviaremos M***da&lt;/li>
&lt;li>Adaptabilidad Económica&lt;/li>
&lt;li>Siempre Estaremos Listos&lt;/li>
&lt;li>Productividad Estable&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-10-calidad">Capítulo 10. Calidad&lt;/h4>
&lt;ul>
&lt;li>Mejora Continua&lt;/li>
&lt;li>Competencia Sin Miedo&lt;/li>
&lt;li>Calidad Extrema&lt;/li>
&lt;li>No Volcaremos en QA&lt;/li>
&lt;li>QA No Encontrará Nada&lt;/li>
&lt;li>Automatización de Tests&lt;/li>
&lt;li>Testing Automatizado e Interfaces de Usuario&lt;/li>
&lt;li>Testeando la Interfaz de Usuario&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-11-coraje">Capítulo 11. Coraje&lt;/h4>
&lt;ul>
&lt;li>Nos Cubrimos Mutuamente&lt;/li>
&lt;li>Estimaciones Honestas&lt;/li>
&lt;li>Debes Decir NO&lt;/li>
&lt;li>Aprendizaje Agresivo Continuo&lt;/li>
&lt;li>Mentoría&lt;/li>
&lt;/ul>
&lt;h3 id="parte-iii-la-etica">Parte III: La Ética&lt;/h3>
&lt;ul>
&lt;li>El Primer Programador&lt;/li>
&lt;li>Setenta y Cinco Años&lt;/li>
&lt;li>Nerds y Salvadores&lt;/li>
&lt;li>Modelos a Seguir y Villanos&lt;/li>
&lt;li>Gobernamos el Mundo&lt;/li>
&lt;li>Catástrofes&lt;/li>
&lt;li>El Juramento&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-12-dano">Capítulo 12. Daño&lt;/h4>
&lt;ul>
&lt;li>Primero, No Hacer Daño&lt;/li>
&lt;li>Mejor Trabajo&lt;/li>
&lt;li>Prueba Repetible&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-13-integridad">Capítulo 13. Integridad&lt;/h4>
&lt;ul>
&lt;li>Ciclos Pequeños&lt;/li>
&lt;li>Mejora Implacable&lt;/li>
&lt;li>Mantener Alta Productividad&lt;/li>
&lt;/ul>
&lt;h4 id="capitulo-14-trabajo-en-equipo">Capítulo 14. Trabajo en Equipo&lt;/h4>
&lt;ul>
&lt;li>Trabajar como Equipo&lt;/li>
&lt;li>Estimar Honesta y Justamente&lt;/li>
&lt;li>Respeto&lt;/li>
&lt;li>Nunca Dejes de Aprender&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Charla de Uncle Bob donde cubre la mayoría de los temas del libro.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/sPXk11hrWTM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Escucha sobre:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Cita e Intro - [00:00:00]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Trayectoria Profesional - [00:07:29]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Clean Craftsmanship - [00:10:53]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Programador como Profesión - [00:15:31]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Artesanía - [00:18:45]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas - [00:22:45]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas: Test-Driven Development - [00:28:49]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Disciplinas: Refactoring - [00:34:31]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Cobertura de Código - [00:39:02]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Estándar: Nunca Enviar M***da - [00:42:35]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Estándar: Siempre Estar Listo - [00:47:15]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Ética: No Hacer Daño - [00:50:00]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* Ética: Estimar Honestamente - [00:53:56]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>* 2 Sabiduría de Tech Lead - [00:57:50]&lt;/span>&lt;/span>&lt;/code>&lt;/pre></content></entry><entry xml:lang="es"><title>Ingeniería de Software Moderna</title><subtitle>Haciendo lo que funciona para construir mejor software más rápido</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2022-06-29T00:00:00+00:00</published><updated>2022-06-29T00:00:00+00:00</updated><author><name>
David Farley</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/modern-software-engineering/"/><id>https://chemaclass.com/es/readings/modern-software-engineering/</id><summary type="html">El desarrollo de software como práctica de ingeniería real. Para dominarlo hay que ser experto en aprender y gestionar la complejidad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro presenta el desarrollo de software como una práctica de ingeniería real. Para dominarlo hay que ser experto en aprender y gestionar la complejidad.&lt;/p>
&lt;h3 id="optimizar-para-aprender">Optimizar para aprender&lt;/h3>
&lt;p>El libro presenta cinco comportamientos clave para aprender mejor:&lt;/p>
&lt;ul>
&lt;li>Trabajar de forma iterativa&lt;/li>
&lt;li>Buscar feedback&lt;/li>
&lt;li>Incrementalismo&lt;/li>
&lt;li>Empirismo&lt;/li>
&lt;li>Ser experimental&lt;/li>
&lt;/ul>
&lt;p>La idea central: trabajar en pasos pequeños, recoger feedback y ajustar.&lt;/p>
&lt;h3 id="optimizar-para-gestionar-la-complejidad">Optimizar para gestionar la complejidad&lt;/h3>
&lt;p>Cinco ideas para manejar la complejidad:&lt;/p>
&lt;ul>
&lt;li>Modularidad&lt;/li>
&lt;li>Cohesión&lt;/li>
&lt;li>Separación de responsabilidades&lt;/li>
&lt;li>Ocultación de información y abstracción&lt;/li>
&lt;li>Gestión del acoplamiento&lt;/li>
&lt;/ul>
&lt;p>Gestionar la complejidad de nuestros sistemas es fundamental.&lt;/p>
&lt;h3 id="herramientas-para-apoyar-la-ingenieria">Herramientas para apoyar la ingeniería&lt;/h3>
&lt;p>El libro profundiza en ideas como:&lt;/p>
&lt;ul>
&lt;li>Testeabilidad&lt;/li>
&lt;li>Desplegabilidad&lt;/li>
&lt;li>Control de variables&lt;/li>
&lt;li>Entrega continua&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Un vídeo donde el autor explica las ideas principales del libro:&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/TRqYQnCfgH8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Camino a la Seniority en Software</title><subtitle>¿Cómo convertirse en un Desarrollador Senior?</subtitle><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-06-08T00:00:00+00:00</published><updated>2022-06-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-path-to-seniority-in-software/"/><id>https://chemaclass.com/es/blog/the-path-to-seniority-in-software/</id><summary type="html">La verdadera seniority va más allá de los títulos. Se trata de impacto, mentoría, asumir resultados y elevar el nivel de todo tu equipo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-06-08/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Todos hemos sido desarrolladores junior en algún momento. Esto es fácil de saber porque es al principio de tu carrera. Tus responsabilidades fueron delimitadas por otros compañeros que cuidaban de ti.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>En algún momento, después de meses o años, conseguiste tu promoción u otro trabajo, donde ya no eras junior, sino intermedio.&lt;/p>
&lt;p>Un intermedio (también conocido como middle) es algo entre junior y senior. Ahora sabes que ya no eres junior, sabes cómo entregar valor pero aún tienes sentimientos encontrados sobre la seniority. Quieres ser senior, pero no sabes cómo. No hay un camino claro para alcanzar este objetivo.&lt;/p>
&lt;p>Espera un segundo… ¡en realidad hay dos formas fáciles de conseguir el título de senior! Puedes ser promovido como tal en tu empresa, o puedes empezar una nueva posición como “senior” en otra empresa, ¿fácil no?&lt;/p>
&lt;h2 id="marketing-y-politica">Marketing y política&lt;/h2>
&lt;p>Desafortunadamente, el nivel de “seniority” está muy contaminado por marketing y política. Primero, ¿qué significa “senior” en este contexto? En todas las empresas donde he trabajado (si no todas) siempre he estado rodeado de personas que afirmaban ser “seniors” cuando en realidad solo a unos pocos los consideraría como tales.&lt;/p>
&lt;p>La etiqueta de senior está inflada por la necesidad de las empresas de tener expertos en papel más que en la realidad, y es un problema con el que debemos lidiar y del que debemos hablar.&lt;/p>
&lt;p>Seniority generalmente significa más experiencia, pero ¿cómo calculas esto? Es fácil desde el punto de vista de una empresa: más años en la industria. Pero, ¿es realmente relevante el número de años que has estado trabajando en una industria que está en constante cambio y evolución? En realidad, esto no sería un gran problema si tienes los fundamentos del software bien interiorizados, pero curiosamente, he visto estos fundamentos solo en ~10% de los seniors que he conocido a lo largo de muchos años y varias empresas.&lt;/p>
&lt;p>El hecho de que hayas estado trabajando durante 10 o más años no significa necesariamente que seas un “senior” con el software. ¿Qué más podemos medir para identificar si realmente mereces este título?&lt;/p>
&lt;h3 id="no-todo-se-trata-del-dinero">No todo se trata del dinero&lt;/h3>
&lt;p>Seamos honestos, los títulos senior están mejor pagados que las posiciones junior o middle. Si tienes la oportunidad de conseguir un salario más alto porque tienes “senior” en tu título de trabajo, bueno, no sería inteligente rechazarlo. Pero, independientemente de la política y el marketing, debemos abordar algunos fundamentos de seniority para entender mejor qué significa la palabra “senior” en este contexto.&lt;/p>
&lt;blockquote>
&lt;p>No todo se trata del dinero, sino también de las responsabilidades que vienen con la seniority.&lt;/p>
&lt;/blockquote>
&lt;h2 id="fundamentos-de-la-seniority">Fundamentos de la seniority&lt;/h2>
&lt;p>Ser senior en nuestra industria del software no se trata del “número de años de experiencia” sino:&lt;/p>
&lt;ul>
&lt;li>¿Qué tan bien &lt;strong>transmites tu conocimiento&lt;/strong> a otros? Compartir lo que sabes es una tarea esencial para una persona senior.&lt;/li>
&lt;li>¿Qué tan bien &lt;strong>colaboras&lt;/strong> con otras personas, incluyendo al PM/PO y a otros equipos? La colaboración es crucial para crear un bucle de retroalimentación constante.&lt;/li>
&lt;li>¿Qué tan bien &lt;strong>trabajas en conjunto&lt;/strong> con tus compañeros? El pair-programming fomenta la cohesión del equipo y ayuda a que todos mejoren.&lt;/li>
&lt;li>¿Qué tan fuertes son tus habilidades de &lt;strong>testing&lt;/strong>? El testing está ligado a la calidad de tu trabajo, y un senior debería apuntar a un diseño incremental.&lt;/li>
&lt;li>¿Qué tan bien entiendes &lt;strong>entregar valor constantemente&lt;/strong> en pequeñas partes? Cuanto antes entregues valor, antes obtendrás retroalimentación sobre ello.&lt;/li>
&lt;li>¿Qué tan profundo es tu &lt;strong>conocimiento técnico&lt;/strong> sobre software de calidad y los trade-offs para llegar allí? Principios SOLID, código limpio, TDD, refactoring como parte de tu trabajo diario, bajo acoplamiento, alta cohesión, estructuras de datos apropiadas y elegir la solución correcta (KISS, YAGNI…).&lt;/li>
&lt;li>¿Qué tan bien te adaptas y &lt;strong>lidias con el cambio&lt;/strong>? El cambio es inevitable, así que debemos aprender a gestionarlo, especialmente lo que no podemos controlar.&lt;/li>
&lt;li>¿Qué tan desarrollado está tu &lt;strong>pensamiento emprendedor&lt;/strong>? Siempre manteniendo los objetivos de la organización en mente.&lt;/li>
&lt;/ul>
&lt;p>Como puedes ver, no hay mención de tecnología concreta o años de experiencia. ¿Por qué? Porque la tecnología es solo un “detalle de implementación”, y la experiencia viene de practicar y la actitud, no de dejar pasar el tiempo.&lt;/p>
&lt;h3 id="la-actitud-es-importante">La actitud es importante&lt;/h3>
&lt;p>Tenemos dos personas:&lt;/p>
&lt;p>A) una persona que trabaja desde hace 15 años, haciendo relativamente lo mismo cada día, y sin preocuparse por sus propias habilidades. Simplemente hace lo que otros le dicen que haga.&lt;/p>
&lt;p>B) una persona que trabaja desde hace 5 años, desafiándose a sí misma cada semana, probando diferentes enfoques al lidiar con problemas, y afilando sus propias habilidades constantemente.&lt;/p>
&lt;p>¿Puedes ver la diferencia principal? No, no son los 10 años de diferencia de “experiencia” entre ellos, sino su &lt;strong>actitud&lt;/strong>.&lt;/p>
&lt;p>Entendemos erróneamente que &lt;em>un año de experiencia debe venir con aprendizaje y conocimiento&lt;/em>, así que tendemos a usar el tiempo como medida de seniority. Pero argumento que el “factor actitud” es igual o incluso más importante. He estado rodeado de muchas personas que se llaman a sí mismas seniors con 3, 6, 10 y más años de “experiencia” pero sin actitud, y podías ver claramente este problema a diario.&lt;/p>
&lt;blockquote>
&lt;p>Necesitas esta combinación para construirte como un desarrollador verdaderamente senior; tiempo, experiencia, y lo más importante: actitud hacia &lt;strong>mejorar tus propias habilidades y las de quienes te rodean&lt;/strong>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="por-donde-empezar">Por dónde empezar&lt;/h2>
&lt;p>La seniority no se concede, se practica. No esperas el título, construyes el comportamiento hasta que el título te alcanza. Empieza pequeño, y empieza ahora:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Enseña lo que sabes.&lt;/strong> Elige una cosa que entiendas y explícasela a alguien esta semana. Si no puedes explicarla, aún no la dominas.&lt;/li>
&lt;li>&lt;strong>Busca lo incómodo.&lt;/strong> Ofrécete para la tarea que te queda algo grande. El crecimiento vive en el borde de lo que ya sabes hacer.&lt;/li>
&lt;li>&lt;strong>Reflexiona con intención.&lt;/strong> Después de cada proyecto, pregúntate qué harías diferente. Experiencia sin reflexión es solo repetición.&lt;/li>
&lt;/ul>
&lt;p>El camino no es una promoción. Es la decisión diaria de mejorarte a ti mismo y a quienes te rodean. Hazlo el tiempo suficiente, y el título se vuelve un trámite.&lt;/p></content></entry><entry xml:lang="es"><title>Bikeshedding</title><subtitle>También conocida como la Ley de trivialidad</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-05-27T00:00:00+00:00</published><updated>2022-05-27T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/bikeshedding/"/><id>https://chemaclass.com/es/blog/bikeshedding/</id><summary type="html">El bikeshedding explica por qué los equipos pierden tiempo en decisiones triviales mientras ignoran las complejas e importantes. Aprende a reconocerlo y evitarlo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-05-27/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>El término se acuñó como metáfora de la Ley de trivialidad de Parkinson. La gente en las organizaciones suele dar demasiada importancia a los asuntos triviales.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="bikeshed-ing">Bikeshed-ing&lt;/h2>
&lt;p>El concepto apareció como corolario de la “&lt;a rel="external" href="https://en.wikipedia.org/wiki/Parkinson%27s_law">Ley de Parkinson&lt;/a>”, una parodia sobre gestión. “Bikeshedding” es una versión dramatizada de la “&lt;a rel="external" href="https://en.wikipedia.org/wiki/Law_of_triviality">Ley de trivialidad&lt;/a>”.&lt;/p>
&lt;p>&lt;a rel="external" href="https://en.wikipedia.org/wiki/C._Northcote_Parkinson">C. Northcote Parkinson&lt;/a> observó que un comité que debe &lt;strong>aprobar planes para una central nuclear&lt;/strong> puede pasar la mayor parte del tiempo en temas fáciles de entender pero poco importantes. Por ejemplo, qué materiales usar para el cobertizo de bicis del personal. Mientras tanto, descuidan el diseño de la central, que es &lt;strong>mucho más importante&lt;/strong> pero más difícil de criticar. Como él dijo:&lt;/p>
&lt;blockquote>
&lt;p>“El tiempo dedicado a cualquier tema será inversamente proporcional al dinero involucrado.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="la-gente-da-demasiada-importancia-a-lo-trivial">La gente da &lt;strong>demasiada importancia a lo trivial&lt;/strong>&lt;/h3>
&lt;p>Lo he visto en todas las empresas donde he trabajado. Cuando mezclas temas importantes con otros no tan importantes (o nada importantes), es muy común acabar discutiendo lo trivial con tus compañeros. Mientras tanto, las cosas importantes que darían valor real al cliente quedan aparcadas.&lt;/p>
&lt;p>Pasa más de lo que pensamos, y le puede ocurrir a cualquiera.&lt;/p>
&lt;h3 id="que-podemos-hacer">¿Qué podemos hacer?&lt;/h3>
&lt;p>Crear conciencia de este problema en tu equipo. La comunicación honesta y la confianza son claves.&lt;/p>
&lt;p>Pasos a seguir:&lt;/p>
&lt;ul>
&lt;li>Sé consciente del problema.&lt;/li>
&lt;li>Ve valor en cambiar este comportamiento.&lt;/li>
&lt;li>Señala el problema cuando lo veas ocurrir.&lt;/li>
&lt;li>Espera lo mismo de tus compañeros.&lt;/li>
&lt;/ul>
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/D4hUq_aNXaA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Bitcoin: Blockchain y su investigación</title><subtitle>Publicado en 2017, la mayor parte de la tecnología mostrada ya es historia</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2022-05-10T00:00:00+00:00</published><updated>2022-05-10T00:00:00+00:00</updated><author><name>
Félix Brezo</name></author><author><name>
Yaiza Rubio</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/bitcoin-la-tecnologia-blockchain-y-su-investigacion/"/><id>https://chemaclass.com/es/readings/bitcoin-la-tecnologia-blockchain-y-su-investigacion/</id><summary type="html">¿Cómo se crea una dirección Bitcoin? ¿Cómo funcionan las claves privadas y públicas? ¿Qué son las wallets? El libro responde estas y otras preguntas.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro se publicó en 2017, así que mucha de la tecnología ya es historia. Y eso es justo lo que más me gusta: la parte histórica y el origen de la blockchain.&lt;/p>
&lt;p>¿Cómo se crea una dirección Bitcoin? ¿Cómo funcionan las claves privadas y públicas? ¿Qué son las wallets? El libro responde estas y otras preguntas.&lt;/p>
&lt;p>En aquella época, algunos sitios web y servicios ya usaban Bitcoin como método de pago. Se veía venir una tendencia interesante.&lt;/p>
&lt;ul>
&lt;li>La &lt;strong>primera mitad del libro&lt;/strong> es la mejor parte. Sigue siendo relevante porque explica los orígenes de la tecnología.&lt;/li>
&lt;li>La &lt;strong>segunda mitad&lt;/strong> es más opcional, para curiosos. No hay grandes aprendizajes, más allá de ver qué tendencias había en 2016/2017. Hoy la tecnología (y los proyectos blockchain) ha evolucionado muchísimo.&lt;/li>
&lt;/ul>
&lt;p>Me encantaría leer una versión actualizada, cinco años después de la primera edición.&lt;/p>
&lt;blockquote>
&lt;p>El libro está disponible solo en español: &lt;a rel="external" href="https://0xword.com/es/libros/87-bitcoin-la-tecnologia-blockchain-y-su-investigacion.html">0xWord&lt;/a>&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Docker: SecDevOps</title><subtitle>Desde introducción hasta conceptos avanzados</subtitle><category term="docker" scheme="https://chemaclass.com/tags/docker/" label="Docker"/><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><published>2022-04-29T00:00:00+00:00</published><updated>2022-04-29T00:00:00+00:00</updated><author><name>
Fran Ramírez</name></author><author><name>
Elías Grande</name></author><author><name>
Rafael Troncoso</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/docker-secdevops/"/><id>https://chemaclass.com/es/readings/docker-secdevops/</id><summary type="html">Un libro muy completo sobre Docker, desde lo básico hasta conceptos avanzados, con ejemplos fáciles de seguir.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Un libro muy completo sobre Docker, desde lo básico hasta conceptos avanzados, con ejemplos fáciles de seguir.&lt;/p>
&lt;p>Cubre buenas prácticas para construir imágenes Docker y mantener la seguridad al ejecutar contenedores. También explica el demonio Docker y toda la tecnología que hay detrás.&lt;/p>
&lt;blockquote>
&lt;p>El libro está disponible solo en español: &lt;a rel="external" href="https://0xword.com/es/libros/103-docker-secdevops.html">0xWord&lt;/a>&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>El Número de Dunbar</title><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-04-02T00:00:00+00:00</published><updated>2022-04-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/dunbar-number/"/><id>https://chemaclass.com/es/blog/dunbar-number/</id><summary type="html">El número de Dunbar es el límite cognitivo de personas con las que podemos mantener relaciones sociales estables.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-04-02/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Un límite cognitivo de cuántas relaciones sociales estables podemos mantener. Saber quién es cada persona y cómo se relaciona con las demás.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El estudio muestra que:&lt;/p>
&lt;ul>
&lt;li>Relación cercana: 5 personas.&lt;/li>
&lt;li>Confianza profunda: 15 personas.&lt;/li>
&lt;li>Relaciones significativas: 50 personas.&lt;/li>
&lt;li>Contactos activos: 150 personas.&lt;/li>
&lt;/ul>
&lt;h2 id="por-que-este-limite-es-150">¿Por qué este límite es 150?&lt;/h2>
&lt;p>Por nuestra capacidad cognitiva limitada. Nuestra capacidad para razonar, resolver problemas y entender ideas complejas tiene un tope. Al crecer el equipo, aumenta la carga cognitiva y la comunicación sufre. Por eso un equipo muy grande pierde sus beneficios.&lt;/p>
&lt;h3 id="origen">Origen&lt;/h3>
&lt;p>En los 90, el antropólogo Robin Dunbar encontró una correlación entre el tamaño del cerebro de los primates y el tamaño de su grupo social. Extrapoló los resultados al cerebro humano y propuso que podemos mantener unas 150 relaciones estables. Dunbar teorizó que:&lt;/p>
&lt;blockquote>
&lt;p>“Este límite depende directamente del tamaño del neocórtex, que a su vez limita el tamaño del grupo […] El límite impuesto por la capacidad de procesamiento neocortical es simplemente el número de personas con las que se puede mantener una relación estable.”&lt;/p>
&lt;/blockquote>
&lt;p>Este número incluye también colegas del pasado, como amigos del instituto, con los que querrías reencontrarte si os volvierais a ver.&lt;/p>
&lt;h2 id="como-se-aplica-esto-a-los-equipos">¿Cómo se aplica esto a los equipos?&lt;/h2>
&lt;ul>
&lt;li>Equipos individuales: 5-9 personas.
&lt;ul>
&lt;li>Confianza compartida entre los miembros.&lt;/li>
&lt;li>La confianza se construye con el tiempo.&lt;/li>
&lt;li>Deben ser equipos a largo plazo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Grupo: 50 personas.
&lt;ul>
&lt;li>Relaciones significativas.&lt;/li>
&lt;li>Comparten un dominio o subdominio.&lt;/li>
&lt;li>Entienden los retos y se ayudan mutuamente.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Division: 150 personas.&lt;/li>
&lt;/ul>
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Robin_Dunbar">Robin Dunbar&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Dunbar%27s_number">Número de Dunbar&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Topologías de Equipos</title><subtitle>Organizando equipos de negocio y tecnología para flujo rápido</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="devops" scheme="https://chemaclass.com/tags/devops/" label="Devops"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2022-03-31T00:00:00+00:00</published><updated>2022-03-31T00:00:00+00:00</updated><author><name>
Matthew Skelton</name></author><author><name>
Manuel Pais</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/team-topologies/"/><id>https://chemaclass.com/es/readings/team-topologies/</id><summary type="html">Cómo estructurar equipos dinámicos e interacciones que permitan adaptarse rápido a nuevas condiciones y entregar software de forma ágil y segura.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro explica cómo estructurar equipos dinámicos y sus interacciones para adaptarse rápido a nuevas condiciones y entregar software de forma ágil y segura.&lt;/p>
&lt;h2 id="estructura-de-equipo">Estructura de equipo&lt;/h2>
&lt;ul>
&lt;li>Alta cohesión: agrupa las cosas relacionadas.&lt;/li>
&lt;li>Bajo acoplamiento: límites claros entre equipos.&lt;/li>
&lt;li>Carga cognitiva: es como la RAM del equipo. Si lo sobrecargas, se quema.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Para evitar cuellos de botella, asegúrate de que la carga cognitiva del equipo no sea excesiva.&lt;/p>
&lt;/blockquote>
&lt;h2 id="ley-de-conway">Ley de Conway&lt;/h2>
&lt;ul>
&lt;li>La estructura organizacional influye en la arquitectura del software.&lt;/li>
&lt;li>Las organizaciones diseñan sistemas que copian su estructura de comunicación.&lt;/li>
&lt;li>Resultado: nadie se enfoca en la arquitectura óptima para el proyecto.&lt;/li>
&lt;li>Primero define la arquitectura, luego forma los equipos.&lt;/li>
&lt;/ul>
&lt;h2 id="el-equipo-primero">El equipo primero&lt;/h2>
&lt;ul>
&lt;li>Quién está en el equipo importa menos que su dinámica.&lt;/li>
&lt;li>Al medir rendimiento, el equipo importa más que las personas individuales.&lt;/li>
&lt;li>Equipo = grupo de 5-9 personas trabajando hacia metas compartidas.
&lt;ul>
&lt;li>Ver el &lt;a href="/es/blog/dunbar-number/">número de Dunbar&lt;/a>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Formar un equipo toma de 2 semanas a 3 meses.&lt;/li>
&lt;li>La carga cognitiva es el esfuerzo mental total usado en la memoria de trabajo.&lt;/li>
&lt;li>3 tipos de carga cognitiva:
&lt;ul>
&lt;li>Intrínseca: fundamentos del problema. Ej: lenguaje de programación.&lt;/li>
&lt;li>Extrínseca: relacionada con el entorno. Ej: cómo desplegar.&lt;/li>
&lt;li>Germane: requiere atención especial. Ej: dominio de negocio.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Heurísticas:
&lt;ul>
&lt;li>3 tipos de dominio: simple, complicado, complejo.&lt;/li>
&lt;li>Si el dominio es muy grande, divídelo en subdominios.&lt;/li>
&lt;li>Un equipo puede manejar:
&lt;ul>
&lt;li>2-3 dominios simples.&lt;/li>
&lt;li>1 dominio complejo.&lt;/li>
&lt;li>Evita 2 dominios complicados; mejor divide el equipo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Define una API de equipo:
&lt;ul>
&lt;li>Código: endpoints, librerías, clientes…&lt;/li>
&lt;li>Versionado.&lt;/li>
&lt;li>Documentación.&lt;/li>
&lt;li>Prácticas y principios.&lt;/li>
&lt;li>Herramientas de comunicación.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="topologias-de-equipo">Topologías de equipo&lt;/h2>
&lt;blockquote>
&lt;p>Organiza equipos por áreas de dominio de negocio, no por conocimiento técnico o actividades.&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>El éxito depende tanto de los miembros como del entorno, otros equipos e interacciones.&lt;/li>
&lt;li>Divide responsabilidades para romper silos.&lt;/li>
&lt;li>Tipos de dependencias: conocimiento, tarea y recurso.&lt;/li>
&lt;li>Cuatro tipos de equipos:
&lt;ul>
&lt;li>Stream-aligned: entregar funcionalidades y productos al mercado cuanto antes.&lt;/li>
&lt;li>Enabling: desarrollar capacidades para los equipos stream-aligned.&lt;/li>
&lt;li>Complicated-subsystem: reducir la carga cognitiva de los equipos stream-aligned.&lt;/li>
&lt;li>Platform: dar autonomía a los equipos stream-aligned.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="interacciones-de-equipo">Interacciones de equipo&lt;/h2>
&lt;ul>
&lt;li>Colaboración: trabajo cercano entre equipos con distintas habilidades.&lt;/li>
&lt;li>X-as-a-Service: propiedad clara, baja carga cognitiva.&lt;/li>
&lt;li>Facilitación: eliminar impedimentos y mejorar la calidad de las interacciones entre equipos.&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>La Psicología del Dinero</title><subtitle>Lecciones sobre riqueza, codicia y felicidad</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2022-02-27T00:00:00+00:00</published><updated>2022-02-27T00:00:00+00:00</updated><author><name>
Morgan Housel</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-psychology-of-money/"/><id>https://chemaclass.com/es/readings/the-psychology-of-money/</id><summary type="html">No tiene sentido arriesgar lo que tienes y necesitas por lo que no tienes ni necesitas. Lecciones sobre riqueza, codicia y felicidad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Tener más dinero te hará más feliz SOLO si significa tener más control sobre tu tiempo.&lt;/p>
&lt;blockquote>
&lt;p>“No tenía la intención de hacerme rico. Solo quería ser independiente.” Charlie Munger.&lt;/p>
&lt;/blockquote>
&lt;h2 id="malentendidos-sobre-el-dinero">Malentendidos sobre el dinero&lt;/h2>
&lt;h3 id="interes-compuesto">Interés compuesto&lt;/h3>
&lt;ul>
&lt;li>Empieza a invertir con lo que puedas y mantente invertido.&lt;/li>
&lt;li>Aprovecha el poder del interés compuesto.&lt;/li>
&lt;/ul>
&lt;h3 id="volatilidad">Volatilidad&lt;/h3>
&lt;ul>
&lt;li>No hay altos rendimientos sin volatilidad.&lt;/li>
&lt;li>Es el precio emocional que pagas por buenos rendimientos anuales.&lt;/li>
&lt;li>Acepta la volatilidad. Es una tarifa, no una multa.&lt;/li>
&lt;/ul>
&lt;h3 id="inversiones-de-cola">Inversiones de cola&lt;/h3>
&lt;ul>
&lt;li>Predecir “lo próximo grande” es difícil, así que diversifica.&lt;/li>
&lt;li>Una inversión de cola es esa única inversión que supera a todas las demás y compensa varias malas decisiones.&lt;/li>
&lt;li>Diversifica para aumentar tus chances de pillar alguna inversión de cola.&lt;/li>
&lt;/ul>
&lt;h2 id="citas">Citas&lt;/h2>
&lt;blockquote>
&lt;p>“No tiene sentido arriesgar lo que tienes y necesitas por lo que no tienes ni necesitas.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Las colas largas (los extremos más alejados de una distribución) tienen enorme influencia en las finanzas. Un puñado de eventos puede representar la mayoría de los resultados.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Poder hacer lo que quieras, cuando quieras, con quien quieras, el tiempo que quieras, no tiene precio. Es el mejor dividendo que paga el dinero.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Como todo lo que vale la pena, invertir bien tiene un precio. Pero no se paga en euros, sino en volatilidad, miedo, duda, incertidumbre y arrepentimiento. Todo eso es fácil de ignorar hasta que lo vives en tiempo real.”&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>“Pocas cosas importan más con el dinero que entender tu horizonte temporal y no dejarte influir por gente que juega un juego diferente al tuyo.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="video-resumen">Video Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/yNMnjMgdIWw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Actualiza tu Equipo para Ser Más Extreme</title><subtitle>¿Cómo puedes ayudar a tus compañeros a abrazar el cambio?</subtitle><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><published>2022-02-26T00:00:00+00:00</published><updated>2022-02-26T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/update-your-team-to-be-more-extreme/"/><id>https://chemaclass.com/es/blog/update-your-team-to-be-more-extreme/</id><summary type="html">Nuestra profesión está en constante evolución y exige aprendizaje continuo. Abrazar el cambio no es opcional en software. Hay que crear espacios para salir de nuestra zona de confort.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-02-26/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Nuestra profesión del software está en constante evolución y exige aprendizaje continuo. El cambio no es opcional en nuestra industria.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Hay que crear espacios para salir de nuestra zona de confort. Nuestro cerebro necesita entrenarse para adaptarse a un entorno que cambia constantemente.&lt;/p>
&lt;h2 id="por-que-katas-de-codigo-charlas-tecnicas-o-viernes-de-investigacion">¿Por qué katas de código, charlas técnicas o viernes de investigación?&lt;/h2>
&lt;p>El objetivo es crear un ambiente que fomente la mejora continua. Buscar aprender en todas partes, todo el tiempo, como actitud central para cada persona y para el equipo.&lt;/p>
&lt;h3 id="crear-oportunidades-de-aprendizaje">Crear oportunidades de aprendizaje&lt;/h3>
&lt;blockquote>
&lt;p>Programa tiempo cada X semanas para practicar juntos.&lt;/p>
&lt;/blockquote>
&lt;p>Al final de cada iteración, o cada 2-4 semanas, trabajamos en katas en parejas o mob durante 2 horas. Ese espacio también sirve para preparar charlas técnicas internas y compartir conocimiento interesante que no sea del “negocio diario”.&lt;/p>
&lt;p>El objetivo es salir de nuestra zona de confort. Mejorar nuestra capacidad de adaptación mientras aprendemos otros temas.&lt;/p>
&lt;h2 id="que-es-una-kata-de-codigo">¿Qué es una kata de código?&lt;/h2>
&lt;p>Los desarrolladores no practicamos lo suficiente. La mayor parte del aprendizaje ocurre en el trabajo, y ahí es donde cometemos la mayoría de errores.&lt;/p>
&lt;p>El término “kata” viene del karate: movimientos repetitivos que mejoran tus habilidades de combate.&lt;/p>
&lt;p>Las katas de código dan a los desarrolladores los mismos beneficios que practicar en cualquier profesión. Son ejercicios simples que permiten experimentar y aprender sin la presión de producción.&lt;/p>
&lt;blockquote>
&lt;p>No hay respuestas correctas o incorrectas en una kata: el beneficio viene del proceso, no del resultado.&lt;/p>
&lt;/blockquote>
&lt;h3 id="motivacion">Motivación&lt;/h3>
&lt;ul>
&lt;li>Practicar técnicas de refactoring.&lt;/li>
&lt;li>Practicar TDD.&lt;/li>
&lt;li>Aplicar principios SOLID.&lt;/li>
&lt;li>Hacer sesiones de live coding.&lt;/li>
&lt;li>Ejercitar el concepto driver-navigator.&lt;/li>
&lt;li>Mejorar la cohesión del equipo.&lt;/li>
&lt;li>Pasarlo bien mientras aprendes con otros.&lt;/li>
&lt;/ul>
&lt;p>Si te interesa mi visión sobre TDD y katas, escribí un post hace poco: &lt;a href="/es/blog/test-driven-development/">Test-Driven Development&lt;/a>.&lt;/p>
&lt;h2 id="que-es-una-charla-tecnica">¿Qué es una charla técnica?&lt;/h2>
&lt;p>Las charlas técnicas nos permiten compartir conocimiento de nuestra industria con el equipo.&lt;/p>
&lt;p>Puede ser sobre FrontEnd, BackEnd, DevOps. Pero también animo a compartir:&lt;/p>
&lt;ul>
&lt;li>un nuevo lenguaje que estás aprendiendo,&lt;/li>
&lt;li>un resumen de un libro que terminaste,&lt;/li>
&lt;li>una tecnología que te da curiosidad,&lt;/li>
&lt;li>un software que te gustaría presentar,&lt;/li>
&lt;li>una herramienta que mejora tu productividad,&lt;/li>
&lt;li>en realidad: &lt;u>cualquier cosa que aporte valor o conocimiento.&lt;/u>&lt;/li>
&lt;/ul>
&lt;h3 id="como-presento-una-charla-tecnica">¿Cómo presento una charla técnica?&lt;/h3>
&lt;p>Escribí un artículo con consejos sobre &lt;a href="/es/blog/improve-your-tech-talk/">cómo mejorar tu charla técnica&lt;/a>. Algunas preguntas que pueden ayudarte:&lt;/p>
&lt;ul>
&lt;li>¿Qué has aprendido recientemente?&lt;/li>
&lt;li>¿Qué conocimiento sería interesante compartir con tus compañeros?&lt;/li>
&lt;li>¿Qué aspecto de ti te gustaría mejorar profesional o personalmente?&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Una sola regla: sé curioso y “&lt;a href="/es/blog/embrace-the-change/">abraza el cambio&lt;/a>.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="viernes-de-investigacion-y-aprendizaje">Viernes de investigación y aprendizaje&lt;/h2>
&lt;p>Reserva el último viernes del mes para investigar y aprender. Todo el equipo tendrá un espacio dedicado al crecimiento y la experimentación.&lt;/p>
&lt;p>Es clave construir confianza con tu equipo. Que todos sepan que cada uno usará este tiempo bien. No microgestiones forzando un registro detallado en una wiki.&lt;/p>
&lt;p>Eso sí, estaría bien que el equipo comparta lo que hace. Crea transparencia. Un anuncio verbal el día antes con las intenciones, y el día después con los aprendizajes clave.&lt;/p>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;p>Puedes ayudar a tu equipo a ser más extreme creando un espacio dedicado al crecimiento y la experimentación.&lt;/p>
&lt;ul>
&lt;li>Da flexibilidad para experimentar con estas ideas.&lt;/li>
&lt;li>Es una oportunidad para crecer y aprender a la vez.&lt;/li>
&lt;li>La responsabilidad es de cada persona y del equipo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>No microgestiones este tiempo. Enfócate en el resultado. Ayuda a tu equipo a crecer, y disfrutarán creciendo contigo.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2022-02-26/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;h2 id="charla-tecnica">Charla Técnica&lt;/h2>
&lt;p>Tras escribir este post (originalmente en febrero de 2022), me invitaron a dar una &lt;a href="/es/talks/update-your-team-to-be-more-extreme">charla técnica&lt;/a> sobre este tema en varias conferencias.&lt;/p></content></entry><entry xml:lang="es"><title>El Poder de la Autoridad y la Obediencia</title><subtitle>El experimento de Milgram</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-01-24T00:00:00+00:00</published><updated>2022-01-24T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-power-of-authority-and-obedience/"/><id>https://chemaclass.com/es/blog/the-power-of-authority-and-obedience/</id><summary type="html">Milgram quiso investigar hasta dónde llegaría la gente obedeciendo una orden que implicara dañar a otra persona. Por ejemplo, los alemanes en la Segunda Guerra Mundial.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2022-01-24/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Milgram quiso investigar hasta dónde llegaría la gente obedeciendo una orden que implicara dañar a otra persona. Y qué tan fácil era influenciarles para cometer atrocidades, como ocurrió con los alemanes en la Segunda Guerra Mundial.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="el-experimento">El experimento&lt;/h2>
&lt;p>En los años 60, el psicólogo Stanley Milgram hizo una serie de experimentos sobre obediencia. Quería entender el poder de la autoridad, incluso cuando las órdenes podían tener consecuencias fatales.&lt;/p>
&lt;p>Milgram estudió las justificaciones de los acusados en los juicios de Nuremberg. Su defensa era simple: solo seguían órdenes de sus superiores. El experimento buscaba responder esta pregunta:&lt;/p>
&lt;blockquote>
&lt;p>¿Podría ser que Eichmann y sus millones de cómplices en el Holocausto solo estaban siguiendo órdenes?
¿Podríamos llamarlos a todos cómplices?&lt;/p>
&lt;/blockquote>
&lt;h3 id="el-procedimiento">El procedimiento&lt;/h3>
&lt;p>Reclutaron a 40 hombres mediante anuncios en periódicos para un “estudio sobre aprendizaje” en Yale. A cada uno le pagaron $4.50.&lt;/p>
&lt;p>Cada participante fue emparejado con otra persona. Un sorteo (amañado) decidía quién era el “aprendiz” y quién el “maestro”. El participante real siempre era el maestro. El aprendiz era un cómplice de Milgram fingiendo ser participante.&lt;/p>
&lt;p>Al aprendiz lo llevaron a una habitación y le conectaron electrodos. El maestro y el investigador fueron a otra habitación con un generador de descargas. Los interruptores iban desde 15 voltios (descarga leve) hasta 450 voltios (XXX).&lt;/p>
&lt;p>&lt;img src="/images/blog/2022-01-24/video-fragment.jpg" alt="blog-footer" />&lt;/p>
&lt;p>El aprendiz daba respuestas incorrectas a propósito. Por cada error, el maestro debía darle una descarga. Cuando el maestro se negaba, el investigador le presionaba con estas órdenes:&lt;/p>
&lt;ol>
&lt;li>“Por favor, continúe.”&lt;/li>
&lt;li>“El experimento requiere que continúe.”&lt;/li>
&lt;li>“Es absolutamente esencial que continúe.”&lt;/li>
&lt;li>“No tiene otra opción; debe continuar.”&lt;/li>
&lt;/ol>
&lt;h3 id="resultados">Resultados&lt;/h3>
&lt;p>El 65% de los maestros llegó hasta el nivel máximo de 450 voltios. Todos llegaron al menos a 300 voltios.&lt;/p>
&lt;p>Milgram hizo 18 variaciones del experimento. Alteraba la situación para ver cómo afectaba la obediencia.&lt;/p>
&lt;h3 id="conclusion">Conclusión&lt;/h3>
&lt;p>La explicación fácil sería que había algo mal en esas personas. Pero la explicación real es que la situación les hizo comportarse así.&lt;/p>
&lt;p>Varios factores influyeron: la ubicación, el comportamiento del investigador, y el hecho de haberse ofrecido voluntarios y recibir pago.&lt;/p>
&lt;p>La gente tiende a obedecer si reconoce la autoridad del otro. Esta respuesta se aprende en la familia, la escuela y el trabajo.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/rdrKCilEhC0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h2 id="la-teoria-de-agencia-de-milgram">La teoría de agencia de Milgram&lt;/h2>
&lt;p>Milgram explicó que las personas tienen dos estados de comportamiento en situaciones sociales:&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Estado autónomo:&lt;/strong> diriges tus acciones y asumes responsabilidad por los resultados.&lt;/li>
&lt;li>&lt;strong>Estado agentivo:&lt;/strong> dejas que otros dirijan tus acciones y transfieres la responsabilidad a quien da las órdenes. Actúas como agente de la voluntad de otro.&lt;/li>
&lt;/ul>
&lt;p>Para entrar en estado agentivo hacen falta dos cosas:&lt;/p>
&lt;ol>
&lt;li>Percibir que quien da las órdenes tiene autoridad legítima.&lt;/li>
&lt;li>Creer que la autoridad aceptará la responsabilidad de lo que pase.&lt;/li>
&lt;/ol>
&lt;p>Cuando a los participantes se les recordaba que eran responsables de sus acciones, casi ninguno obedecía. En cambio, muchos que se negaban a continuar lo hacían si el investigador decía que él asumía la responsabilidad.&lt;/p>
&lt;h2 id="variaciones-del-experimento">Variaciones del experimento&lt;/h2>
&lt;p>Algunas de las variaciones más interesantes:&lt;/p>
&lt;h3 id="uniforme">Uniforme&lt;/h3>
&lt;p>Cuando una “persona común sin uniforme” asumía el rol de investigador, la obediencia bajó al 20%.&lt;/p>
&lt;h3 id="cambio-de-ubicacion">Cambio de ubicación&lt;/h3>
&lt;p>La obediencia bajó al 47.5% cuando el experimento se hizo en unas oficinas normales en vez de la prestigiosa Universidad de Yale.&lt;/p>
&lt;h3 id="apoyo-social">Apoyo social&lt;/h3>
&lt;p>Otros dos participantes (cómplices) eran también maestros pero se negaron a obedecer: uno a 150 voltios, el otro a 210. Ver a otros desobedecer a la autoridad redujo la obediencia al 10%.&lt;/p>
&lt;h3 id="experimentador-ausente">Experimentador ausente&lt;/h3>
&lt;p>Cuando el investigador daba instrucciones por teléfono desde otra habitación, la obediencia bajó al 20.5%. Muchos participantes hicieron trampa: omitían descargas o daban menos voltaje. La proximidad de la autoridad afecta la obediencia.&lt;/p>
&lt;h3 id="las-cuestiones-morales">Las cuestiones morales&lt;/h3>
&lt;p>¿Por qué tantos participantes hicieron algo aparentemente sádico al recibir órdenes de una autoridad? Según Milgram, varios factores situacionales lo explican:&lt;/p>
&lt;ul>
&lt;li>La presencia física de una autoridad aumentó el cumplimiento.&lt;/li>
&lt;li>Yale es una institución de confianza, así que el experimento parecía seguro.&lt;/li>
&lt;li>La selección de maestro y aprendiz parecía aleatoria.&lt;/li>
&lt;li>Los participantes asumían que el investigador era un experto.&lt;/li>
&lt;li>Les dijeron que las descargas eran dolorosas, no peligrosas.&lt;/li>
&lt;/ul>
&lt;p>El experimento de Milgram se convirtió en un clásico de la psicología. Demostró los peligros de la obediencia. La situación influye más que la personalidad a la hora de obedecer.&lt;/p>
&lt;blockquote>
&lt;p>A menudo no es tanto el tipo de persona que uno es, sino la situación en la que se encuentra, lo que determina cómo actuará.&lt;/p>
&lt;p>Stanley Milgram, 1974.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2022-01-24/footer.jpg" alt="blog-footer" />&lt;/p>
&lt;h3 id="recursos">Recursos&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Milgram_experiment">Wikipedia&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.simplypsychology.org/milgram.html">Simply psychology&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.verywellmind.com/the-milgram-obedience-experiment-2795243">Very well mind&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Modern CTO</title><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-01-23T00:00:00+00:00</published><updated>2022-01-23T00:00:00+00:00</updated><author><name>
Joel Beasley</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/modern-cto/"/><id>https://chemaclass.com/es/readings/modern-cto/</id><summary type="html">Joel Beasley ofrece una guía práctica para pasar de desarrollador a CTO. Comparte desde su experiencia los retos, las lecciones aprendidas y los errores típicos en este camino.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Los desarrolladores no son CTOs, pero pueden aprender a serlo.&lt;/p>
&lt;p>Joel Beasley ofrece una guía práctica para pasar de desarrollador a CTO. Comparte desde su experiencia los retos, las lecciones aprendidas y los errores típicos en este camino.&lt;/p>
&lt;p>Estos son los temas que encontrarás en el libro:&lt;/p>
&lt;h4 id="un-cto-moderno-sabe">Un CTO moderno sabe…&lt;/h4>
&lt;ul>
&lt;li>Los desarrolladores no son CTOs&lt;/li>
&lt;li>La epidemia del código espagueti MVP&lt;/li>
&lt;li>La sobre-ingeniería es un problema&lt;/li>
&lt;li>Si contratar, comprar o superar a la competencia&lt;/li>
&lt;li>Cómo no escalar prematuramente&lt;/li>
&lt;li>Cómo resolver cualquier problema&lt;/li>
&lt;li>Cómo trabajar con programadores cuando no eres uno&lt;/li>
&lt;li>Errores de UX a tener en cuenta&lt;/li>
&lt;li>Cuándo hablar&lt;/li>
&lt;li>Cuándo contratar y despedir consultores&lt;/li>
&lt;li>Cómo analizar el fracaso&lt;/li>
&lt;li>Cómo recuperarse de restricciones imprevistas&lt;/li>
&lt;li>Responder la pregunta: “¿Qué tan difícil es codificar…?”&lt;/li>
&lt;li>Cómo evitar al “tipo del noveno inning”&lt;/li>
&lt;li>Cuándo responder a la retroalimentación&lt;/li>
&lt;li>Cómo validar a un experto en cualquier campo&lt;/li>
&lt;li>Cómo comunicar efectivamente ideas complejas&lt;/li>
&lt;/ul>
&lt;h3 id="citas-favoritas">Citas favoritas&lt;/h3>
&lt;blockquote>
&lt;p>Si me apoyo en logros pasados, nunca creceré.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>APROVECHA LA EXPERIENCIA DE OTROS. Los libros condensan toda una vida de experiencia en unas pocas horas de lectura.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Solo hay dos razones por las que escribes mal código:&lt;/p>
&lt;ol>
&lt;li>Sabes cómo escribir buen código, pero eliges escribir mal código.&lt;/li>
&lt;li>No sabes cómo escribir buen código. Y ambas apestan.&lt;/li>
&lt;/ol>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Como CTO, debes tener un enfoque de negocio.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Siempre vuelve a tus metas principales. […] Me aseguro de que cada meta tenga un “por qué” claro detrás. Así, cuando me pierdo, vuelvo a mi “por qué”.&lt;/p>
&lt;/blockquote>
&lt;p>– Referencia a “&lt;a href="/es/readings/start-with-why">Empieza con el Por Qué&lt;/a>” de Simon Sinek.&lt;/p>
&lt;blockquote>
&lt;p>Cuando eres el jefe, recuerda esta regla de oro: Pregunta a la gente qué piensa en lugar de decirles qué hacer.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Si no puedo evaluar el componente humano, no puedo liderar un equipo. […] La composición del equipo pesa tanto o más que la experiencia técnica.&lt;/p>
&lt;/blockquote>
&lt;blockquote>
&lt;p>Como CTO, si no puedes explicar el valor de forma simple, significa que no entiendes el valor de negocio detrás de tu tecnología.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Los líderes comen al final</title><subtitle>Por qué algunos equipos trabajan unidos y otros no</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2022-01-16T00:00:00+00:00</published><updated>2022-01-16T00:00:00+00:00</updated><author><name>
Simon Sinek</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/leaders-eat-last/"/><id>https://chemaclass.com/es/readings/leaders-eat-last/</id><summary type="html">La mayor fortaleza de una empresa no está en sus productos o servicios, sino en su gente y su capacidad de cooperar y unirse, sobre todo en las crisis.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>La mayor fortaleza de una empresa no está en sus productos o servicios. Está en su gente y su capacidad de cooperar y unirse, sobre todo en las crisis.&lt;/p>
&lt;p>Pero la lealtad y el compromiso hay que ganárselos. Hoy el trabajo es una relación contractual y transaccional en muchas organizaciones. La competencia intensa y los despidos son la norma. Casi nadie cree en la lealtad a una empresa, mucho menos en el empleo de por vida.&lt;/p>
&lt;h2 id="los-4-quimicos-e-d-s-o">Los 4 químicos (E.D.S.O.)&lt;/h2>
&lt;p>Somos individuos y parte de grupos sociales a la vez. Cada día tomamos decisiones que requieren sopesar nuestros intereses personales contra los del grupo. Este dilema también ocurre en nuestro cuerpo a través de 4 químicos clave:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Las &lt;strong>endorfinas&lt;/strong> y la &lt;strong>dopamina&lt;/strong> nos impulsan a satisfacer necesidades personales: encontrar comida, desarrollar soluciones, perseverar ante problemas. Nos ayudan a hacer cosas para sobrevivir.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>La &lt;strong>serotonina&lt;/strong> y la &lt;strong>oxitocina&lt;/strong> nos animan a trabajar con otros. Construyen confianza, lealtad y camaradería. Fortalecen nuestros lazos sociales y aumentan nuestra inclinación a cooperar para lograr lo que no podemos solos.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="circulos-de-seguridad">Círculos de seguridad&lt;/h2>
&lt;p>La familia tradicionalmente proporciona un Círculo de Seguridad donde nos sentimos seguros y apoyados. Dentro del círculo tenemos un equilibrio saludable de &lt;strong>E.D.S.O.&lt;/strong> y niveles bajos de cortisol. En las organizaciones, los Círculos de Seguridad dan a la gente un sentido de pertenencia y seguridad. Facilitan la comunicación, cooperación, resolución de problemas e innovación. La gente puede dirigir su atención a amenazas y oportunidades externas. Cuando se sienten amenazados por políticas y luchas internas, miran hacia adentro para protegerse. El grupo se vuelve más vulnerable.&lt;/p>
&lt;p>Los líderes deben ganarse el respeto y la lealtad haciendo los mayores sacrificios y estando dispuestos a comer al final. Hay que dar confianza para ganar confianza.&lt;/p>
&lt;h2 id="una-sociedad-desequilibrada">Una sociedad desequilibrada&lt;/h2>
&lt;p>Los 4 químicos &lt;strong>E.D.S.O.&lt;/strong> juegan roles importantes en nuestra supervivencia. Cuando están en equilibrio, las personas prosperan como están diseñadas para hacerlo. Sus grupos y organizaciones también prosperan. El problema es que el lugar de trabajo moderno está inundado de cortisol y adicción a la dopamina. No tenemos Círculos de Seguridad y estamos peligrosamente desequilibrados. ¿Cómo llegamos aquí?&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Abstracción y deshumanización&lt;/strong>: gestionar con números, sistemas globales e interacciones virtuales puede ser peligroso y llevar a actos descuidados.&lt;/li>
&lt;li>&lt;strong>Abundancia destructiva&lt;/strong>: respondemos diferente a la escasez y al exceso. Los líderes se han cegado tanto por el interés comercial que olvidaron a quién deben servir.&lt;/li>
&lt;li>&lt;strong>Cambios sociales&lt;/strong>: nuestras normas y valores han cambiado con los Boomers post-WWII, la Generación X y los Millennials. Cada vez más adictos a la dopamina y desequilibrados.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Simon Sinek ofrece muchos ejemplos e historias de líderes en todos los ámbitos: militar, política y negocios.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="ted-talk-por-que-los-lideres-comen-al-ultimo">TED Talk: Por qué los líderes comen al último&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/ReRcHdeUG9Y"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Juan Salvador Gaviota</title><subtitle>Una historia</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2022-01-08T00:00:00+00:00</published><updated>2022-01-08T00:00:00+00:00</updated><author><name>
Richard Bach</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/jonathan-livingston-seagull/"/><id>https://chemaclass.com/es/readings/jonathan-livingston-seagull/</id><summary type="html">Una fábula sobre una gaviota que quiere aprender sobre la vida y el vuelo. Una reflexión sobre la autoperfección y seguir tu propio camino.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Una fábula corta sobre una gaviota que quiere aprender sobre la vida y el vuelo. Una reflexión sobre la autoperfección.&lt;/p>
&lt;h2 id="trama">Trama&lt;/h2>
&lt;p>Jonathan Livingston Seagull es una gaviota aburrida de las peleas diarias por comida. Le apasiona volar y se esfuerza por aprender todo lo posible. Su negativa a conformarse termina en su expulsión de la bandada. Como marginado, sigue aprendiendo y se vuelve cada vez más satisfecho con sus habilidades mientras lleva una vida pacífica y feliz.&lt;/p>
&lt;p>Un día conoce a dos gaviotas que lo llevan a un “plano superior de existencia”. No hay cielo, sino un mundo mejor que se alcanza perfeccionando el conocimiento. Allí conoce a otra gaviota que también ama volar. Descubre que su tenacidad y deseo de aprender lo hacen “prácticamente un pájaro entre un millón”. En ese nuevo lugar, Jonathan se hace amigo de Chiang, la gaviota más sabia. Chiang lo lleva más allá de lo que había aprendido solo y le enseña a moverse instantáneamente a cualquier lugar del universo. El secreto: “empezar sabiendo que ya has llegado”.&lt;/p>
&lt;p>Pero Jonathan no está satisfecho con su nueva vida. Regresa a la Tierra para encontrar a otros como él, compartir lo aprendido y difundir su amor por el vuelo. Su misión tiene éxito. Reúne a su alrededor una bandada de gaviotas marginadas por no conformarse. Su primer estudiante, Fletcher Lynd Seagull, acaba convirtiéndose en maestro. Jonathan se va a enseñar a otras bandadas.&lt;/p>
&lt;blockquote>
&lt;p>Esta novela corta se ha traducido a más de treinta idiomas.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="audiolibro">Audiolibro&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/8COt1n3jDqA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Las cinco disfunciones de un equipo</title><subtitle>Una fábula de liderazgo</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2021-12-07T00:00:00+00:00</published><updated>2021-12-07T00:00:00+00:00</updated><author><name>
Patrick M. Lencioni</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-five-dysfunctions-of-a-team/"/><id>https://chemaclass.com/es/readings/the-five-dysfunctions-of-a-team/</id><summary type="html">Una fábula sobre una empresa tech donde el equipo directivo no funciona. La nueva CEO, Kathryn Petersen, identifica los problemas y ayuda al equipo a superarlos.</summary><content type="html">&lt;p>Una fábula de liderazgo sobre una empresa tech que no consigue crecer. El equipo directivo no trabaja como equipo, les cuesta llegar a acuerdos y la moral está por los suelos. Hasta que llega la nueva CEO, Kathryn Petersen, que identifica los problemas y ayuda al equipo a superarlos.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Es el primer libro que leo de Patrick Lencioni, escritor estadounidense especializado en gestión empresarial. Es fundador y presidente de The Table Group, una consultoría enfocada en salud organizacional.&lt;/p>
&lt;h2 id="resumen-del-libro">Resumen del libro&lt;/h2>
&lt;p>Kathryn Petersen, CEO de Decision Tech, enfrenta la crisis de liderazgo definitiva: unir a un equipo tan disfuncional que amenaza con hundir la empresa. ¿Lo logrará? ¿La despedirán? ¿Fracasará la empresa?&lt;/p>
&lt;p>A lo largo de la historia, Lencioni revela las cinco disfunciones que explican por qué incluso los mejores equipos tienen problemas. Presenta un modelo claro y pasos concretos para superar estos obstáculos y construir un equipo cohesivo.&lt;/p>
&lt;h2 id="el-modelo-de-las-5-disfunciones">El modelo de las 5 disfunciones&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GCxct4CR-To"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h3 id="1-ausencia-de-confianza">1) Ausencia de confianza&lt;/h3>
&lt;p>El miedo a ser vulnerable impide que el equipo construya confianza.&lt;/p>
&lt;p>Pasa cuando nadie quiere mostrarse vulnerable ni admitir errores, debilidades o que necesita ayuda. Sin ese nivel de comodidad, no hay base de confianza posible.&lt;/p>
&lt;h3 id="2-miedo-al-conflicto">2) Miedo al conflicto&lt;/h3>
&lt;p>El deseo de mantener una armonía artificial ahoga el debate productivo.&lt;/p>
&lt;p>Los equipos sin confianza no pueden tener debates apasionados sobre temas importantes. El conflicto se convierte en comentarios velados y murmullos. Cuando la gente no expresa sus opiniones abiertamente, las decisiones son peores.&lt;/p>
&lt;h3 id="3-falta-de-compromiso">3) Falta de compromiso&lt;/h3>
&lt;p>Sin claridad ni aceptación, el equipo no toma decisiones firmes.&lt;/p>
&lt;p>Sin debate real, cuesta comprometerse con las decisiones. La ambigüedad domina. La falta de dirección y compromiso hace que los empleados, sobre todo los mejores, se sientan descontentos.&lt;/p>
&lt;h3 id="4-evasion-de-responsabilidad">4) Evasión de responsabilidad&lt;/h3>
&lt;p>Nadie quiere la incomodidad de exigir cuentas a los demás.&lt;/p>
&lt;p>Cuando no hay compromiso claro con un plan, incluso los más motivados dudan en señalar comportamientos contraproducentes de sus compañeros.&lt;/p>
&lt;h3 id="5-desatencion-a-los-resultados">5) Desatención a los resultados&lt;/h3>
&lt;p>Las metas individuales y el estatus personal erosionan el enfoque en el éxito colectivo.&lt;/p>
&lt;p>Cuando no hay rendición de cuentas, la gente pone sus necesidades (ego, carrera, reconocimiento) por encima de las metas del equipo. Si el equipo pierde de vista los logros, el negocio sufre.&lt;/p>
&lt;p>&lt;img src="/images/readings/2021-12-07/the-model.jpg" alt="blog-cover" />&lt;/p>
&lt;hr />
&lt;h2 id="video-resumen">Video Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Ro0NBgHo_a8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Empieza con el porqué</title><subtitle>Cómo los grandes líderes inspiran a todos a actuar</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2021-11-28T00:00:00+00:00</published><updated>2021-11-28T00:00:00+00:00</updated><author><name>
Simon Sinek</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/start-with-why/"/><id>https://chemaclass.com/es/readings/start-with-why/</id><summary type="html">¿Por qué algunas personas y organizaciones son más innovadoras, influyentes y rentables? ¿Por qué algunas consiguen más lealtad de clientes y empleados? ¿Por qué tan pocas pueden repetir su éxito?</summary><content type="html">&lt;p>¿Por qué algunas personas y organizaciones son más innovadoras, influyentes y rentables que otras? ¿Por qué algunas consiguen mayor lealtad de clientes y empleados? Incluso entre las exitosas, ¿por qué tan pocas pueden repetir su éxito?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>La capacidad de inspirar y lograr cosas notables empieza con el POR QUÉ. Quienes empiezan con el POR QUÉ no manipulan, inspiran.&lt;/p>
&lt;p>Martin Luther King Jr., Steve Jobs y los hermanos Wright tenían poco en común. Pero todos empezaron con el POR QUÉ. Entendieron que la gente no compra un producto, servicio o idea hasta que entiende el POR QUÉ detrás.&lt;/p>
&lt;ul>
&lt;li>Inspirar y lograr cosas notables empieza con el POR QUÉ.&lt;/li>
&lt;li>Cualquier organización puede explicar qué hace. Algunas pueden explicar cómo lo hacen. Muy pocas articulan claramente por qué.&lt;/li>
&lt;li>Tu POR QUÉ es tu propósito, causa o creencia.&lt;/li>
&lt;li>Todo líder y organización inspiradora, sin importar tamaño o industria, empieza con el POR QUÉ.&lt;/li>
&lt;li>Cuando tu POR QUÉ se vuelve borroso, cuesta mantener el crecimiento, la lealtad y la inspiración que impulsaron tu éxito original.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La gente no compra LO QUE haces, compra POR QUÉ lo haces.&lt;/p>
&lt;/blockquote>
&lt;p>Los grandes líderes inspiran a la gente a actuar. Quienes inspiran dan un sentido de propósito o pertenencia que tiene poco que ver con incentivos externos.&lt;/p>
&lt;hr />
&lt;h2 id="video-resumen">Video Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/u4ZoJKF_VuA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>London vs Chicago</title><subtitle>Es una integración, no una elección</subtitle><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><published>2021-11-20T00:00:00+00:00</published><updated>2021-11-20T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/london-vs-chicago/"/><id>https://chemaclass.com/es/blog/london-vs-chicago/</id><summary type="html">Hay dos escuelas conocidas en TDD: la escuela mockista (también conocida como Outside-in) y la escuela clasicista (también conocida como Inside-out).</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-11-20/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Hay dos escuelas conocidas en TDD: la escuela mockista (también conocida como Outside-in) y la escuela clasicista (también conocida como Inside-out).&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="por-que-london-y-chicago">¿Por qué London y Chicago?&lt;/h3>
&lt;p>Dos empresas, una de Londres y otra de Chicago, afirmaban hacer TDD pero con enfoques diferentes. La de Londres construía software de afuera hacia adentro; la de Chicago, de adentro hacia afuera. Veamos cada una.&lt;/p>
&lt;h2 id="outside-in-escuela-de-londres">Outside-in: Escuela de Londres&lt;/h2>
&lt;p>Un enfoque guiado por comportamiento para TDD. Empiezas desde el exterior de la aplicación y vas hacia adentro, bajando a capas inferiores. Por ejemplo, desde la API/Controladores hacia las capas de aplicación o dominio.&lt;/p>
&lt;h3 id="pros">PROS&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Enfocado en Comportamiento&lt;/strong>: requiere muchos dobles de test porque testeas abstracciones que aún no existen (creas lógica de alto nivel primero). No escribirás código muerto, pero es fácil crear tests muy acoplados a la lógica, lo que dificulta el refactoring.&lt;/li>
&lt;li>&lt;strong>Separación Comando-Consulta&lt;/strong>: es una disciplina para gestionar efectos secundarios. O realizas una acción (comando) o pides un valor (consulta).&lt;/li>
&lt;/ul>
&lt;h3 id="contras">CONTRAS&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Tests Frágiles&lt;/strong>: tiende a crear tests que se rompen fácilmente porque suelen estar muy acoplados al código de producción.&lt;/li>
&lt;li>&lt;strong>Refactoring Difícil&lt;/strong>: por la misma razón, tener tests acoplados hace que el refactoring continuo sea lento y complicado.&lt;/li>
&lt;/ul>
&lt;h2 id="inside-out-escuela-de-chicago">Inside-out: Escuela de Chicago&lt;/h2>
&lt;p>Un enfoque informal, exploratorio, basado en estado. Empiezas desde el interior de la aplicación (normalmente el dominio) y vas hacia afuera, hacia las APIs.&lt;/p>
&lt;h3 id="pros-1">PROS&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Red de Seguridad Fuerte&lt;/strong>: produce tests desacoplados de la implementación. Puedes cambiar el software sin miedo a romperlo, ideal para el refactoring continuo.&lt;/li>
&lt;li>&lt;strong>Alta Cohesión&lt;/strong>: a medida que los tests se vuelven más generales, el código de producción se vuelve más específico. Alta cohesión lleva a bajo acoplamiento, lo que mejora extensibilidad, mantenibilidad y testeabilidad.&lt;/li>
&lt;li>&lt;strong>Minimiza Dobles de Test&lt;/strong>: construir de adentro hacia afuera requiere menos dobles porque construyes sobre tests previamente escritos. Esto ayuda a tener tests menos frágiles.&lt;/li>
&lt;/ul>
&lt;h3 id="contras-1">CONTRAS&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>YAGNI&lt;/strong>: a menudo sobre-diseña soluciones, con código que realmente no se necesita (¡o ni siquiera se usa!) al final.&lt;/li>
&lt;/ul>
&lt;h2 id="conclusion">Conclusión&lt;/h2>
&lt;p>No se trata de elegir uno u otro. Se trata de entender tu contexto y optimizar las cualidades que lo necesitan. London y Chicago tienen sus pros y contras. El mejor enfoque para TDD es integrar ambas escuelas.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/rbSDGr-_UwY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/es/blog/test-driven-development/">Test-Driven (Development)&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/blog/tdd-vs-bdd/">TDD vs BDD&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://gist.github.com/xpepper/2e3519d2cb8568a0b13739d9ae497f21">Notes about “London vs Chicago TDD styles”&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Leadership is Language</title><subtitle>El poder oculto de lo que dices, y lo que no</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-10-22T00:00:00+00:00</published><updated>2021-10-22T00:00:00+00:00</updated><author><name>
L. David Marquet</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/leadership-is-language/"/><id>https://chemaclass.com/es/readings/leadership-is-language/</id><summary type="html">Marquet analiza el hundimiento del El Faro, uno de los desastres marinos más investigados, y extrae ideas sobre cómo el lenguaje que usamos define nuestro liderazgo.</summary><content type="html">&lt;p>Un manual radical para empoderar a tu gente y poner a tu equipo en un camino de mejora continua.&lt;/p>
&lt;p>El ex comandante de submarino &lt;a rel="external" href="https://x.com/ldavidmarquet">L. David Marquet&lt;/a> analiza el hundimiento del El Faro, uno de los desastres marinos más investigados. De ahí extrae ideas clave sobre liderazgo y lenguaje.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>Quizás piensas que un líder efectivo toma decisiones rápidas, da discursos inspiradores y emite órdenes claras para que su equipo ejecute el plan. Ese modelo de liderazgo está obsoleto.&lt;/p>
&lt;blockquote>
&lt;p>Tus palabras importan más de lo que crees.&lt;/p>
&lt;/blockquote>
&lt;p>David presenta seis jugadas que todo líder debería usar para mejorar cómo opera su equipo. El problema de muchos líderes hoy es que siguen usando el manual de la era industrial. Antes el líder daba órdenes, los empleados las seguían, y ya. Esa forma de liderar ya no funciona.&lt;/p>
&lt;h3 id="las-seis-jugadas">Las seis jugadas&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Controla el reloj, no lo obedezcas.&lt;/strong> Planifica puntos de decisión y da a tu gente las herramientas para pausar si ven algo mal.&lt;/li>
&lt;li>&lt;strong>Colabora, no coacciones.&lt;/strong> Como líder, sé el último en dar tu opinión.&lt;/li>
&lt;li>&lt;strong>Comprométete, no solo cumplas.&lt;/strong> En vez de esperar que sigan instrucciones específicas, explica las metas generales y consigue su compromiso para lograrlas paso a paso.&lt;/li>
&lt;li>&lt;strong>Completa, no continúes.&lt;/strong> Si cada día se siente igual que el anterior, algo estás haciendo mal.&lt;/li>
&lt;li>&lt;strong>Mejora, no demuestres.&lt;/strong> Pide a tu gente que mejore los planes y procesos, no que demuestren que pueden cumplir metas fijas.&lt;/li>
&lt;li>&lt;strong>Conecta, no conformes.&lt;/strong> Aplana las jerarquías y conecta con tu gente para que contribuyan a las decisiones.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="video-resumen">Video Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/CQfao96j1fo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Red Work vs Blue Work</title><subtitle>Gestionando los dos tipos de trabajo</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><published>2021-10-21T00:00:00+00:00</published><updated>2021-10-21T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/red-work-blue-work/"/><id>https://chemaclass.com/es/blog/red-work-blue-work/</id><summary type="html">Blue Work y Red Work son conceptos que David Marquet describe en su libro 'Leadership is Language'. Ambos requieren mentalidades diferentes y tienen lenguajes distintos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-10-21/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>“Blue Work” y “Red Work” son conceptos que &lt;a rel="external" href="https://x.com/ldavidmarquet">David Marquet&lt;/a>
describe en su libro &lt;a href="/es/readings/leadership-is-language/">Leadership is Language&lt;/a>. Ambos requieren mentalidades diferentes y tienen lenguajes distintos.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>“Hacer” en nuestro estilo de liderazgo tradicional no nos llevará a donde necesitamos estar en el futuro.&lt;/p>
&lt;/blockquote>
&lt;h2 id="que-es-red-work">¿Qué es “Red Work”?&lt;/h2>
&lt;p>Red Work trata de &lt;strong>hacer y reducir la variabilidad&lt;/strong>. Se enfoca en demostrar y en el rendimiento.&lt;/p>
&lt;p>En Red Work, buscas completar una tarea sin tener que decidir mucho sobre el qué o el cómo. Es estar en control y tomar el control:&lt;/p>
&lt;ul>
&lt;li>Procesar trabajo y evitar errores.&lt;/li>
&lt;li>Tener previsibilidad y controlabilidad.&lt;/li>
&lt;/ul>
&lt;p>Hace falta un mecanismo para parar el Red Work y preguntar: &lt;strong>¿estamos haciendo lo correcto?&lt;/strong>&lt;/p>
&lt;h2 id="que-es-blue-work">¿Qué es “Blue Work”?&lt;/h2>
&lt;p>Blue Work trata de &lt;strong>decidir, pensar, planificar&lt;/strong>. Se enfoca en mejorar con una mentalidad humilde.&lt;/p>
&lt;blockquote>
&lt;p>El lugar correcto para hacer Blue Work es al principio y al final de un punto de decisión.&lt;/p>
&lt;/blockquote>
&lt;p>Blue Work es crucial para empezar bien. Nos permite decidir la mejor manera de hacer algo con la información que tenemos ahora mismo.&lt;/p>
&lt;p>Conviene establecer iteraciones cortas entre las diferentes actividades que queremos completar. Así tenemos “tiempo de Blue Work” para reflexionar. Es perfecto para hacer retrospectivas y ver qué podemos mejorar.&lt;/p>
&lt;p>Es el momento de parar, “controlar el reloj”, colaborar y comprometerse para la siguiente iteración. Blue Work también incluye:&lt;/p>
&lt;ul>
&lt;li>Trabajo de pensamiento.&lt;/li>
&lt;li>Toma de decisiones.&lt;/li>
&lt;li>Buscar alcanzar la excelencia.&lt;/li>
&lt;li>Lograr que más personas piensen de forma independiente.&lt;/li>
&lt;li>Abrazar la variabilidad y buscar diferentes aportes.&lt;/li>
&lt;/ul>
&lt;p>Blue Work aislado es inútil. Su función es hacer mejor el Red Work. Blue Work interminable, planificar sin resultados, no trae beneficios reales.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;p>En nuestra industria del software no hay lugar para la vieja escuela de “Red-Workers” y “Blue-Workers”. Hay “Red Work” y “Blue Work”, y todos debemos participar en ambos.&lt;/p>
&lt;/blockquote>
&lt;p>Por eso todos debemos ser conscientes de estos tipos de trabajo y encontrar un buen equilibrio. Los buenos líderes involucran a todos en Red Work y Blue Work.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OEX1EVc-zjk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;ul>
&lt;li>&lt;a href="/es/readings/leadership-is-language/">Leadership is Language&lt;/a> Libro&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.infoq.com/podcasts/david-marquet/">https://www.infoq.com/podcasts/david-marquet/&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>TDD vs BDD</title><subtitle>¿Diseño o Flujo de trabajo?</subtitle><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2021-09-25T00:00:00+00:00</published><updated>2021-09-25T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/tdd-vs-bdd/"/><id>https://chemaclass.com/es/blog/tdd-vs-bdd/</id><summary type="html">Estas son dos técnicas diferentes. La clave de cada una está en la mentalidad y el contexto de lo que quieres lograr.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-09-25/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Estas son dos técnicas diferentes. La clave de cada una está en la mentalidad y el contexto de lo que quieres lograr.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="bdd-es-una-funcionalidad-guiada-por-tests">BDD es una “funcionalidad guiada por tests”&lt;/h2>
&lt;p>Básicamente, es un desarrollo test-first, donde el enfoque principal es asegurar el comportamiento final esperado, y por lo tanto el resultado de la lógica de software que quieres tener al final.&lt;/p>
&lt;p>En BDD el enfoque principal es el comportamiento de tu lógica de dominio que aún no existe. Es, desde un punto de vista abstracto, sobre toda la funcionalidad y los requisitos del dominio.&lt;/p>
&lt;h2 id="tdd-es-sobre-el-ritmo">TDD es sobre el ritmo&lt;/h2>
&lt;ol>
&lt;li>Especifica lo que quieres.&lt;/li>
&lt;li>Hazlo funcionar.&lt;/li>
&lt;li>Hazlo mejor.&lt;/li>
&lt;/ol>
&lt;p>TDD no es solo la ya conocida mentalidad “red-green-refactor”, sino principalmente sobre el flujo de trabajo que te ayuda a entender las constantes decisiones de diseño que haces cada vez para cada lógica que estás diseñando.&lt;/p>
&lt;blockquote>
&lt;p>TDD es sobre retroalimentación constante de tus decisiones.&lt;/p>
&lt;/blockquote>
&lt;p>En el contexto de OOP (para hacer los ejemplos más claros), siempre hay toneladas de formas diferentes de diseñar tu clase:&lt;/p>
&lt;ul>
&lt;li>¿Cuál es el nombre de la clase de este método?&lt;/li>
&lt;li>¿Cuáles son las dependencias o colaboradores de esta clase?&lt;/li>
&lt;li>¿Cómo se comportará esta clase cuando use esta otra clase dentro de ella?&lt;/li>
&lt;li>¿Cuál es el resultado esperado de este método cuando le doy estos argumentos?&lt;/li>
&lt;li>etc, etc…&lt;/li>
&lt;/ul>
&lt;p>Hacemos estas preguntas (y muchas más) cada vez, y también les damos una respuesta, pero normalmente sin ningún pensamiento racional o reflexión sobre ello. Simplemente hacemos lo que creemos que es “lo mejor” en ese momento particular enfocándonos en hacer que algo funcione, pero ¿es suficiente hacerlo funcionar?&lt;/p>
&lt;h2 id="el-bucle-de-retroalimentacion-constante">El bucle de retroalimentación constante&lt;/h2>
&lt;p>El testing no es solo una gran herramienta porque te da una red de seguridad para refactorizar con confianza, sino también porque ayuda a diseñar mejor el sistema. &lt;strong>¿Cómo es eso?&lt;/strong> Porque antes de implementar cualquier solución, te obliga a pensar en las decisiones que necesitas tomar. Te desafías a ti mismo para entender los argumentos de tus decisiones, y por qué A y no B es mejor solución en un contexto particular.&lt;/p>
&lt;p>BDD y TDD no son mutuamente excluyentes, de hecho, pueden y deben coexistir. Depende principalmente del contexto de lo que quieres construir y testear.&lt;/p>
&lt;p>&lt;img src="/images/blog/2021-09-25/bdd-and-tdd.jpg" alt="blog-bdd-and-tdd" />&lt;/p>
&lt;p>BDD es sobre desarrollo de funcionalidades Test-First. El objetivo no es el cómo sino el qué. El bucle de retroalimentación es largo porque obtendrás el “verde” una vez que la funcionalidad esté implementada y funcionando como se esperaba.&lt;/p>
&lt;p>TDD también es otro desarrollo guiado por Test-First pero, a diferencia de BDD, se trata de un bucle de retroalimentación más corto y rápido.&lt;/p>
&lt;ol>
&lt;li>Primero, &lt;strong>especificas lo que quieres&lt;/strong>. Piensas sobre el diseño de tu clase o método. Su nombre o firma. Sus dependencias. Pero todo esto con pequeños pasos, uno a la vez.&lt;/li>
&lt;li>Segundo, &lt;strong>haces que esa pequeña cosa funcione&lt;/strong> de la manera más simple posible.&lt;/li>
&lt;li>Finalmente, &lt;strong>lo haces mejor&lt;/strong>. Porque el software es lo suficientemente difícil y complicado como para hacerlo bien al primer intento, así que el refactoring es imprescindible para mantener un sistema saludable. En este punto, con un “test verde ejecutándose”, puedes refactorizar y mejorar tu lógica de forma segura.&lt;/li>
&lt;/ol>
&lt;p>Lo anterior es básicamente TDD, cierto, pero… ¿qué tiene de especial? El &lt;strong>bucle de retroalimentación&lt;/strong> constante y las &lt;strong>decisiones de diseño&lt;/strong> que necesitas tomar antes de escribir realmente la solución. Este es el poder de TDD.&lt;/p>
&lt;h3 id="por-que-pasos-tan-pequenos-en-tdd">¿Por qué pasos tan pequeños en TDD?&lt;/h3>
&lt;p>Teóricamente “debes” escribir pequeños pasos para cada iteración, pero ¿por qué? &lt;strong>Se trata del bucle de retroalimentación&lt;/strong>. Esto depende de ti, tus expectativas y tu experiencia con testing.&lt;/p>
&lt;p>&lt;img src="/images/blog/2021-09-25/footer.jpg" alt="pequeños pasos en el bucle de retroalimentación de tdd" />&lt;/p>
&lt;hr />
&lt;h3 id="recursos">Recursos&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://chemaclass.com/es/blog/test-driven-development/">https://chemaclass.com/es/blog/test-driven-development/&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://blog.testlodge.com/tdd-vs-bdd/">https://blog.testlodge.com/tdd-vs-bdd/&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>El patrón Bitcoin</title><subtitle>La alternativa descentralizada a la banca central</subtitle><category term="bitcoin" scheme="https://chemaclass.com/tags/bitcoin/" label="Bitcoin"/><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2021-09-20T00:00:00+00:00</published><updated>2021-09-20T00:00:00+00:00</updated><author><name>
Saifedean Ammous</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-bitcoin-standard/"/><id>https://chemaclass.com/es/readings/the-bitcoin-standard/</id><summary type="html">Un análisis del contexto histórico de Bitcoin, las propiedades económicas que lo hicieron crecer tan rápido, y sus posibles implicaciones económicas, políticas y sociales.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro analiza el contexto histórico de Bitcoin, las propiedades económicas que lo hicieron crecer tan rápido, y sus posibles implicaciones económicas, políticas y sociales.&lt;/p>
&lt;p>Bitcoin es un invento de la era digital, pero el problema que resuelve es tan antiguo como la humanidad: transferir valor a través del tiempo y el espacio. Ammous nos lleva por la historia de las tecnologías que han funcionado como dinero. Desde piedras y conchas, pasando por metales y monedas, hasta el patrón oro y la deuda gubernamental moderna.&lt;/p>
&lt;p>Con ese contexto, el libro explica cómo funciona Bitcoin de forma clara e intuitiva. Es un software descentralizado y distribuido que convierte electricidad y poder de procesamiento en registros precisos e indiscutibles. Permite usar Internet para las funciones tradicionales del dinero sin depender de ninguna autoridad o infraestructura física.&lt;/p>
&lt;p>El capítulo final responde las preguntas más comunes sobre Bitcoin:&lt;/p>
&lt;ul>
&lt;li>¿La minería de Bitcoin desperdicia energía?&lt;/li>
&lt;li>¿Bitcoin es para criminales?&lt;/li>
&lt;li>¿Quién controla Bitcoin y pueden cambiarlo?&lt;/li>
&lt;li>¿Cómo se puede matar a Bitcoin?&lt;/li>
&lt;/ul>
&lt;p>El patrón Bitcoin es el recurso esencial para entender esta alternativa descentralizada, apolítica y de libre mercado frente a los bancos centrales.&lt;/p>
&lt;hr />
&lt;h2 id="video-resumen">Video Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/t1brCcgi174"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>Extra: Podcast de Lex Fridman con el autor de este libro&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/gp4U5aH_T6A"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Turn the Ship Around!</title><subtitle>Una historia real de convertir seguidores en líderes</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2021-09-12T00:00:00+00:00</published><updated>2021-09-12T00:00:00+00:00</updated><author><name>
L. David Marquet</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/turn-the-ship-around/"/><id>https://chemaclass.com/es/readings/turn-the-ship-around/</id><summary type="html">Marquet cuenta cómo transformó el submarino Santa Fe con un nuevo modelo de liderazgo. Muestra las limitaciones de la jerarquía tradicional y cómo el enfoque líder-líder puede cambiar todo.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Marquet comparte sus teorías de liderazgo y cómo implementó un modelo diferente. Explica las limitaciones de la jerarquía tradicional, por qué falló antes al intentar empoderar a su equipo, y cómo el submarino Santa Fe fue el lugar perfecto para probar el enfoque líder-líder.&lt;/p>
&lt;p>Casi todos dividimos el mundo en &lt;strong>líderes vs seguidores&lt;/strong> sin darnos cuenta. Asumimos qué puede o no puede hacer cada grupo. Esas suposiciones afectan cómo pensamos y actuamos, impactando el rendimiento de cada persona y de la organización.&lt;/p>
&lt;p>Es muy común: un empleado entusiasta propone una idea nueva y le dicen “eso no es tu trabajo” o “eso no va a funcionar”. La gente se frustra y al final deja de intentarlo o se va. &lt;strong>Los jefes también se frustran&lt;/strong> cuando su equipo prefiere &lt;strong>hacer lo mínimo&lt;/strong> en vez de &lt;strong>innovar o asumir responsabilidad&lt;/strong>.&lt;/p>
&lt;img border="0" style="width: 100%" src="https://i0.wp.com/readingraphics.com/uploads/2019/06/Turn-the-Ship-Around_Overview.png" >
&lt;blockquote>
&lt;p>El modelo líder-líder parte de que todos tienen capacidad y &lt;strong>potencial para liderar&lt;/strong>.
Aprovecha ese potencial en todos los niveles, reduce la dependencia de un solo líder y logra un rendimiento sostenido.&lt;/p>
&lt;/blockquote>
&lt;h3 id="los-3-componentes-clave-control-competencia-y-claridad">Los 3 componentes clave: Control, Competencia y Claridad&lt;/h3>
&lt;h4 id="control">Control&lt;/h4>
&lt;p>El control es la libertad y autoridad para decidir el por qué, el qué y el cómo de tu trabajo. La meta es delegar las decisiones lo más abajo posible en la organización.&lt;/p>
&lt;ul>
&lt;li>Encuentra el código genético del control y reescríbelo.&lt;/li>
&lt;li>Actúa para llegar a un nuevo pensamiento.&lt;/li>
&lt;li>Las conversaciones cortas y tempranas hacen el trabajo más eficiente.&lt;/li>
&lt;li>Usa “Tengo la intención de…” para convertir seguidores pasivos en líderes activos.&lt;/li>
&lt;li>Resiste el impulso de dar soluciones.&lt;/li>
&lt;li>Elimina los sistemas de monitoreo de arriba hacia abajo.&lt;/li>
&lt;li>Piensa en voz alta (tanto jefes como subordinados).&lt;/li>
&lt;/ul>
&lt;h4 id="competencia">Competencia&lt;/h4>
&lt;p>Cada persona debe ser técnicamente competente para tomar buenas decisiones en su nivel. Si das más responsabilidad sin el conocimiento y recursos necesarios, todo se desmorona.&lt;/p>
&lt;ul>
&lt;li>Toma acciones deliberadas.&lt;/li>
&lt;li>Aprendemos en todas partes, todo el tiempo.&lt;/li>
&lt;li>No informes, certifica.&lt;/li>
&lt;li>Repite el mensaje de forma continua y consistente.&lt;/li>
&lt;li>Especifica metas, no métodos.&lt;/li>
&lt;/ul>
&lt;h4 id="claridad">Claridad&lt;/h4>
&lt;p>Para tomar buenas decisiones en cualquier nivel, hay que estar alineado con el propósito de la organización. Hay que entender bien los objetivos y los criterios para decidir.&lt;/p>
&lt;ul>
&lt;li>Busca la excelencia, no solo evitar errores.&lt;/li>
&lt;li>Construye confianza y cuida a tu gente.&lt;/li>
&lt;li>Usa tu legado como inspiración.&lt;/li>
&lt;li>Usa principios guía para los criterios de decisión.&lt;/li>
&lt;li>Usa el reconocimiento inmediato para reforzar los comportamientos deseados.&lt;/li>
&lt;li>Empieza con el fin en mente.&lt;/li>
&lt;li>Fomenta cuestionar las cosas en vez de obedecer ciegamente.&lt;/li>
&lt;/ul>
&lt;img border="0" style="width: 100%" src="https://i2.wp.com/readingraphics.com/wp-content/uploads/2019/06/Turn-the-Ship-Around_the-Leader-Leader-Model.png" >
&lt;h2 id="citas-favoritas">Citas favoritas&lt;/h2>
&lt;blockquote>
&lt;p>El liderazgo es comunicar a las personas su valor y potencial tan claramente que se inspiran a verlo en sí mismas.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OqmdLcyES_Q"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>David Marquet habla sobre el liderazgo que cambia el rumbo en su keynote en el Worldwebforum.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/ivwKQqf4ixA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El guardián entre el centeno</title><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2021-08-08T00:00:00+00:00</published><updated>2021-08-08T00:00:00+00:00</updated><author><name>
J. D. Salinger</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-catcher-in-the-rye/"/><id>https://chemaclass.com/es/readings/the-catcher-in-the-rye/</id><summary type="html">Salinger refleja su propia juventud, su relación complicada con crecer y el trauma de la Segunda Guerra Mundial. Una novela que se convirtió en icono de la rebeldía adolescente.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Aunque fue escrita para adultos, los adolescentes la adoptaron por sus temas de angustia, alienación y crítica a lo superficial.&lt;/p>
&lt;p>Salinger refleja su propia juventud, su relación complicada con crecer y el trauma de haber vivido la Segunda Guerra Mundial.&lt;/p>
&lt;p>Es una novela claramente autobiográfica. Salinger usó sus experiencias en la guerra y su Nueva York natal para crear a &lt;strong>Holden Caulfield&lt;/strong>.&lt;/p>
&lt;p>El protagonista se convirtió en icono de la rebeldía adolescente. La novela toca temas como la inocencia, la identidad, la pertenencia, la pérdida, el sexo y la depresión.&lt;/p>
&lt;p>Del capítulo 22:&lt;/p>
&lt;blockquote>
&lt;p>— “No te gusta nada de lo que está pasando.” Me deprimió aún más cuando dijo eso.&lt;/p>
&lt;p>— “Sí me gusta. Sí me gusta. Claro que sí. No digas eso. ¿Por qué diablos dices eso?”&lt;/p>
&lt;p>— “Porque no te gusta. No te gusta ninguna escuela. No te gustan un millón de cosas. No te gustan.”&lt;/p>
&lt;p>— “¡Sí me gustan! Ahí es donde te equivocas—¡es exactamente donde te equivocas! ¿Por qué diablos tienes que decir eso?” dije. Cielos, me estaba deprimiendo.&lt;/p>
&lt;p>— “Porque no te gustan,” dijo ella. “Nombra una cosa.”&lt;/p>
&lt;p>— “¿Una cosa? ¿Una cosa que me guste?” dije. “Vale.”&lt;/p>
&lt;p>El problema era que no podía concentrarme muy bien. A veces es difícil concentrarse.&lt;/p>
&lt;/blockquote>
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/WSq-WQgKnyE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Test-Driven (Development)</title><subtitle>¿Qué tiene de desafiante?</subtitle><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><published>2021-08-01T00:00:00+00:00</published><updated>2021-08-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/test-driven-development/"/><id>https://chemaclass.com/es/blog/test-driven-development/</id><summary type="html">TDD es una práctica de diseño, no solo una técnica de testing. Escribir tests primero cambia cómo piensas sobre el código y su estructura.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-08-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>La complejidad aquí no está en escribir tests en sí, sino en los hábitos que tenemos que cambiar para crear software que sea fácil de testear.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="la-raiz-del-problema">La raíz del problema&lt;/h2>
&lt;p>Sin experiencia sólida en testing, los desarrolladores lo pasan mal al intentar aplicar tests en su trabajo diario. No es solo por la complejidad del tema, sino &lt;strong>porque están acostumbrados a escribir código difícil de testear.&lt;/strong>&lt;/p>
&lt;p>Escribir tests para software que ya funciona (sobre todo cuando se hizo sin pensar en testing) se siente aburrido y casi inútil. Viene acompañado de falta de motivación, culpando al sujeto equivocado: “los tests me hacen ir más lento”.&lt;/p>
&lt;blockquote>
&lt;p>En un contexto de dominio, si una pieza de lógica de software es difícil de testear, el problema no es el test, sino el código que no estaba bien escrito.&lt;/p>
&lt;/blockquote>
&lt;p>Ya hay cientos de tutoriales, libros y documentación sobre testing. Aquí comparto mi experiencia y cómo aplico esta filosofía en mi trabajo diario.&lt;/p>
&lt;h3 id="test-driven-se-basa-en-esta-simple-regla">Test-Driven se basa en esta simple regla&lt;/h3>
&lt;ul>
&lt;li>En lugar de: diseñar código -&amp;gt; desarrollar código -&amp;gt; escribir tests.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2021-08-01/non-tdd-style.png" alt="non-tdd-style" />&lt;/p>
&lt;ul>
&lt;li>Se trata de: escribir test automatizado que falla -&amp;gt; ejecutar test que falla -&amp;gt; desarrollar código para hacer pasar el test -&amp;gt; ejecutar test -&amp;gt; repetir.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2021-08-01/tdd-style.png" alt="tdd-style" />&lt;/p>
&lt;p>La idea de guiar tu código con tests depende del nivel de abstracción de lo que estés escribiendo. No quieres acoplar mal los tests con el código testeado. Quieres testear el comportamiento de tu lógica.&lt;/p>
&lt;p>TDD se basa en un bucle de pequeños pasos que te ayuda a encontrar &lt;strong>patrones&lt;/strong> y guiar tu diseño de software con &lt;strong>refactorizaciones constantes&lt;/strong>. Es la mejor opción si quieres asegurar el comportamiento esperado de todos los caminos posibles de tu lógica.&lt;/p>
&lt;p>Lo bonito es que no necesitas conocer el algoritmo completo desde el principio. Vas &lt;strong>descubriendo&lt;/strong> cómo debería ser tu lógica expresando la implementación deseada, paso a paso, en tests automatizados.&lt;/p>
&lt;p>Escribir tests al mismo tiempo que escribes el código te &lt;strong>obliga a escribir mejor software&lt;/strong>. Porque quieres que sea fácil de testear, y eso lleva a mayor calidad.&lt;/p>
&lt;blockquote>
&lt;p>Ya escribí otro post sobre la relación entre &lt;strong>calidad y testing&lt;/strong> del software: &lt;a href="/es/blog/the-art-of-testing/">El Arte del Testing: donde el diseño se encuentra con la calidad&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;h2 id="mejora-tus-habilidades-de-test-driven">Mejora tus habilidades de Test-Driven&lt;/h2>
&lt;p>&lt;img src="/images/blog/2021-08-01/tdd-style-with-git.png" alt="tdd-style" />&lt;/p>
&lt;p>La mejor manera de aprender Test-Driven es haciendo katas de software. Pruébalas solo y con otros. Ambas son igualmente importantes.&lt;/p>
&lt;ul>
&lt;li>Solo: para desafiar tu yo interior sin ninguna distracción excepto tú mismo.&lt;/li>
&lt;li>Con otros: el pair-programming es esencial en nuestro trabajo. Las katas son las mejores herramientas para entrenar nuestras habilidades de comunicación y aprender juntos unos de otros.&lt;/li>
&lt;/ul>
&lt;h3 id="que-es-una-code-kata">¿Qué es una Code Kata?&lt;/h3>
&lt;p>Los desarrolladores no practicamos lo suficiente. La mayor parte de nuestro aprendizaje ocurre en el trabajo, y ahí es donde cometemos la mayoría de nuestros errores.&lt;/p>
&lt;p>Otras profesiones creativas sí practican: los músicos tocan piezas técnicas, los poetas reescriben obras constantemente. En karate, un estudiante dedica la mayor parte del tiempo a aprender y perfeccionar movimientos básicos. Esas son las katas.&lt;/p>
&lt;h3 id="cual-es-el-objetivo-de-una-kata-que-deberiamos-tener-al-final">¿Cuál es el objetivo de una kata? ¿Qué deberíamos tener al final?&lt;/h3>
&lt;p>Las katas existen para que los desarrolladores obtengamos los mismos beneficios que practicar en otras profesiones. Son ejercicios simples y artificiales que permiten experimentar y aprender sin la presión de producción.&lt;/p>
&lt;blockquote>
&lt;p>No hay respuestas correctas o incorrectas en ninguna kata de software: el beneficio viene del proceso, no del resultado.&lt;/p>
&lt;/blockquote>
&lt;h3 id="consejos">Consejos&lt;/h3>
&lt;ul>
&lt;li>Cuando resuelvas una kata, vuelve a intentarla en unas semanas o meses.&lt;/li>
&lt;li>Explora nuevas soluciones. Sé creativo y no te apresures.&lt;/li>
&lt;li>En grupo, no es una competición para ver quién logra más.&lt;/li>
&lt;li>El foco debe estar en el proceso, nunca en el resultado.&lt;/li>
&lt;li>El verdadero valor de cualquier kata son los aprendizajes que obtendréis después de hablar y compartir experiencias.&lt;/li>
&lt;/ul>
&lt;p>Puedes encontrar muchas katas en Internet. Por ejemplo:&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="http://codekata.com">http://codekata.com&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://codingdojo.org/kata">https://codingdojo.org/kata&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/gamontal/awesome-katas">https://github.com/gamontal/awesome-katas&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="tdd-es-mas-un-flujo-de-trabajo-que-un-diseno">TDD es más un flujo de trabajo que un diseño&lt;/h3>
&lt;blockquote>
&lt;p>“TDD es una herramienta de diseño.” Eso es lo que Sandro dijo durante años. Pero ya no. Tras trabajar con diferentes equipos y organizaciones, y observar cómo trabaja él mismo, Sandro cambió de opinión sobre el rol de TDD en el diseño de software.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/KyFVA4Spcgg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>TDD en pocas palabras; se trata del ritmo.&lt;/p>
&lt;ol>
&lt;li>Especifica lo que quieres.&lt;/li>
&lt;li>Hazlo funcionar.&lt;/li>
&lt;li>Hazlo mejor.&lt;/li>
&lt;/ol>
&lt;hr />
&lt;h2 id="kent-beck">Kent Beck&lt;/h2>
&lt;blockquote class="twitter-tweet">&lt;p lang="en" dir="ltr">1. Change the code as usual&lt;br>2. Write a test that only passes after the change&lt;br>3. Revert to before 1&lt;br>4. Type the test again (copy/paste is cheating &amp;amp; invalidates the warranty of the exercise)&lt;br>5. Make it compile by changing the code&lt;br>6. See it fail&lt;br>7. Change the code to make it pass&lt;/p>&amp;mdash; Kent Beck 🌻 (@KentBeck) &lt;a href="https://twitter.com/KentBeck/status/1421257650113634304?ref_src=twsrc%5Etfw">July 30, 2021&lt;/a>&lt;/blockquote> &lt;script async src="https://platform.twitter.com/widgets.js" charset="utf-8">&lt;/script>
&lt;hr />
&lt;p>Imágenes originales de &lt;a rel="external" href="https://x.com/evrtrabajo">Emmanuel Valverde Ramos&lt;/a>.&lt;/p></content></entry><entry xml:lang="es"><title>El señor de las moscas</title><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2021-07-10T00:00:00+00:00</published><updated>2021-07-10T00:00:00+00:00</updated><author><name>
William Golding</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/lord-of-the-flies/"/><id>https://chemaclass.com/es/readings/lord-of-the-flies/</id><summary type="html">Un clásico que mezcla parábola, alegoría y cuento moral. Un grupo de niños británicos acaba varado en una isla desierta. Su intento de gobernarse a sí mismos termina en desastre.</summary><content type="html">&lt;p>Un clásico que mezcla parábola, alegoría, mito, cuento moral y hasta parodia política.&lt;/p>
&lt;p>Un grupo de niños británicos acaba varado en una isla desierta. Su intento de gobernarse a sí mismos termina en desastre.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>El libro explora la tensión entre lo grupal y lo individual, entre la razón y la emoción, entre lo moral y lo inmoral.&lt;/p>
&lt;p>Los primeros capítulos van lentos, pero construyen el contexto necesario. Después la historia escala rápido.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/NnnZ6y1HPqI"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Responsabilidades de un Tech Lead</title><subtitle>No es una promoción. Es un cambio de rol.</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2021-07-01T00:00:00+00:00</published><updated>2021-07-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/tech-lead/"/><id>https://chemaclass.com/es/blog/tech-lead/</id><summary type="html">El Modelo de Carrera Tridente de Patrick Kua tiene tres vías. Cada una representa dónde uno pasa la mayor parte de su tiempo o energía.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-07-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>El Modelo de Carrera Tridente de Patrick Kua tiene tres vías. Cada una representa dónde uno pasa la mayor parte de su tiempo o energía.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="historia-arquetipica">Historia Arquetípica&lt;/h2>
&lt;h3 id="contribuidor-individual">Contribuidor Individual&lt;/h3>
&lt;ul>
&lt;li>70–80% del tiempo dedicado a “Ejecutar, hacer”.&lt;/li>
&lt;li>Diseñar. Testear. Programar.&lt;/li>
&lt;/ul>
&lt;h3 id="gestion">Gestión&lt;/h3>
&lt;ul>
&lt;li>70–80% del tiempo dedicado a “Gestionar el sistema”.&lt;/li>
&lt;li>Planificar. Organizar. Apoyar. Presupuestar.&lt;/li>
&lt;/ul>
&lt;h3 id="lider-tecnico">Líder Técnico&lt;/h3>
&lt;ul>
&lt;li>70–80% del tiempo dedicado a “Liderar Temas Técnicos y Equipos”.&lt;/li>
&lt;li>Alinear al Equipo. Visión Técnica. Aumentar el Conocimiento Técnico. Gestión de Riesgo Técnico y Deuda Técnica.&lt;/li>
&lt;/ul>
&lt;p>¿Qué es un Tech Lead?&lt;/p>
&lt;blockquote>
&lt;p>“Un Tech Lead es un ingeniero de software, responsable de liderar un equipo de desarrollo, y responsable de la calidad de sus entregables técnicos.” (&lt;a rel="external" href="https://www.patkua.com/blog/the-definition-of-a-tech-lead/">fuente&lt;/a>)&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2021-07-01/responsibilities.jpg" alt="círculos de responsabilidad de un tech lead" />&lt;/p>
&lt;h2 id="un-tech-lead-es-un-desarrollador-que-es-un-lider">Un Tech Lead es un Desarrollador que es un Líder&lt;/h2>
&lt;p>Un buen líder se asegura de que el equipo vaya en la misma dirección. Juntos se avanza más lejos que siendo solo personas que trabajan “juntas”.&lt;/p>
&lt;h2 id="habilidades-de-liderazgo-en-las-que-invertir">Habilidades de liderazgo en las que invertir&lt;/h2>
&lt;ul>
&lt;li>Empatía&lt;/li>
&lt;li>Autoconciencia&lt;/li>
&lt;li>Motivación&lt;/li>
&lt;li>Resolución de Conflictos&lt;/li>
&lt;li>Comunicación&lt;/li>
&lt;li>Coaching&lt;/li>
&lt;li>Dar retroalimentación&lt;/li>
&lt;li>Influencia&lt;/li>
&lt;li>Delegación&lt;/li>
&lt;/ul>
&lt;p>El rol de Tech Lead es una posición de liderazgo, no necesariamente una posición de gestión.&lt;/p>
&lt;h2 id="sorpresas-y-luchas">Sorpresas y Luchas&lt;/h2>
&lt;ul>
&lt;li>Sentirse solo: te conviertes en un “outsider”. Tienes un rol diferente. Eres escudo y filtro.&lt;/li>
&lt;li>Incertidumbre: no hay respuesta correcta. Vienes del hábito binario del código. Trabajas con información imperfecta.&lt;/li>
&lt;li>Las personas desconciertan: son únicas, con diferentes fortalezas y arquetipos.&lt;/li>
&lt;/ul>
&lt;h2 id="un-gran-tech-lead">Un Gran Tech Lead&lt;/h2>
&lt;p>Un gran Tech Lead se enfoca en desarrollar a otros para que el equipo mejore sus capacidades.&lt;/p>
&lt;h3 id="decir-o-delegar">¿Decir o Delegar?&lt;/h3>
&lt;p>El objetivo es alcanzar una delegación completa, paso a paso. Hay que trasladar responsabilidades a otras personas para que también crezcan. Esto depende de sus habilidades, motivaciones y la urgencia de la tarea.&lt;/p>
&lt;p>&lt;img src="/images/blog/2021-07-01/leadership-model.jpg" alt="modelo de delegación en liderazgo" />&lt;/p>
&lt;blockquote>
&lt;p>“Nadie es perfecto, pero un equipo puede serlo.” - Meredith Belbin&lt;/p>
&lt;/blockquote>
&lt;h2 id="puntos-clave">Puntos clave&lt;/h2>
&lt;ul>
&lt;li>Tech Lead es un cambio de rol.&lt;/li>
&lt;li>Requiere habilidades de liderazgo.&lt;/li>
&lt;li>Otros han estado en este camino.&lt;/li>
&lt;li>Hay muchos recursos disponibles.&lt;/li>
&lt;li>Pasa del modo creador al multiplicador.&lt;/li>
&lt;/ul>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/F81W-JcRgXM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;h2 id="libros-recomendados-en-este-campo">Libros recomendados en este campo&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="/es/readings/xp-embrace-change/">Extreme Programming&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/manager-path/">The Manager’s Path&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/the-art-of-leadership/">The art of Leadership&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/peopleware">Peopleware&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/high-output-management/">High Output Management&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/become-an-effective-software-engineering-manager">Become an Effective Software Engineering Manager&lt;/a>&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="referencias">Referencias&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://www.thekua.com/atwork/2019/02/the-trident-model-of-career-development/">The Trident Model of Career Development&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.thekua.com/atwork/2015/06/tech-lead-circles-of-responsibility/">Tech Lead – Circles of Responsibility&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Cómo ser un Engineering Manager efectivo</title><subtitle>Cómo ser el líder que tu equipo de desarrollo necesita</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2021-06-27T00:00:00+00:00</published><updated>2021-06-27T00:00:00+00:00</updated><author><name>
James Stanier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/effective-software-em/"/><id>https://chemaclass.com/es/readings/effective-software-em/</id><summary type="html">Una recopilación completa de temas clave: 1:1s, evaluaciones, contratación, despidos, política laboral y trabajo remoto.</summary><content type="html">&lt;p>Una recopilación completa de temas clave para la gestión: 1:1s, evaluaciones de desempeño, contratación, despidos, política laboral y trabajo remoto.&lt;/p>
&lt;p>El libro tiene 3 partes: la primera cubre lo que un manager nuevo debería saber; la segunda y tercera profundizan en temas que todo manager debería dominar.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Aunque asentía con los consejos, a veces sentía que era demasiado extenso o entraba en detalles que no me interesaban. Aun así, me alegro de haberlo terminado. Saqué muchos consejos útiles.&lt;/p>
&lt;hr />
&lt;p>Mis aprendizajes de este libro:&lt;/p>
&lt;h2 id="parte-1-orientarse">Parte 1 - Orientarse&lt;/h2>
&lt;h3 id="capitulo-01-una-nueva-aventura">Capítulo 01: Una nueva aventura&lt;/h3>
&lt;ul>
&lt;li>Consejos prácticos para tu primera semana y cómo detectar señales de desalineación.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-02-gestionate-a-ti-mismo-primero">Capítulo 02: Gestiónate a ti mismo primero&lt;/h3>
&lt;ul>
&lt;li>Buen recordatorio de que ordenar tus propias cosas es lo primero. Es prerrequisito para ser eficiente como manager.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Tu calendario es para ti y para los demás. Mantenlo ordenado y con sentido. Te representa. Hacer las reuniones públicas por defecto ayuda a otros a entender cómo agendar tiempo contigo.”&lt;/p>
&lt;/blockquote>
&lt;h2 id="parte-2-trabajar-con-personas">Parte 2 - Trabajar con personas&lt;/h2>
&lt;h3 id="capitulo-03-comunicarte-con-humanos">Capítulo 03: Comunicarte con humanos&lt;/h3>
&lt;ul>
&lt;li>Mucho terreno sobre cómo comunicarte con otros.&lt;/li>
&lt;li>Piénsalo dos veces antes de compartir información.&lt;/li>
&lt;li>Sé consistente en tu estilo de comunicación.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“No comuniques cuando quieras, sino cuando necesites.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-04-uno-a-uno">Capítulo 04: Uno a uno&lt;/h3>
&lt;ul>
&lt;li>Es su reunión, no la tuya.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Intenta que hablen el 70% del tiempo. Si quieres resolverles el problema, no lo hagas. Haz otra pregunta y deja que lleguen solos a la conclusión. Es un arte que requiere práctica.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-05-el-trabajo-adecuado-para-cada-persona">Capítulo 05: El trabajo adecuado para cada persona&lt;/h3>
&lt;ul>
&lt;li>Motivación y jerarquía de necesidades. Ejemplos prácticos de cómo desarrollar habilidades.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Como manager, puedes trabajar con ellos para situar sus metas de carrera en la base de su árbol de habilidades. Luego planificar hitos intermedios con progreso medible, empujando la frontera de su zona de desarrollo cada vez más lejos.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-06-evaluaciones-de-desempeno">Capítulo 06: Evaluaciones de desempeño&lt;/h3>
&lt;ul>
&lt;li>Prepáralas con antelación. Recoge feedback de compañeros, por ejemplo por email.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-07-contratacion">Capítulo 07: Contratación&lt;/h3>
&lt;ul>
&lt;li>No siempre necesitas al candidato más senior.&lt;/li>
&lt;li>El encaje cultural importa.&lt;/li>
&lt;li>Cómo montar un proceso de entrevistas.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-08-rotacion">Capítulo 08: Rotación&lt;/h3>
&lt;ul>
&lt;li>Que la gente se vaya es normal.&lt;/li>
&lt;li>Renuncias voluntarias:
&lt;ul>
&lt;li>“Buenas razones”: no podrías haber hecho mucho.&lt;/li>
&lt;li>“Malas razones”: podrías haber detectado y abordado cosas antes (conflictos, falta de reto, salario).&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Estás condenado al fracaso si crees que vas a retener a todos indefinidamente. […] No luches por retener a alguien si no puedes ofrecer las condiciones para que sea más feliz. Solo retrasarás su partida.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-09-construir-tu-red">Capítulo 09: Construir tu red&lt;/h3>
&lt;ul>
&lt;li>Hacer presentaciones, mantenerte en contacto.&lt;/li>
&lt;li>Coaching y mentoría.&lt;/li>
&lt;/ul>
&lt;h2 id="parte-3-el-panorama-general">Parte 3 - El panorama general&lt;/h2>
&lt;h3 id="capitulo-10-las-personas-son-dificiles">Capítulo 10: Las personas son difíciles&lt;/h3>
&lt;ul>
&lt;li>No te centres en trabajar más duro o más rápido. Crea las condiciones para que tu equipo sea feliz y productivo: autonomía, maestría y propósito.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“En niveles senior, cuando las cosas van mal, te señalarán a ti. Eres el responsable aunque no sea tu culpa.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-11-los-proyectos-son-dificiles">Capítulo 11: Los proyectos son difíciles&lt;/h3>
&lt;ul>
&lt;li>“El ojo de Sauron”: trabajar en proyectos de alto riesgo.&lt;/li>
&lt;li>Todo se ralentiza cuando el equipo crece. Más código legacy, más problemas.&lt;/li>
&lt;li>Equilibrio entre alcance, recursos y tiempo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Lidera desde el frente. Da el ejemplo. Pon el trabajo. Los proyectos difíciles pueden definir tu carrera. Adueñátelos y estate ahí.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-12-la-bolsa-de-informacion">Capítulo 12: La bolsa de información&lt;/h3>
&lt;ul>
&lt;li>Espías y guardianes.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Como manager, deberás decidir constantemente cuánto compartes y cuándo.”&lt;/p>
&lt;/blockquote>
&lt;ul>
&lt;li>Política laboral.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Tu red de compañeros te permite saber cómo el resto del negocio percibe tus iniciativas y prioridades.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-13-soltar-el-control">Capítulo 13: Soltar el control&lt;/h3>
&lt;ul>
&lt;li>Elimina distracciones y recarga fuera del trabajo.&lt;/li>
&lt;li>Dedica el 10% de tu semana a no hacer nada y dejar que tus pensamientos fluyan.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Suelta los resultados que no puedes controlar. Haz lo mejor que puedas y fomenta lo mismo en tu equipo. Los resultados impredecibles son normales. El fracaso es aceptable. Si haces lo mejor que puedes, no tienes de qué preocuparte.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-14-buen-mantenimiento">Capítulo 14: Buen mantenimiento&lt;/h3>
&lt;ul>
&lt;li>Convierte problemas en oportunidades de aprendizaje.&lt;/li>
&lt;li>Mejora la comunicación del equipo.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-15-escaleras-duales">Capítulo 15: Escaleras duales&lt;/h3>
&lt;ul>
&lt;li>Diseñar trayectorias de Contribuidor Individual y Manager es vital para una cultura de ingeniería sana.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-16-el-lugar-de-trabajo-moderno">Capítulo 16: El lugar de trabajo moderno&lt;/h3>
&lt;ul>
&lt;li>Diversidad e inclusión.&lt;/li>
&lt;li>Trabajo remoto.&lt;/li>
&lt;li>Lidera con el ejemplo: equilibrio vida-trabajo.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-17-startups">Capítulo 17: Startups&lt;/h3>
&lt;ul>
&lt;li>Gestión no es burocracia.&lt;/li>
&lt;li>La buena gestión es toque ligero y colaboración continua.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“La experiencia en startups es muy valorada porque implica ser emprendedor, automotivado, colaborativo y rápido aprendiendo. Aunque la startup fracase, tu siguiente trabajo será mejor por ello.”&lt;/p>
&lt;/blockquote>
&lt;h3 id="capitulo-18-la-bola-de-cristal">Capítulo 18: La bola de cristal&lt;/h3>
&lt;ul>
&lt;li>Tu visión de carrera. Mirar atrás, mirar adelante.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>“Una parte importante de una vida larga y satisfactoria es el propósito. No se trata de estatus ni de sentirse bien. Se trata de una vida que valga la pena vivir.”&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Cf6tX1ZPwvE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Experimentos de Conformidad</title><subtitle>La incómoda verdad sobre la naturaleza humana</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2021-06-01T00:00:00+00:00</published><updated>2021-06-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/conformity-experiments/"/><id>https://chemaclass.com/es/blog/conformity-experiments/</id><summary type="html">¿Hasta qué punto las fuerzas sociales alteran las opiniones de las personas? ¿Qué aspecto de la influencia del grupo es más importante — el tamaño de la mayoría, o la unanimidad de opinión?</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-06-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>¿Hasta qué punto las fuerzas sociales alteran las opiniones de las personas? ¿Qué aspecto de la influencia del grupo es más importante — el tamaño de la mayoría, o la unanimidad de opinión?&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h1 id="el-psicologo-solomon-asch">El psicólogo Solomon Asch&lt;/h1>
&lt;p>Durante los primeros años de la Segunda Guerra Mundial, cuando Hitler estaba en la cúspide del poder, Solomon Asch empezó a estudiar el impacto de la propaganda y el adoctrinamiento. Era profesor en el departamento de psicología del Brooklyn College y luego estuvo 19 años en Swarthmore College.&lt;/p>
&lt;p>En los años 50, Asch se hizo famoso por sus experimentos sobre la presión social y la conformidad. ¿Hasta dónde llega la gente para encajar con otros en un grupo? Su investigación mostró que los participantes tendían a conformarse con el grupo, incluso cuando creían que estaba equivocado.&lt;/p>
&lt;h2 id="asch-pregunto">Asch preguntó&lt;/h2>
&lt;p>¿Hasta qué punto las fuerzas sociales alteran las opiniones de las personas?
¿Qué aspecto de la influencia del grupo es más importante — el tamaño de la mayoría, o la unanimidad de opinión?&lt;/p>
&lt;blockquote>
&lt;p>Asch creía que las personas se comportan según cómo perciben el mundo, no según cómo es realmente.&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-experimento-de-asch">El experimento de Asch&lt;/h2>
&lt;p>Asch diseñó un experimento basado en un “simple test de visión”.&lt;/p>
&lt;p>Metió a un participante en una sala con otros actores (cómplices). Los actores habían acordado dar respuestas incorrectas a propósito la mayoría de las veces.&lt;/p>
&lt;p>El participante real no lo sabía. Creía que todos eran participantes como él.&lt;/p>
&lt;p>Cada persona en la sala decía en voz alta qué línea (A, B o C) se parecía más a la línea objetivo. La respuesta siempre era obvia. El participante real se sentaba al final y respondía en último lugar.&lt;/p>
&lt;p>Asch quería ver si el participante se conformaría con la mayoría. Los actores daban la respuesta incorrecta la mayoría de las veces (las llamadas pruebas críticas).&lt;/p>
&lt;h2 id="hallazgos">Hallazgos&lt;/h2>
&lt;p>Casi el 75% de los participantes en los experimentos de conformidad siguieron al resto del grupo al menos una vez.&lt;/p>
&lt;p>Asch también descubrió algo clave: cuando uno de los actores daba la respuesta correcta mientras el resto se equivocaba, la conformidad bajaba drásticamente. El apoyo social es una herramienta poderosa para resistir la presión del grupo.&lt;/p>
&lt;blockquote>
&lt;p>Después de combinar las pruebas, los resultados indicaron que los participantes se conformaban con la respuesta incorrecta del grupo aproximadamente un tercio de las veces.&lt;/p>
&lt;/blockquote>
&lt;h2 id="conclusion">Conclusión&lt;/h2>
&lt;p>¿Por qué los participantes se conformaron tan fácilmente? En las entrevistas posteriores, la mayoría admitió que no creían en sus respuestas conformistas. Simplemente siguieron al grupo por miedo a quedar en ridículo.&lt;/p>
&lt;p>Unos pocos sí creían que las respuestas del grupo eran correctas.&lt;/p>
&lt;p>La gente se conforma por dos razones principales: quieren encajar (influencia normativa) o creen que el grupo sabe más que ellos (influencia informativa).&lt;/p>
&lt;blockquote>
&lt;p>La conformidad puede ser influenciada tanto por una necesidad de encajar como por una creencia de que otras personas son más inteligentes o están mejor informadas.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/TYIh4MkcfJA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="factores-que-influyen-en-la-conformidad">Factores que influyen en la conformidad&lt;/h2>
&lt;p>Asch siguió experimentando para entender qué factores influyen en la conformidad. Descubrió que:&lt;/p>
&lt;ul>
&lt;li>Aumenta cuando hay más personas presentes.&lt;/li>
&lt;li>Aumenta cuando la tarea es más difícil.&lt;/li>
&lt;li>Aumenta cuando los otros miembros tienen un estatus social más alto.&lt;/li>
&lt;li>Disminuye cuando la gente puede responder en privado (cuando nadie ve su respuesta).&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h3 id="recursos">Recursos&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Solomon_Asch">Solomon Asch | Wikipedia&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Peopleware</title><subtitle>Proyectos y equipos productivos</subtitle><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2021-05-28T00:00:00+00:00</published><updated>2021-05-28T00:00:00+00:00</updated><author><name>
Tom DeMarco</name></author><author><name>
Timothy Lister</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/peopleware/"/><id>https://chemaclass.com/es/readings/peopleware/</id><summary type="html">El desarrollo de software va de personas: cuándo, cómo y dónde trabajan mejor juntas. No de lenguajes ni herramientas.</summary><content type="html">&lt;p>El desarrollo de software va de personas: cuándo, cómo y dónde trabajan mejor juntas. No de lenguajes de programación ni herramientas. No de ordenadores rápidos, redes o internet.&lt;/p>
&lt;p>Las habilidades blandas importan más de lo que la gente cree en IT.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Desarrollar software va de personas que se comunican con clientes y stakeholders, reciben apoyo de sus managers y colaboran en equipos.&lt;/p>
&lt;h3 id="citas-favoritas">Citas favoritas&lt;/h3>
&lt;ul>
&lt;li>
&lt;p>Quedarse hasta tarde o llegar temprano es una acusación al entorno de oficina.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Alguien que ayuda a dar forma y avanzar un proyecto vale por dos que solo ejecutan.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Hay que preguntarse por qué las cosas se hacen como se hacen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Siempre debe haber equilibrio entre calidad y cantidad.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Las organizaciones tienden a crear “días ocupados” con muchas reuniones, en lugar de confiar en que sus empleados se autoorganicen.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>El factor humano suele ser el cuello de botella de un proyecto.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>La gente no trabaja más duro bajo presión. Puede que rindan más un tiempo, pero se quemarán y se irán.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>El rol del manager es facilitar que la gente trabaje, no forzarla.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Cualquier cosa que necesites medir puede medirse de alguna forma, y eso es mejor que no medirla.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>El pecado capital de la gestión es desperdiciar el tiempo de la gente.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>El cambio no arranca si la gente no se siente segura.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>El cambio solo funciona si un poco de fracaso está permitido.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>La experiencia se convierte en aprendizaje cuando la organización se adapta a lo que ha descubierto.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Los profesionales quieren crecer y ser felices en el trabajo. Este libro da ideas sobre lo que managers y desarrolladores pueden hacer al respecto. Si te importan las personas y buscas mejorar cómo desarrollas software en equipo, este libro es para ti.&lt;/p>
&lt;hr />
&lt;blockquote>
&lt;ol start="21">
&lt;li>El todo es mayor que la suma de las partes&lt;/li>
&lt;/ol>
&lt;p>Usamos la palabra “equipo” de forma muy imprecisa en el mundo empresarial. Llamamos equipo a cualquier grupo de personas que trabajan juntas. Pero muchos de estos grupos no parecen equipos. No tienen una definición común de éxito ni espíritu de equipo. Algo falta: un fenómeno que llamamos cohesión (jell).&lt;/p>
&lt;p>El equipo cohesionado&lt;/p>
&lt;p>Un equipo cohesionado es un grupo tan unido que el todo supera la suma de las partes. Su producción es mayor que si las mismas personas trabajaran por separado. Y el disfrute que obtienen de su trabajo supera lo que esperarías por la naturaleza del trabajo en sí.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>Una buena serie con reflexiones sobre cada capítulo del libro.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/dBQMorJBueE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Software de Código Abierto</title><subtitle>El poder de contribuir a OSS</subtitle><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="git" scheme="https://chemaclass.com/tags/git/" label="Git"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-05-03T00:00:00+00:00</published><updated>2021-05-03T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/open-source-software/"/><id>https://chemaclass.com/es/blog/open-source-software/</id><summary type="html">Guía práctica sobre software de código abierto: sus beneficios, cómo empezar a contribuir, y por qué compartir código acelera tu crecimiento profesional.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-05-03/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>¿Qué es el Software de Código Abierto (OSS)? ¿Cuáles son sus beneficios? ¿Cómo puedes empezar a contribuir a cualquier OSS? ¿Proyectos personales? ¿Compartir conocimiento? ¿Por qué todo esto?&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="que-es-oss">¿Qué es OSS?&lt;/h2>
&lt;p>OSS tiene similitudes con el software libre, pero no es lo mismo. El software libre es una forma de OSS, aunque eso no significa que tenga que ser gratis. Por ejemplo:&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/sebastianbergmann/phpunit/blob/master/LICENSE">PHPUnit&lt;/a> es un ejemplo de OSS que es gratuito.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/spryker/spryker-core/blob/master/LICENSE">Spryker&lt;/a> es un ejemplo de OSS que no es gratuito.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>OSS es básicamente software que es público, abierto al mundo.&lt;/p>
&lt;/blockquote>
&lt;h2 id="beneficios">Beneficios&lt;/h2>
&lt;h3 id="para-empresas">Para Empresas&lt;/h3>
&lt;ul>
&lt;li>Adopción: cuanto más fácil el acceso, más fácil la adopción.&lt;/li>
&lt;li>La formación y los tutoriales ayudan al crecimiento del sistema.&lt;/li>
&lt;li>Tecnología: suelen estar en la vanguardia. La tecnología avanza rápido y quedarse atrás significa volverse obsoleto.&lt;/li>
&lt;li>Comunidad: la gente quiere mejorar a medida que el proyecto crece. Los canales públicos facilitan el acceso y construyen comunidad.&lt;/li>
&lt;li>Confianza: el software es público y accesible. Cualquiera puede verificar su calidad en cualquier momento.&lt;/li>
&lt;/ul>
&lt;h3 id="para-contribuidores-individuales">Para Contribuidores Individuales&lt;/h3>
&lt;ul>
&lt;li>Flexibilidad: decides en qué trabajar.&lt;/li>
&lt;li>Autoconfianza: la experiencia mejora tus habilidades.&lt;/li>
&lt;li>Formación: sin la presión de un entorno de producción.&lt;/li>
&lt;li>Tecnología: puedes jugar con las últimas novedades. Prueba nuevas versiones de tu lenguaje o incluso lenguajes nuevos.&lt;/li>
&lt;li>Habilidades blandas: mejoras tu comunicación. Esto importa mucho, especialmente cuando hay desacuerdos.&lt;/li>
&lt;/ul>
&lt;h2 id="contribuyendo-a-oss">Contribuyendo a OSS&lt;/h2>
&lt;h3 id="empezando-con-github">Empezando con GitHub&lt;/h3>
&lt;p>Hoy en día, es realmente trivial empezar a contribuir a OSS:&lt;/p>
&lt;ul>
&lt;li>Puedes empezar tu propio proyecto. ¡Un proyecto personal encaja aquí perfectamente!&lt;/li>
&lt;li>Puedes contribuir a un proyecto OSS existente.&lt;/li>
&lt;/ul>
&lt;h3 id="proyectos-personales">Proyectos Personales&lt;/h3>
&lt;p>Un proyecto personal es un terreno de juego para crear software y entrenar tus habilidades. Tener proyectos personales en tu perfil público de GitHub tiene todos los beneficios de contribuir a OSS, y además eres tu propio jefe:&lt;/p>
&lt;ul>
&lt;li>Tú dictas la hoja de ruta.&lt;/li>
&lt;li>Tú decides qué hacer y cómo.&lt;/li>
&lt;li>Eres tu propio jefe.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>El proyecto está ahí para ti. &lt;br>
Tú eres responsable de jugar, explorar y superar tus límites.&lt;/p>
&lt;/blockquote>
&lt;h3 id="mis-proyectos-personales">Mis Proyectos Personales&lt;/h3>
&lt;p>&lt;strong>Activos:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-best-practices">php-best-practices&lt;/a>: lo que considero mejores prácticas para desarrollo web.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/php-scaffolding">php-scaffolding&lt;/a>: un scaffolding básico de PHP con Docker.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Inactivos:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/stock-ticker">stock-ticker&lt;/a>: recibe una notificación con las noticias de tus Tickers favoritos.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/JiraStatusNotifier">jira-status-notifier&lt;/a>: notifica cuando los tickets de JIRA no avanzan.&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/EdifactParser">edifact-parser&lt;/a>: un parser para formato de archivo UN/EDIFACT en PHP.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandonados:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/Chemaclass/knob-mvc">knob-mvc&lt;/a>: un framework para crear plantillas WordPress (2015/2017).&lt;/li>
&lt;/ul>
&lt;h3 id="mis-contribuciones-a-organizaciones-oss">Mis Contribuciones a Organizaciones OSS&lt;/h3>
&lt;p>&lt;strong>Activas:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/phel-lang/phel-lang">phel-lang&lt;/a>: Phel es un lenguaje de programación funcional que compila a PHP.
Es un dialecto de Lisp inspirado en Clojure y Janet. Ya escribí un post sobre
esto: &lt;a href="/es/blog/phel-first-release/">Phel: Un Lisp que compila a PHP&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://github.com/gacela-project/gacela">gacela-project&lt;/a>: Gacela es un framework PHP que te ayuda a mejorar el
diseño de tu aplicación dividiendo la lógica en diferentes módulos.&lt;/li>
&lt;/ul>
&lt;p>&lt;strong>Abandonadas:&lt;/strong>&lt;/p>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://github.com/NuevaMetal/nm_template">nm_template&lt;/a>: La plantilla base para NuevaMetal (2013–2016).&lt;/li>
&lt;/ul>
&lt;h2 id="compartir-conocimiento-e-impacto">Compartir Conocimiento e Impacto&lt;/h2>
&lt;h3 id="posts-del-blog">Posts del Blog&lt;/h3>
&lt;ul>
&lt;li>Pull Requests vs Pair Programming&lt;/li>
&lt;li>El proceso en sí es la meta&lt;/li>
&lt;li>El arte del refactoring; Cuándo, Cómo y Por qué&lt;/li>
&lt;li>El arte del testing: Donde el diseño se encuentra con la calidad&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>… y muchos más en &lt;a rel="external" href="https://chemaclass.com/es/blog/">https://chemaclass.com/es/blog/&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;h3 id="la-belleza-del-oss">La Belleza del OSS&lt;/h3>
&lt;ul>
&lt;li>Ver las correcciones que constantemente sigues haciendo&lt;/li>
&lt;li>Ver cómo tu propio código envejece con el tiempo&lt;/li>
&lt;li>Ver los muchos errores que has cometido&lt;/li>
&lt;li>Ver cómo estás mejorando en programación con el tiempo&lt;/li>
&lt;/ul>
&lt;p>Vas desarrollando un sexto sentido para detectar patrones que ya has visto, con sus experiencias buenas y malas.&lt;/p>
&lt;p>&lt;strong>Mostrando tus habilidades y ayudando a la comunidad a tu alrededor.&lt;/strong>&lt;/p>
&lt;blockquote>
&lt;p>El Software de Código Abierto te ofrece una de las mejores oportunidades para empezar a construir tu camino profesional hacia la mejora continua.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;p>Esta es una charla (en español) que hice de forma remota en abril de 2021,
para la &lt;a rel="external" href="https://www.meetup.com/phpmad/events/277733306/">Comunidad PHPMad Madrid&lt;/a>. Básicamente presento todas estas ideas
junto con una demo en vivo de cómo contribuir a un OSS real.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/GE5wR_SC_P4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr /></content></entry><entry xml:lang="es"><title>El arte del liderazgo</title><subtitle>Pequeñas cosas, bien hechas</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2021-04-19T00:00:00+00:00</published><updated>2021-04-19T00:00:00+00:00</updated><author><name>
Michael Loop</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-art-of-leadership/"/><id>https://chemaclass.com/es/readings/the-art-of-leadership/</id><summary type="html">Liderar son pequeñas cosas hechas de forma consistente. Los managers te dicen dónde estás; los líderes, hacia dónde vas.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="notas-destacadas">Notas destacadas&lt;/h3>
&lt;ul>
&lt;li>Liderar son pequeñas cosas hechas de forma consistente.&lt;/li>
&lt;li>La empatía es una habilidad poderosa.&lt;/li>
&lt;li>Los uno a uno son clave para conectar con el equipo.&lt;/li>
&lt;li>Pedir feedback genera confianza y fortalece relaciones.&lt;/li>
&lt;li>Ante el feedback, da las gracias y haz preguntas para entender mejor.&lt;/li>
&lt;li>El feedback es un regalo.&lt;/li>
&lt;li>No es personal, es profesional.&lt;/li>
&lt;li>El liderazgo es un traje que eliges ponerte para que otros lo vean.&lt;/li>
&lt;li>Los managers te dicen dónde estás; los líderes, hacia dónde vas.&lt;/li>
&lt;li>Tus compañeros se convierten en tus aliados.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Mf15xcXBedU"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>97 cosas que todo Engineering Manager debería saber</title><subtitle>Sabiduría colectiva de los expertos</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><published>2021-04-05T00:00:00+00:00</published><updated>2021-04-05T00:00:00+00:00</updated><author><name>
Camille Fournier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/97-things-every-em-should-know/"/><id>https://chemaclass.com/es/readings/97-things-every-em-should-know/</id><summary type="html">Tu trabajo como manager es crear claridad. Claridad y más claridad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="la-leccion-principal">La lección principal&lt;/h3>
&lt;blockquote>
&lt;p>Tu trabajo como manager es crear claridad. Claridad y más claridad.&lt;/p>
&lt;/blockquote>
&lt;h3 id="ideas-clave">Ideas clave&lt;/h3>
&lt;ul>
&lt;li>Trabaja en corregir tus propias manías.&lt;/li>
&lt;li>Haz experimentos en lugar de tomar decisiones definitivas.&lt;/li>
&lt;li>“Test de malas noticias”: si tienes dos tareas, delega aquella sobre la que preferirías dar malas noticias.&lt;/li>
&lt;li>Cuando un equipo tiene problemas, responde primero dos preguntas:
&lt;ul>
&lt;li>¿Cómo creo claridad?&lt;/li>
&lt;li>¿Cómo creo capacidad?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Pide que te aclaren las cosas.&lt;/li>
&lt;li>Para dar feedback constructivo, observa dónde la persona se bloquea, se desvía o se descuida.&lt;/li>
&lt;li>Gestionar no es un ascenso. Es un cambio de carrera.&lt;/li>
&lt;li>La mayoría de las disfunciones vienen de objetivos poco claros.&lt;/li>
&lt;li>Con fecha límite fija, el alcance y la calidad siempre son negociables.&lt;/li>
&lt;li>El contagio emocional existe.&lt;/li>
&lt;li>Si eres nuevo como manager, escucha y entiende antes de cambiar nada.&lt;/li>
&lt;li>Buenas preguntas de entrevista:
&lt;ul>
&lt;li>¿Qué has aprendido en los últimos seis meses?&lt;/li>
&lt;li>Cuéntame de una vez que fallaste y qué aprendiste.&lt;/li>
&lt;li>¿Tienes las habilidades y experiencia para este trabajo?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Las quejas son buenas: significan que confían en ti.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Otro artículo con ideas clave más detalladas:
&lt;a rel="external" href="https://danlebrero.com/2021/03/24/97-things-every-engineering-manager-should-know-summary/">Danlebrero Blog&lt;/a> ;)&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/oxgfehnJ7GE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Pull Requests vs Pair Programming</title><subtitle>¿Por qué elegir cuando puedes tener ambos?</subtitle><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><category term="code-review" scheme="https://chemaclass.com/tags/code-review/" label="Code Review"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2021-04-01T00:00:00+00:00</published><updated>2021-04-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/pull-request-vs-pair-prog/"/><id>https://chemaclass.com/es/blog/pull-request-vs-pair-prog/</id><summary type="html">Hablemos de los beneficios de los Pull Requests y el Pair Programming, y mis reflexiones sobre estos después de algunos años de experiencia con ellos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-04-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Hablemos de los beneficios de los Pull Requests y el Pair Programming, y mis reflexiones sobre estos después de algunos años de experiencia con ellos.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="pull-requests">Pull Requests&lt;/h2>
&lt;p>Un Pull Request (PR) es una forma de mostrar tus cambios de código para que se comparen fácilmente con el código existente. Es parte de un flujo de trabajo que ayuda a compartir conocimiento sobre los cambios que se hacen en el sistema.&lt;/p>
&lt;blockquote>
&lt;p>Un Pull Request es el momento donde pides a tus compañeros que revisen y examinen tus cambios de código.&lt;/p>
&lt;/blockquote>
&lt;p>Normalmente, también se usa:&lt;/p>
&lt;ol>
&lt;li>Para discusiones sobre estilo de código.&lt;/li>
&lt;li>Para detectar bugs potenciales.&lt;/li>
&lt;li>Para discusiones de arquitectura o diseño una vez que la solución está hecha.&lt;/li>
&lt;/ol>
&lt;h3 id="los-pull-requests-no-son-la-mejor-herramienta-para-todo">Los Pull Requests no son la mejor herramienta para todo&lt;/h3>
&lt;p>El problema es que los PRs suelen estar listos cuando la funcionalidad o bug ya está terminado, en la última etapa del desarrollo.
Un PR es una “propuesta de cambio ya hecha para fusionar en el sistema actual”.&lt;/p>
&lt;p>El concepto de “Draft PR” existe para indicar que el PR aún no está listo para fusionar, pero ese es otro tema.&lt;/p>
&lt;p>Los Pull Requests son una de las mejores herramientas para compartir conocimiento sobre cambios en el sistema, pero a veces se usan mal:&lt;/p>
&lt;ol>
&lt;li>&lt;strong>Discusiones sobre estilo de código&lt;/strong>. El estilo no debería discutirse en un PR. Ya debería haber un CI ejecutando un linter. Si quieres cambiar algo, proponlo en el linter, no en un PR aleatorio.&lt;/li>
&lt;li>&lt;strong>Detectar bugs&lt;/strong>. Los bugs y comportamiento esperado deberían cubrirse con tests automatizados. El desarrollador es el primer responsable.&lt;/li>
&lt;li>&lt;strong>Discusiones de arquitectura o diseño&lt;/strong>. Cuando una solución está desarrollada y lista para revisión, es difícil “deshacerla” y reescribirla. “¿Por qué lo harías? Ya está hecho y funciona.”&lt;/li>
&lt;/ol>
&lt;p>Tener a alguien extra revisando decisiones de diseño puede ayudar, pero podríamos haber resuelto posibles desacuerdos antes.&lt;/p>
&lt;h3 id="cual-deberia-ser-el-proposito-de-un-pull-request">¿Cuál debería ser el propósito de un Pull Request?&lt;/h3>
&lt;ol>
&lt;li>Compartir conocimiento sobre los cambios propuestos con el equipo.&lt;/li>
&lt;li>Asegurar que el equipo está alineado con los múltiples cambios que se envían cada día. Sí, puede incluir verificar el diseño, pero… ¿y si ya es demasiado tarde?&lt;/li>
&lt;/ol>
&lt;h2 id="pair-programming">Pair Programming&lt;/h2>
&lt;p>El “Pair Programming” puede entenderse de varias formas: pair thinking, roles conductor-navegador, live coding… En realidad es más sencillo de lo que parece:&lt;/p>
&lt;ul>
&lt;li>Miras y ayudas a la otra persona a escribir código, o&lt;/li>
&lt;li>Escribes mientras tienes otro par de ojos mirándote y ayudándote.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>El Pair Programming ayuda al equipo a trabajar juntos.&lt;/p>
&lt;/blockquote>
&lt;p>El pair programming es trabajar con un cerebro extra y otro par de ojos. La clave es &lt;strong>construir un contexto&lt;/strong> donde ambos &lt;strong>compartan el mismo objetivo&lt;/strong> para encontrar la &lt;strong>mejor solución posible&lt;/strong>, aprendiendo el uno del otro.
No se trata de dar con la mejor solución desde el principio. Se trata de hacerlo funcionar, compartir ideas y mejorar juntos. Luego ya refactorizas y limpias el código.&lt;/p>
&lt;h3 id="el-pair-programming-es-una-revision-de-codigo-continua">El Pair Programming es una revisión de código continua&lt;/h3>
&lt;p>Los Pull Requests son una forma asíncrona de compartir cambios de código, mientras que el Pair Programming es totalmente &lt;strong>síncrono&lt;/strong> porque sucede al mismo tiempo.&lt;/p>
&lt;p>Los Pull Requests y el Pair Programming no son excluyentes, pueden coexistir. Son herramientas, y hay que elegirlas con criterio según nuestros objetivos.&lt;/p>
&lt;p>El miedo más común que he visto al animar a hacer Pair Programming es la timidez. A algunas personas no les gusta tener ojos encima mientras programan:&lt;/p>
&lt;ul>
&lt;li>Miedo a no saber qué programar o por dónde empezar.&lt;/li>
&lt;li>Miedo a que otros se rían de sus soluciones.&lt;/li>
&lt;li>Miedo a no tener éxito en público.&lt;/li>
&lt;li>Miedo a no poder desarrollar la solución esperada por múltiples razones: malentender la tarea o falta de conocimiento.&lt;/li>
&lt;li>Miedo a cambiar de opinión frente a otros.&lt;/li>
&lt;li>Miedo a discutir y tomar decisiones en voz alta.&lt;/li>
&lt;li>Miedo a estar en desacuerdo con otros.&lt;/li>
&lt;/ul>
&lt;h2 id="despues-de-varios-anos-de-experiencia-en-este-tema">Después de varios años de experiencia en este tema&lt;/h2>
&lt;p>El patrón que rechaza el Pair Programming es básicamente el miedo a salir de tu zona de confort. Y viene de no entender qué es realmente el Pair Programming.&lt;/p>
&lt;p>No se trata de presumir ni de ser juzgado, sino de ser transparente (mostrar tus habilidades tal como son) y mejorar como equipo.&lt;/p>
&lt;p>Programar es un proceso iterativo que requiere refactorizar continuamente nuestra forma de pensar. Programar con otra persona (con otra forma de pensar) ayuda al equipo a sacar lo mejor de cada uno y a descartar malos hábitos.&lt;/p>
&lt;p>El Pair Programming no tiene que usarse siempre ni para todo. Es una herramienta flexible: puedes elegir cómo, cuándo y por qué.&lt;/p>
&lt;p>Una regla personal: antes de empezar tareas que tocan múltiples módulos o reglas de negocio complejas, haz un Pair Thinking rápido con un colega más experimentado en ese área.&lt;/p>
&lt;blockquote>
&lt;p>Todo depende de un contexto y personas particulares: los desarrolladores, las parejas, las tareas, el estado de ánimo.&lt;/p>
&lt;/blockquote>
&lt;h3 id="todavia-incomodo-con-el-pair-programming">¿Todavía incómodo con el Pair Programming?&lt;/h3>
&lt;p>Si aún te sientes incómodo con alguien a tu lado mientras programas, quizás no estés contento con tu propio código o con el proceso que sigues. Mi forma favorita de trabajar esto es practicar por mi cuenta y mejorar mis habilidades como desarrollador.&lt;/p>
&lt;ul>
&lt;li>Crea y juega con tus propios proyectos personales.&lt;/li>
&lt;li>Trabaja en katas de código por tu cuenta y con otros.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La práctica hace al maestro.&lt;/p>
&lt;/blockquote>
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;ul>
&lt;li>No me malinterpretes, los Pull Requests son geniales. Sigue haciéndolos.&lt;/li>
&lt;li>La colaboración en equipo es esencial. El Pair Programming apunta a esto.&lt;/li>
&lt;li>El Pair Programming anima al equipo a trabajar juntos proactivamente.&lt;/li>
&lt;li>No tengas miedo de programar mientras tienes ojos a tu alrededor. Haz preguntas cuando algo no esté claro. Pide ayuda cuando no sepas cómo resolver algo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Está totalmente bien no saber todo. Lo más importante es saber cómo trabajar juntos.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2021-04-01/footer.jpg" alt="dos desarrolladores haciendo pair programming" />&lt;/p></content></entry><entry xml:lang="es"><title>Abraza el Cambio</title><subtitle>¿Quién se ha llevado mi queso?</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2021-03-01T00:00:00+00:00</published><updated>2021-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/embrace-the-change/"/><id>https://chemaclass.com/es/blog/embrace-the-change/</id><summary type="html">El cuento es una metáfora de las diferentes actitudes que adoptamos cuando tenemos que enfrentar cambios en la vida.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-03-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>El libro &lt;em>¿Quién se ha llevado mi queso?&lt;/em> presenta un cuento dentro de la historia principal que consiste en 4 personajes: dos ratones, &lt;strong>Sniff&lt;/strong> y &lt;strong>Scurry&lt;/strong>, y dos pequeñas personas, &lt;strong>Hem&lt;/strong> y &lt;strong>Haw&lt;/strong>.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Se publicó en 1998 y lo leí a principios de 2021. Mejor tarde que nunca. Mi hermano Jesús me lo recomendó.&lt;/p>
&lt;blockquote>
&lt;p>Viven en un Laberinto (que representa nuestro entorno) y para sobrevivir necesitan salir de su zona de confort y buscar queso (que representa la felicidad y el éxito).&lt;/p>
&lt;p>El cuento empieza cuando ambos grupos llegan a la “Estación de Queso C”, llena de queso. Los humanos establecen rutinas; los ratones mantienen sus instintos activos.&lt;/p>
&lt;p>Un día los ratones llegan y no queda queso. Salen a buscar más en otro lugar. Hem y Haw, en cambio, se quejan. Hem, enfadado, exige “¿Quién se ha llevado mi queso?!”. Ambos contaban con que el queso sería eterno, así que no estaban preparados. La diferencia clave es cómo reaccionan.&lt;/p>
&lt;p>Hem se niega a marcharse de la “Estación de Queso C”. Sigue yendo cada día esperando encontrar queso, cada vez más débil y con miedo de hacer algo diferente. Haw, en cambio, decide reírse de la situación, vence su miedo y sale a buscar más queso.&lt;/p>
&lt;p>… Te dejo el resto del cuento para ti.&lt;/p>
&lt;/blockquote>
&lt;p>El cuento es una metáfora de las diferentes actitudes que adoptamos cuando tenemos que enfrentar cambios.&lt;/p>
&lt;blockquote>
&lt;p>Notar pequeños cambios temprano te ayuda a adaptarte a los cambios más grandes que están por venir.&lt;/p>
&lt;/blockquote>
&lt;p>El libro está lleno de lecciones aplicables a cualquiera, sin importar quién seas o cuándo lo leas. Lo recomiendo.&lt;/p>
&lt;h3 id="mis-lecciones-favoritas-del-libro">Mis lecciones favoritas del libro&lt;/h3>
&lt;ol>
&lt;li>El cambio sucede.
Siguen moviendo el queso.&lt;/li>
&lt;li>Anticipa el cambio.
Prepárate para que muevan el queso.&lt;/li>
&lt;li>Monitorea el cambio.
Huele el queso a menudo para saber cuándo se está poniendo viejo.&lt;/li>
&lt;li>Adáptate al cambio rápidamente.
Cuanto más rápido sueltes el queso viejo, antes podrás disfrutar del nuevo queso.&lt;/li>
&lt;li>Cambia.
Muévete con el queso.&lt;/li>
&lt;li>Disfruta el cambio.
Disfruta el sabor del nuevo queso.&lt;/li>
&lt;li>Prepárate para cambiar rápidamente y disfrutarlo de nuevo.
Siguen moviendo el queso.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>“Todos saben que no todo cambio es bueno o necesario. Pero en un mundo en constante cambio, nos conviene aprender a adaptarnos y disfrutar de algo mejor. No es lo que dice la historia de ‘¿Quién se ha llevado mi queso?’, sino cómo la interpretas y aplicas a tu situación lo que le da valor.” - Ken Blanchard.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OvYCLxqkfvY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;blockquote>
&lt;p>“La vida sigue adelante y nosotros también deberíamos” — Spencer Johnson&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Guía de supervivencia Zombie Scrum</title><subtitle>Un viaje hacia la recuperación</subtitle><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-03-01T00:00:00+00:00</published><updated>2021-03-01T00:00:00+00:00</updated><author><name>
Christiaan Verwijs</name></author><author><name>
Johannes Schartau</name></author><author><name>
Barry Overeem</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/zombie-scrum-survival-guide/"/><id>https://chemaclass.com/es/readings/zombie-scrum-survival-guide/</id><summary type="html">Por qué Scrum se estanca y cómo mejorar tus resultados divirtiéndote en el proceso.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Disfruté mucho las ideas y experimentos del libro. Pone el dedo en la llaga sobre muchos equipos que dicen hacer Scrum o Agile de forma cuestionable. A eso lo llaman Zombie Scrum.&lt;/p>
&lt;h3 id="resumen">Resumen&lt;/h3>
&lt;p>El libro explica por qué Scrum se estanca y cómo mejorar tus resultados divirtiéndote en el proceso. Con humor y ejemplos muy reconocibles, ofrece enfoques prácticos, ejercicios y herramientas para escapar del Zombie Scrum.&lt;/p>
&lt;p>Aunque estés rodeado de escépticos, este libro te ayudará a construir lo que los usuarios realmente necesitan, entregar más rápido, mejorar continuamente y sentirte mejor con tu trabajo. Un día recordarás: para esto adoptamos Scrum.&lt;/p>
&lt;ul>
&lt;li>Cómo te infecta el Zombie Scrum, por qué se propaga y cómo prevenirlo&lt;/li>
&lt;li>Acércate a tus stakeholders y hazles entender el valor&lt;/li>
&lt;li>Por qué los equipos Zombie no aprenden y qué hacer al respecto&lt;/li>
&lt;li>Elimina los obstáculos para la mejora continua&lt;/li>
&lt;li>Logra equipos autogestionados donde la gente actúe como humanos, no como zombies&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Un buen webinar donde comparten ideas clave del libro y discuten sus hallazgos más recientes.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/ylGfrsXXQMs"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Gestión ágil de productos con Scrum</title><subtitle>Creando productos que los clientes aman</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="management" scheme="https://chemaclass.com/tags/management/" label="Management"/><published>2021-02-22T00:00:00+00:00</published><updated>2021-02-22T00:00:00+00:00</updated><author><name>
Roman Pichler</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/agile-product-management-with-scrum/"/><id>https://chemaclass.com/es/readings/agile-product-management-with-scrum/</id><summary type="html">Cómo entender el rol del product owner y dar forma al producto.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="temas-principales">Temas principales&lt;/h3>
&lt;ul>
&lt;li>El rol del product owner&lt;/li>
&lt;li>Cómo visualizar el producto&lt;/li>
&lt;li>Refinamiento del product backlog&lt;/li>
&lt;li>Planificación de releases&lt;/li>
&lt;li>Colaboración en las reuniones de sprint&lt;/li>
&lt;li>La transición hacia el product ownership&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Phel: el Lisp que Compila a PHP</title><subtitle>Un nuevo lenguaje funcional con interoperabilidad total con PHP</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="open-source" scheme="https://chemaclass.com/tags/open-source/" label="Open Source"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2021-02-01T00:00:00+00:00</published><updated>2021-02-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/phel-first-release/"/><id>https://chemaclass.com/es/blog/phel-first-release/</id><summary type="html">El nuevo lenguaje de Programación Funcional construido para PHP.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-02-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Un nuevo lenguaje de Programación Funcional construido sobre el ecosistema de PHP.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h1 id="el-lenguaje-phel">El Lenguaje Phel&lt;/h1>
&lt;p>Phel es un lenguaje de Programación Funcional (&lt;a rel="external" href="https://en.wikipedia.org/wiki/Functional_programming">FP&lt;/a>) que compila a PHP. Es un dialecto de &lt;a rel="external" href="https://en.wikipedia.org/wiki/Lisp_(programming_language)">Lisp&lt;/a> inspirado en Clojure y Janet.&lt;/p>
&lt;h2 id="caracteristicas">Características&lt;/h2>
&lt;ul>
&lt;li>Construido sobre el ecosistema de PHP&lt;/li>
&lt;li>Buenos reportes de errores&lt;/li>
&lt;li>Diferentes estructuras de datos (Arrays, Tables y Tuples)&lt;/li>
&lt;li>Macros&lt;/li>
&lt;li>Funciones recursivas&lt;/li>
&lt;li>Sintaxis potente pero simple&lt;/li>
&lt;li>REPL&lt;/li>
&lt;/ul>
&lt;h2 id="por-que-phel">¿Por qué Phel?&lt;/h2>
&lt;p>Phel lo creó Jens Haase. Como menciona en el sitio web, “es el resultado de muchos &lt;a rel="external" href="https://phel-lang.org/blog/functional-programming-in-php">intentos fallidos de hacer programación funcional en PHP&lt;/a>”. Buscaba algo con estas características:&lt;/p>
&lt;ul>
&lt;li>Inspirado en LISP&lt;/li>
&lt;li>Lenguaje de Programación Funcional&lt;/li>
&lt;li>Que funcione en proveedores de hosting baratos&lt;/li>
&lt;li>Sea fácil de escribir y depurar&lt;/li>
&lt;/ul>
&lt;p>A finales de mayo de 2020 terminé el libro &lt;a href="/es/readings/7-languages-in-7-weeks/">Seven Languages in Seven Weeks&lt;/a>, donde aprendí los fundamentos de Prolog, Erlang, Clojure, Haskell… Incluso creé un &lt;a rel="external" href="https://github.com/Chemaclass/7LangIn7Weeks">repositorio en GitHub&lt;/a> para guardar mi progreso.&lt;/p>
&lt;p>A principios de junio de 2020, vi un post en el canal de PHP de Reddit mencionando este proyecto “&lt;strong>Phel&lt;/strong>”: un &lt;strong>lenguaje de programación funcional escrito en PHP&lt;/strong>.&lt;/p>
&lt;p>Llevo unos 8 años trabajando con PHP, y siempre intento combinar OOP con FP (creo que ambos paradigmas funcionan mejor juntos; no son excluyentes). Un nuevo dialecto de Lisp escrito en &lt;strong>PHP 7.4&lt;/strong> nativo sonaba emocionante. Decidí echarle un vistazo al código.&lt;/p>
&lt;p>Las lecturas recientes de &lt;a rel="external" href="https://x.com/matthiasnoback">Mathias NoBack&lt;/a>, como &lt;a href="/es/readings/object-design-style-guide">Object Design Style Guide&lt;/a> y &lt;a href="/es/readings/advance-web-application-architecture/">Advanced Web Application Architecture&lt;/a>, me dieron el empuje para aplicar lo aprendido en un proyecto real. Este fue (y sigue siendo) un desafío que me ayuda a crecer profesionalmente.&lt;/p>
&lt;p>Mi primer commit fue el 6 de junio de 2020. Desde entonces dedico un poco de tiempo cada día en mis horas libres.
Me ayuda a aprender sobre FP, diseño interno de lenguajes, testing y arquitectura de software en general.&lt;/p>
&lt;p>Empecé con cambios menores hasta que acabé refactorizando toda la estructura del compilador para hacer los módulos más legibles. Psalm, tipos estrictos, buena cobertura de tests, estilo de código unificado… Estos fueron algunos de mis temas favoritos.&lt;/p>
&lt;h2 id="ejemplo-de-codigo-phel">Ejemplo de código Phel&lt;/h2>
&lt;p>El siguiente ejemplo da una breve impresión de cómo se ve Phel:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span># Define un namespace&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>(ns my\example)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span># Define una variable con nombre &amp;quot;my-name&amp;quot; y valor &amp;quot;world&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>(def my-name &amp;quot;world&amp;quot;)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span># Define una función con nombre &amp;quot;print-name&amp;quot; y un argumento&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>(defn print-name [your-name]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> (print &amp;quot;hello&amp;quot; your-name))&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span># Llama a la función&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>(print-name my-name)&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h2 id="estado-actual-de-phel">Estado actual de Phel&lt;/h2>
&lt;ul>
&lt;li>Preparamos una fácil &lt;a rel="external" href="https://phel-lang.org/documentation/getting-started/">Guía de Inicio&lt;/a>&lt;/li>
&lt;li>Preparamos un Repositorio GitHub fácil con una &lt;a rel="external" href="https://github.com/phel-lang/phel-scaffolding">Plantilla de Scaffolding de Phel&lt;/a>&lt;/li>
&lt;li>Acabamos de lanzar la primera versión oficial: &lt;a rel="external" href="https://github.com/phel-lang/phel-lang/tags">0.1.0&lt;/a>&lt;/li>
&lt;/ul>
&lt;p>Consulta el sitio web oficial con toda la documentación: &lt;a rel="external" href="https://phel-lang.org/">https://phel-lang.org/&lt;/a>&lt;/p>
&lt;hr />
&lt;h3 id="tambien-recomendado">También recomendado&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://jesusvalera.dev/functional-programming-with-phel/">Functional Programming with Phel - JesusValera&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Invertir en bolsa para principiantes</title><subtitle>25 lecciones doradas de inversión en acciones</subtitle><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><published>2021-01-31T00:00:00+00:00</published><updated>2021-01-31T00:00:00+00:00</updated><author><name>
Mark Atwood</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/stock-market-for-beginners/"/><id>https://chemaclass.com/es/readings/stock-market-for-beginners/</id><summary type="html">Los conceptos básicos del mercado de valores explicados de forma clara.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;ul>
&lt;li>Conceptos básicos del mercado de valores&lt;/li>
&lt;li>Análisis fundamental, de industria y de empresas&lt;/li>
&lt;li>Estilos de inversión: valor, crecimiento e ingresos&lt;/li>
&lt;li>Venta en corto, compra con margen, day trading&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Un paso por delante de Wall Street</title><subtitle>Cómo usar lo que ya sabes para ganar dinero en el mercado</subtitle><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><published>2021-01-22T00:00:00+00:00</published><updated>2021-01-22T00:00:00+00:00</updated><author><name>
Peter Lynch</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/one-up-on-wall-street/"/><id>https://chemaclass.com/es/readings/one-up-on-wall-street/</id><summary type="html">Peter Lynch explica cómo el inversor común puede ganarle a los profesionales usando lo que ya sabe. Las oportunidades de inversión están en todas partes.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Peter Lynch, uno de los gestores de fondos más exitosos de Estados Unidos, explica cómo el inversor común puede ganarle a los profesionales usando lo que ya sabe. Las oportunidades de inversión están en todas partes.&lt;/p></content></entry><entry xml:lang="es"><title>¿Quién se ha llevado mi queso?</title><subtitle>Una forma sorprendente de afrontar el cambio en el trabajo y en la vida</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2021-01-16T00:00:00+00:00</published><updated>2021-01-16T00:00:00+00:00</updated><author><name>
Spencer Johnson</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/who-moved-my-cheese/"/><id>https://chemaclass.com/es/readings/who-moved-my-cheese/</id><summary type="html">Una fábula con cuatro personajes: dos ratones y dos personitas. Una metáfora brillante sobre cómo afrontamos el cambio.</summary><content type="html">&lt;p>El libro cuenta una fábula con cuatro personajes: dos ratones, &lt;strong>Fisgón&lt;/strong> y &lt;strong>Escurridizo&lt;/strong>, y dos personitas, &lt;strong>Hem&lt;/strong> y &lt;strong>Haw&lt;/strong>.&lt;/p>
&lt;p>Es una metáfora brillante sobre las diferentes actitudes que adoptamos cuando nos toca enfrentar un cambio.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="mis-lecciones-favoritas-del-libro">Mis lecciones favoritas del libro&lt;/h3>
&lt;ol>
&lt;li>El cambio ocurre.
Siguen moviendo el queso.&lt;/li>
&lt;li>Anticipa el cambio.
Prepárate para que el queso se mueva.&lt;/li>
&lt;li>Monitorea el cambio.
Huele el queso a menudo para saber cuándo se está poniendo viejo.&lt;/li>
&lt;li>Adáptate al cambio rápidamente.
Cuanto más rápido sueltes el queso viejo, antes podrás disfrutar del queso nuevo.&lt;/li>
&lt;li>Cambia.
Muévete con el queso.&lt;/li>
&lt;li>Disfruta el cambio.
Disfruta el sabor del queso nuevo&lt;/li>
&lt;li>Prepárate para cambiar rápidamente y disfrutarlo de nuevo.
Siguen moviendo el queso.&lt;/li>
&lt;/ol>
&lt;blockquote>
&lt;p>“Todo el mundo sabe que no todo cambio es bueno o incluso necesario. Pero en un mundo que está cambiando constantemente, es ventajoso para nosotros aprender a adaptarnos y disfrutar de algo mejor. No es lo que hay en la historia de ‘¿Quién se ha llevado mi queso?’ sino cómo lo interpretas y lo aplicas a tu propia situación lo que le da valor.” - Ken Blanchard.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/OvYCLxqkfvY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>Escribí un artículo sobre este libro: &lt;a href="/es/blog/embrace-the-change/">Abraza el cambio&lt;/a>&lt;/p></content></entry><entry xml:lang="es"><title>Padre rico, padre pobre</title><subtitle>Lo que los ricos enseñan a sus hijos sobre el dinero (y los pobres y la clase media no)</subtitle><category term="economics" scheme="https://chemaclass.com/tags/economics/" label="Economics"/><published>2021-01-15T00:00:00+00:00</published><updated>2021-01-15T00:00:00+00:00</updated><author><name>
Robert T. Kiyosaki</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/rich-dad-poor-dad/"/><id>https://chemaclass.com/es/readings/rich-dad-poor-dad/</id><summary type="html">Por qué no necesitas un sueldo alto para volverte rico</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;ul>
&lt;li>Desmonta el mito de que necesitas ganar mucho para volverte rico&lt;/li>
&lt;li>Cuestiona la idea de que tu casa es un activo&lt;/li>
&lt;li>Explica por qué no puedes confiar en la escuela para enseñar a tus hijos sobre dinero&lt;/li>
&lt;li>Define de una vez qué es un activo y qué es un pasivo&lt;/li>
&lt;li>Te da herramientas para educar a tus hijos en finanzas personales&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Mockear o No Mockear</title><subtitle>Cómo escapar del infierno del mocking</subtitle><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><published>2021-01-11T00:00:00+00:00</published><updated>2021-01-11T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/to-mock-or-not-to-mock/"/><id>https://chemaclass.com/es/blog/to-mock-or-not-to-mock/</id><summary type="html">Mockear es útil, pero 'qué mockear' suele resultar más complicado de lo esperado si no tratas esto con cuidado.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2021-01-11/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Mockear es útil, pero “qué mockear” suele resultar más complicado de lo esperado si no tratas esto con cuidado.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h4 id="como-escapar-del-infierno-del-mocking">Cómo escapar del infierno del mocking&lt;/h4>
&lt;p>¿Qué pasa realmente cuando creamos un mock? ¿Qué tipos hay? ¿Es bueno o malo mockear? Como siempre, depende del contexto. Aquí veremos las situaciones principales: cuándo mockear, cuándo no hacerlo, y sobre todo por qué.&lt;/p>
&lt;h2 id="que-pasa-cuando-mockeas-algo">¿Qué pasa cuando mockeas algo?&lt;/h2>
&lt;p>Primero, deberíamos definir qué es un mock:&lt;/p>
&lt;blockquote>
&lt;p>En un test unitario, los objetos mock pueden simular el comportamiento de objetos reales complejos y por lo tanto son útiles cuando es impracticable o imposible incorporar un objeto real en un test unitario.&lt;/p>
&lt;/blockquote>
&lt;p>Mockear tiene sentido en &lt;em>testing unitario&lt;/em>. Un test de integración pasa por la implementación real, verificando cómo interactúan varias unidades. Estos tests sí pueden hablar con la BD o el sistema de archivos.
Partimos de esta base: &lt;em>un test unitario es rápido, determinista, no depende de recursos externos y no requiere contexto especial para ejecutarse&lt;/em>.&lt;/p>
&lt;p>Los mocks cumplen el contrato de la &lt;em>interfaz&lt;/em>. Nos permiten testear funcionalidad sin invocar clases colaboradoras complejas.&lt;/p>
&lt;p>Un mock es un doble de test que sustituye la implementación real. Además, puede verificar cómo el código bajo test lo utilizó durante la ejecución.&lt;/p>
&lt;blockquote>
&lt;p>Recomiendo encarecidamente que leas este post si quieres entrar en los detalles de por qué &lt;a rel="external" href="https://medium.com/javascript-scene/mocking-is-a-code-smell-944a70c90a6a">Mockear es un code smell&lt;/a> (Temas como estos: ¿Qué es un mock? ¿Qué es un test unitario? ¿Qué es la cobertura de tests? ¿Qué es el acoplamiento fuerte? ¿Qué causa el acoplamiento fuerte? ¿Qué tiene que ver la composición con el mocking? ¿Cómo eliminamos el acoplamiento? ¡y más!)&lt;/p>
&lt;/blockquote>
&lt;h2 id="el-problema-con-mockear">El problema con mockear&lt;/h2>
&lt;p>Cuando mockeas, anulas la lógica de la clase mockeada. La lógica real queda oculta, y ahí es donde los bugs se esconden. Ten en cuenta que:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>El mock puede tener atributos, métodos o argumentos que el objeto real no tiene.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Los &lt;em>valores de retorno del mock pueden diferir de los reales&lt;/em>. Por ejemplo, puede devolver un tipo distinto con atributos diferentes.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Los &lt;em>efectos secundarios y comportamiento del mock pueden diferir del objeto real&lt;/em>. Quizás el mock no lanza una excepción que el objeto real sí lanzaría.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h2 id="alternativas-a-mockear">Alternativas a mockear&lt;/h2>
&lt;p>“¿Estás diciendo que mockear es malo y no deberíamos mockear?” No.&lt;/p>
&lt;p>Depende de lo que estés “anulando”.&lt;/p>
&lt;ul>
&lt;li>¿Es tu lógica de dominio de negocio lo que estás mockeando? Entonces está mal.&lt;/li>
&lt;li>¿Es la conexión a la BD lo que estás mockeando? Entonces está bien.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Depende del contexto de la lógica y dónde pertenece esa lógica.&lt;/p>
&lt;/blockquote>
&lt;p>¿Es parte de tu lógica de dominio de negocio? Entonces no deberías mockearla sino instanciarla.&lt;/p>
&lt;p>¿Es una dependencia de infraestructura como conexión a BD, sistema de archivos, red, o cualquier servicio externo que no tiene que ver con tu dominio de negocio? Entonces &lt;em>mockéala usando abstracciones/interfaces&lt;/em>.&lt;/p>
&lt;p>La interfaz es el &lt;em>contrato entre tu lógica de dominio y sus dependencias de infraestructura&lt;/em>.
Imagina lo fácil que es testear tu dominio instanciándolo y llamando a sus métodos con diferentes argumentos, todo bajo tu control total.&lt;/p>
&lt;h2 id="algunos-trucos">Algunos trucos&lt;/h2>
&lt;p>Cuando estés escribiendo un test unitario:&lt;/p>
&lt;ul>
&lt;li>Intenta instanciar tus clases primero.&lt;/li>
&lt;li>Evita mockear clases concretas. Escribí un artículo exclusivamente sobre esto:
fomentando &lt;a rel="external" href="https://medium.com/swlh/final-classes-in-php-9174e3e2747e">clases finales&lt;/a> e interfaces.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Mockea interfaces. Instancia clases concretas.&lt;/p>
&lt;/blockquote>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/RbSqXFUfRMU"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;p>“El uso excesivo de mocks lleva a código legacy.” — Philippe Boargau&lt;/p>
&lt;h3 id="como-podemos-evitar-el-mocking-excesivo">¿Cómo podemos evitar el mocking excesivo?&lt;/h3>
&lt;ul>
&lt;li>Favorece el estado inmutable sobre el estado mutable.&lt;/li>
&lt;li>Haz las dependencias explícitas.&lt;/li>
&lt;li>Programa hacia una interfaz, no hacia una implementación.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2021-01-11/footer.jpg" alt="mockea interfaces, instancia clases concretas" />&lt;/p>
&lt;hr />
&lt;h4 id="referencias">Referencias&lt;/h4>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://medium.com/javascript-scene/mocking-is-a-code-smell-944a70c90a6a">Mocking is a code smell&lt;/a> — Eric Elliott&lt;/li>
&lt;li>&lt;a rel="external" href="https://blog.cleancoder.com/uncle-bob/2014/05/10/WhenToMock.html">When to mock&lt;/a> &amp;amp; &lt;a rel="external" href="https://blog.cleancoder.com/uncle-bob/2017/05/05/TestDefinitions.html">Test Definitions&lt;/a> — Uncle Bob&lt;/li>
&lt;li>&lt;a rel="external" href="https://matthiasnoback.nl/2018/09/final-classes-by-default-why/">Final classes by default&lt;/a> — Matthias Noback&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.seanh.cc/2017/03/17/the-problem-with-mocks/">The problem with mocks&lt;/a> — Sean Hammond&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.artima.com/weblogs/viewpost.jsp?thread=126923">A Set of Unit Testing Rules&lt;/a> — Michael Feathers&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Compartiendo tus Parches de Git</title><subtitle>Otra forma de compartir sugerencias rápidas con tu equipo</subtitle><category term="git" scheme="https://chemaclass.com/tags/git/" label="Git"/><category term="code-review" scheme="https://chemaclass.com/tags/code-review/" label="Code Review"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><published>2020-12-01T00:00:00+00:00</published><updated>2020-12-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/sharing-git-patches/"/><id>https://chemaclass.com/es/blog/sharing-git-patches/</id><summary type="html">Descubre otra forma de compartir sugerencias con tu equipo de desarrollo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-12-01/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Descubre otra forma de compartir sugerencias con tu equipo de desarrollo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="imagina-esta-situacion">Imagina esta situación&lt;/h3>
&lt;p>Estás revisando un Pull Request (PR), y ves algunas mejoras menores o sugerencias que te gustaría compartir con el autor. Podrías escribir algunos comentarios, y normalmente, eso sería suficiente.&lt;/p>
&lt;p>Imagina que para transmitir tu “idea completa” necesitarías cambiar algunos archivos porque simplemente comunicar la imagen completa acabará en un comentario enorme que podría no ser tan claro como podría ser.&lt;/p>
&lt;h2 id="que-posibilidades-hay-aparte-de-solo-comentarios-en-un-pr">¿Qué posibilidades hay aparte de solo comentarios en un PR?&lt;/h2>
&lt;p>Bueno, hay múltiples opciones. La clave es ser consciente de ellas y usarlas sabiamente dependiendo de la prioridad de la tarea y los cambios en sí:&lt;/p>
&lt;ul>
&lt;li>Como ya se mencionó, escribir un comentario como retroalimentación es una buena idea por defecto, pero no la única.&lt;/li>
&lt;li>Siempre podemos hacer algo de pair-thinking, hablar en cualquier momento. La comunicación siempre es buena para aclarar la posible incertidumbre.&lt;/li>
&lt;li>Compartir tus parches de git es otra buena opción.&lt;/li>
&lt;/ul>
&lt;h1 id="git-diff-al-rescate">¡Git diff al rescate!&lt;/h1>
&lt;p>¿Y si tú (como revisor) pudieras compartir tu idea sin ningún commit o comentario en el PR, pero compartiendo tus cambios directamente con el autor?&lt;/p>
&lt;p>Bueno, eso es realmente posible y muy fácil. Como ya sabes, el comando git diff te da las diferencias entre dos ramas cualesquiera.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> diff&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> origin&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> develop&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ../my-origin-develop.patch&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Lo que estamos haciendo aquí es redirigir la salida del comando diff a un archivo (también conocido como: parche), para poder compartir esa salida con cualquier otro compañero de equipo.&lt;/p>
&lt;h2 id="y-ahora-que">¿Y ahora qué?&lt;/h2>
&lt;p>Bueno, teniendo ese archivo de parche, es bastante fácil aplicar esos cambios en tu máquina local sin hacer ningún commit:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> apply&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ../my-origin-develop.patch&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Aplicar este parche simplemente cambiará tu sistema local de la misma manera que se creó el parche.&lt;/p>
&lt;h2 id="como-hacerlo-por-pasos">“Cómo hacerlo” por pasos&lt;/h2>
&lt;p>Dividamos las responsabilidades en dos: el creador del parche y su usuario:&lt;/p>
&lt;h3 id="el-creador-del-parche-la-persona-que-creara-el-parche">El creador del parche: la persona que creará el parche&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Cambia a esa rama&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">$&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ~/myProject&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git:&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">the-branch&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ➜&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> pull&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> origin&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> the-branch&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Haz tus sugerencias y cambios en la rama objetivo&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Genera el archivo de parche usando el comando diff&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">$&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ~/myProject&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git:&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">the-branch&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ➜&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> diff&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> &amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ../your-diff.patch&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Comparte el archivo de parche con el autor del PR&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="el-usuario-del-parche-la-persona-que-vera-el-parche">El usuario del parche: la persona que verá el parche&lt;/h3>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="shellscript">&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Asegúrate de estar en esa rama&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">$&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ~/myProject&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git:&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">the-branch&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ➜&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> pull&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> origin&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> the-branch&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">#&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Aplica el archivo de parche&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">$&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ~/myProject&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git:&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">the-branch&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ➜&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> git&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> apply&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> ../your-diff.patch&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;hr />
&lt;h4 id="referencias">Referencias&lt;/h4>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://git-scm.com/docs/git-apply">Documentación oficial de “git apply”&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Principios de diseño de paquetes</title><subtitle>Cómo crear componentes de software reutilizables</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2020-11-12T00:00:00+00:00</published><updated>2020-11-12T00:00:00+00:00</updated><author><name>
Matthias Noback</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/packaging-design/"/><id>https://chemaclass.com/es/readings/packaging-design/</id><summary type="html">Cómo crear paquetes con la cohesión y el acoplamiento justos, útiles tanto para usuarios como mantenedores</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Aprende a aplicar principios de diseño a tus clases para que sean reutilizables. El libro te enseña a crear paquetes con la cohesión y acoplamiento adecuados, pensados para usuarios y mantenedores.&lt;/p>
&lt;p>La primera parte cubre los cinco principios SOLID para mejorar el diseño de clases. La segunda parte entra en las mejores prácticas de diseño de paquetes: principios de cohesión y de acoplamiento.&lt;/p>
&lt;p>Los principios de cohesión te dicen qué clases van juntas, cuándo dividir un paquete, y cuándo un grupo de clases puede llamarse “paquete”. Los de acoplamiento te ayudan a elegir bien las dependencias y evitar ciclos en el grafo de dependencias.&lt;/p>
&lt;h3 id="lo-que-aprenderas">Lo que aprenderás&lt;/h3>
&lt;ul>
&lt;li>Aplicar los principios SOLID&lt;/li>
&lt;li>Decidir si las clases pertenecen al mismo paquete&lt;/li>
&lt;li>Saber cuándo un paquete puede depender de otro&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Nunca Uses array_merge en un Bucle</title><subtitle>El operador spread al rescate</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><published>2020-11-10T00:00:00+00:00</published><updated>2020-11-10T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/array-merge-in-loop/"/><id>https://chemaclass.com/es/blog/array-merge-in-loop/</id><summary type="html">Usar array_merge dentro de un bucle mata el rendimiento. El operador spread te ayudará a mejorar esto aplanando el array.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-11-10/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Usar array_merge dentro de un bucle mata el rendimiento.
El operador spread te ayudará a mejorar esto aplanando el array.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="aplanando-un-array-de-un-nivel">Aplanando un array de un nivel&lt;/h2>
&lt;p>He visto a gente usar array_merge dentro de un bucle así:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 2&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">3&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 4&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">5&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 6&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>merged&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">foreach&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> as&lt;/span>&lt;span> $&lt;/span>&lt;span>list&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> $&lt;/span>&lt;span>merged&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> array_merge&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>merged&lt;/span>&lt;span>,&lt;/span>&lt;span> $&lt;/span>&lt;span>list&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> $merged === [1, 2, 3, 4, 5, 6];&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Esto es mala práctica porque destroza el rendimiento de memoria.
Mejor usa el operador spread (disponible desde PHP 5.6):&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 2&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">3&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 4&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">5&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 6&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>merged&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> array_merge&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">...&lt;/span>&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> === [1, 2, 3, 4, 5, 6];&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h2 id="desempaquetando-un-array-asociativo">Desempaquetando un array asociativo&lt;/h2>
&lt;p>¿Y si tuvieras un array asociativo como este?&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-1&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 2&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-2&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">3&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 4&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-3&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">5&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 6&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>En ese caso, necesitarás desempaquetar sus valores:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>merged&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> array_merge&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">...&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">array_values&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> === [1, 2, 3, 4, 5, 6];&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>En programación funcional, esto se conoce como aplanar una lista.
Sin bucles ni problemas de rendimiento.&lt;/p>
&lt;h2 id="aplanando-un-array-multinivel">Aplanando un array multinivel&lt;/h2>
&lt;p>¿Y si quisieras aplanar un array multinivel como este?&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 2&lt;/span>&lt;span>,&lt;/span>&lt;span> [&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">3&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 4&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 5&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;span> [&lt;/span>&lt;span>[&lt;/span>&lt;span>[&lt;/span>&lt;span>]&lt;/span>&lt;span>]&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;span> [&lt;/span>&lt;span>[&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">6&lt;/span>&lt;span>]&lt;/span>&lt;span>]&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 7&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 8&lt;/span>&lt;span>,&lt;/span>&lt;span> [&lt;/span>&lt;span>]&lt;/span>&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>¿O como este, incluso con clave-valores?&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-1&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 1&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">2&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-2&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 3&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-3&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">4&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 5&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 6&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key-4&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">7&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 8&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>]&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Para estos casos, puedes usar la librería estándar de PHP:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>merged&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> iterator_to_array&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> RecursiveIteratorIterator&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> RecursiveArrayIterator&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> $&lt;/span>&lt;span>use_keys&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> false&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> $merged === [1, 2, 3, 4, 5, 6, 7, 8];&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h2 id="conclusion">Conclusión&lt;/h2>
&lt;p>Normalmente, saber aplanar un array de dos niveles suele ser suficiente:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>flattenList&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> array_merge&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">...&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">array_values&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>lists&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Para casos más complejos, la librería estándar de PHP te saca del apuro.&lt;/p>
&lt;hr />
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://wiki.php.net/rfc/spread_operator_for_array">Spread_operator_for_array - Wikipedia&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://rosettacode.org/wiki/Flatten_a_list">Flatten_a_list - Rosettacode&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Rebelión en la granja</title><subtitle>Todos los animales son iguales. Pero algunos son más iguales que otros.</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="dystopia" scheme="https://chemaclass.com/tags/dystopia/" label="Dystopia"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2020-11-02T00:00:00+00:00</published><updated>2020-11-02T00:00:00+00:00</updated><author><name>
George Orwell</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/animal-farm/"/><id>https://chemaclass.com/es/readings/animal-farm/</id><summary type="html">La alegoría política de Orwell sobre una rebelión en una granja que degenera en tiranía, mostrando cómo el poder corrompe incluso las revoluciones más idealistas.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El Sr. Jones, dueño de la Granja Manor, es tan vago y borracho que un día se olvida de dar de comer a los animales. Eso desata una rebelión. Los cerdos Napoleón y Bola de Nieve toman el liderazgo y los animales se hacen con el control.&lt;/p>
&lt;p>Juran acabar con las desigualdades. La granja pasa a llamarse Granja Animal y se organiza para beneficiar a todos los que caminan en cuatro patas. Pero con el tiempo, los ideales se corrompen. Después, se olvidan. Y algo nuevo e inesperado emerge.&lt;/p></content></entry><entry xml:lang="es"><title>Arrays Tipados en PHP</title><subtitle>Una alternativa a la característica que falta en PHP: Generics</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><published>2020-10-13T00:00:00+00:00</published><updated>2020-10-13T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/typed-arrays-php/"/><id>https://chemaclass.com/es/blog/typed-arrays-php/</id><summary type="html">Desempaquetado de argumentos, lista de argumentos variables de función, y funciones variádicas.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-10-13/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Desempaquetado de argumentos, lista de argumentos variables de función, y funciones variádicas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="la-combinacion-perfecta">La combinación perfecta&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Desempaquetado de argumentos&lt;/strong>: pasa los elementos de un array como argumentos individuales a una función.&lt;/li>
&lt;li>&lt;strong>Lista de argumentos variables&lt;/strong>: la función recibe los argumentos como un array.&lt;/li>
&lt;li>&lt;strong>Función variádica&lt;/strong>: permite verificar los tipos con un type-hint.&lt;/li>
&lt;/ul>
&lt;p>Usaremos este snippet para nuestros ejemplos.
Tenemos una clase &lt;code>Customer&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">/**&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> * @psalm-immutable&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> */&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> Customer&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Usando la promoción de propiedades en constructor de PHP 8&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> https://wiki.php.net/rfc/constructor_promotion&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> __construct&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> string&lt;/span>&lt;span> $&lt;/span>&lt;span>name&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span> {&lt;/span>&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Creamos una lista de 6 clientes&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> array_map&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> fn&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">int&lt;/span>&lt;span> $&lt;/span>&lt;span>i&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">name-&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">{&lt;/span>&lt;span>$&lt;/span>&lt;span>i&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">}&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;quot;&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> range&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">1&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> 6&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Siempre que queramos manipular una lista de Customers, podemos pasar como argumento: &lt;code>…$customers&lt;/code>.&lt;/p>
&lt;h2 id="como-soliamos-hacerlo">Cómo solíamos hacerlo&lt;/h2>
&lt;p>Definimos el tipo del array con PHPDoc, pero no podemos forzar el tipo real de cada elemento. El código se ejecuta sin problemas aunque pases cualquier tipo en &lt;code>array $customers&lt;/code>:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">/**&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> * &lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">@param&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">[]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> */&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">array&lt;/span>&lt;span> $&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> foreach&lt;/span>&lt;span> (&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> as&lt;/span>&lt;span> $&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... alguna lógica irrelevante para este ejemplo&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>El código de abajo funcionaría en “tiempo de compilación”. Pero podría fallar en “tiempo de ejecución”.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">any name&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> AnyOtherType&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Una alternativa recomendada: extraer la lógica y pedir el tipo concreto para verificarlo en tiempo de ejecución. Fallará si alguno de los elementos no es un Customer:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">/**&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> * &lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">@param&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">[]&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> */&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">array&lt;/span>&lt;span> $&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> foreach&lt;/span>&lt;span> (&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> as&lt;/span>&lt;span> $&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoice&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoice&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">Customer&lt;/span>&lt;span> $&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... alguna lógica irrelevante para este ejemplo&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Todo lo de aquí abajo funcionaría en “tiempo de compilación”. Seguro que fallará durante “tiempo de ejecución” si &lt;code>createInvoice(Customer $customer)&lt;/code> recibe algo diferente a un Customer.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">any name&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span>[&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> AnyOtherType&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>]&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> no funcionará&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Con &lt;code>createInvoice(Customer $customer)&lt;/code> aseguramos el tipo del argumento. Pero, ¿podemos ir un paso más allá? ¿Podríamos verificar los tipos al llamar a &lt;code>createInvoiceForCustomers(array $customers)&lt;/code>, y que el IDE se queje si los tipos no son correctos?&lt;/p>
&lt;p>Eso es precisamente para lo que sirven los Generics, pero aún no existen en PHP. Ni siquiera en PHP 8. Quizás lleguen pronto, pero por ahora hay una alternativa menos conocida con sus pros y contras. Veamos un ejemplo:&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">Customer&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> ...&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> foreach&lt;/span>&lt;span> (&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> as&lt;/span>&lt;span> $&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> createInvoice&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>customer&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Todo lo de aquí abajo funcionaría en “tiempo de compilación”. Seguro que fallará durante “tiempo de ejecución” si &lt;code>createInvoice()&lt;/code> recibe algo diferente a un Customer.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">&amp;lt;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">?&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">php&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">...&lt;/span>&lt;span>$&lt;/span>&lt;span>customers&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> OK&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">any name&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Customer&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">any name&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> OK&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Esto ni siquiera es posible de escribir. El IDE te gritará.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);">//&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Está esperando un `Customer`, pero `AnyOtherType` es dado:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInvoiceForCustomers&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> AnyOtherType&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="pros">PROS&lt;/h3>
&lt;ul>
&lt;li>Podemos tipar una lista de cualquier tipo concreto de forma sencilla.&lt;/li>
&lt;/ul>
&lt;h3 id="contras">CONTRAS&lt;/h3>
&lt;ul>
&lt;li>Mejor limitar las funciones a uno o dos argumentos. De lo contrario, se complica la lectura.&lt;/li>
&lt;/ul>
&lt;h3 id="observaciones-importantes">Observaciones importantes&lt;/h3>
&lt;ul>
&lt;li>Debe ser el último argumento de la función.&lt;/li>
&lt;li>Ayuda a minimizar el número de argumentos.&lt;/li>
&lt;/ul>
&lt;h2 id="conclusiones">Conclusiones&lt;/h2>
&lt;p>El desempaquetado de argumentos, combinado con funciones variádicas, nos permite simular arrays tipados. Un gran poder conlleva una gran responsabilidad.
Hay que conocer bien nuestras herramientas para usarlas con criterio.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-10-13/footer.jpg" alt="arrays tipados con variádicas en php" />&lt;/p>
&lt;hr />
&lt;h3 id="referencias">Referencias&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://wiki.php.net/rfc/argument_unpacking">Desempaquetado de argumentos&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://www.php.net/manual/en/functions.arguments.php#functions.variable-arg-list">Lista de argumentos variables de función&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://wiki.php.net/rfc/variadics">Función variádica&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Guía de estilo para diseño de objetos</title><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><published>2020-10-10T00:00:00+00:00</published><updated>2020-10-10T00:00:00+00:00</updated><author><name>
Matthias Noback</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/object-design-style-guide/"/><id>https://chemaclass.com/es/readings/object-design-style-guide/</id><summary type="html">&lt;p>Los objetos son el corazón de lenguajes como Java, Python y C#. Si aplicas buenas prácticas de diseño, tu código será más fácil de leer, escribir y mantener.&lt;/p>
&lt;p>Este libro reúne docenas de técnicas para crear código OO profesional que aguanta el paso del tiempo.&lt;/p></summary><content type="html">&lt;p>Los objetos son el corazón de lenguajes como Java, Python y C#. Si aplicas buenas prácticas de diseño, tu código será más fácil de leer, escribir y mantener.&lt;/p>
&lt;p>Este libro reúne docenas de técnicas para crear código OO profesional que aguanta el paso del tiempo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Los ejemplos usan pseudocódigo fácil de entender. Las técnicas aplican a cualquier lenguaje OO, desde C++ hasta PHP.&lt;/p></content></entry><entry xml:lang="es"><title>Domain-Driven Design Distilled</title><subtitle>DDD explicado de forma clara y práctica</subtitle><category term="ddd" scheme="https://chemaclass.com/tags/ddd/" label="Ddd"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2020-09-10T00:00:00+00:00</published><updated>2020-09-10T00:00:00+00:00</updated><author><name>
Vaughn Vernon</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/domain-driven-design-distilled/"/><id>https://chemaclass.com/es/readings/domain-driven-design-distilled/</id><summary type="html">Una introducción accesible a DDD para desarrolladores, consultores y cualquiera que quiera entender el diseño guiado por dominio</summary><content type="html">&lt;p>Este libro hace que DDD cobre vida. Da igual si eres desarrollador, consultor o cliente: te ayuda a entenderlo y sacarle provecho.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;p>Desarrolladores de todo el mundo lo están adoptando porque da resultados reales. Es una guía accesible que responde:&lt;/p>
&lt;ul>
&lt;li>¿Qué es DDD?&lt;/li>
&lt;li>¿Qué problemas resuelve?&lt;/li>
&lt;li>¿Cómo funciona?&lt;/li>
&lt;li>¿Cómo sacarle valor rápido?&lt;/li>
&lt;/ul>
&lt;p>Aprenderás a separar modelos de dominio con &lt;strong>Contextos Acotados&lt;/strong> (Bounded Contexts), a desarrollar un &lt;strong>Lenguaje Ubicuo&lt;/strong> dentro de cada contexto, y a lograr que &lt;strong>expertos de dominio&lt;/strong> y &lt;strong>desarrolladores&lt;/strong> colaboren para crear ese lenguaje.&lt;/p>
&lt;p>También cubre cómo usar Subdominios para manejar sistemas legacy e integrar varios Contextos Acotados definiendo relaciones entre equipos.&lt;/p>
&lt;blockquote>
&lt;p>Domain-Driven Design Distilled da vida a &lt;strong>DDD&lt;/strong>.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>El Proceso en Sí Es la Meta</title><subtitle>Cómo enfocarte y tener autodisciplina</subtitle><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><published>2020-09-08T00:00:00+00:00</published><updated>2020-09-08T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-process-itself-is-the-goal/"/><id>https://chemaclass.com/es/blog/the-process-itself-is-the-goal/</id><summary type="html">Ninguna meta debería ser un logro en sí misma, sino el proceso que nos ayuda a ir en la dirección de esas metas.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-09-08/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Ninguna meta debería ser un logro en sí misma, sino el proceso que nos ayuda a ir en la dirección de esas metas.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Las metas, en los negocios y en la vida, deberían verse como direcciones. Su intención es ayudarnos a lograr más de la manera que queremos.&lt;/p>
&lt;blockquote>
&lt;p>Si solo nos recompensan por resultados y no por procesos, nos volveremos miserables.&lt;/p>
&lt;/blockquote>
&lt;p>La sociedad recompensa resultados, no el viaje. Ese es parte del problema cuando te enfocas demasiado en lo que la sociedad espera de ti. Es importante escuchar a la sociedad, pero más importante escucharte a ti mismo para mejorar constantemente. La mejora continua no aplica solo al software sino a todo en la vida.&lt;/p>
&lt;h2 id="como-me-mantengo-enfocado">¿Cómo me mantengo enfocado?&lt;/h2>
&lt;p>Es un tema subjetivo. Lo que funciona para uno puede no funcionar para otro. Aun así, creo que puede ser útil compartir lo que me funciona a mí.&lt;/p>
&lt;h3 id="auto-reflexion">Auto-reflexión&lt;/h3>
&lt;p>Durante algunos años escribí mis pensamientos en un “diario”. En 2015, cuando me mudé a Alemania, no conocía a mucha gente y todo era nuevo. Decidí escribir mis pensamientos para leerlos al día siguiente y reflexionar sobre ellos. Tres años después, en diciembre de 2017, publiqué &lt;a rel="external" href="http://ojosenunrecuerdo.es/">“Ojos en un recuerdo”&lt;/a>. Es la compilación de esos pensamientos, tal como vinieron. Puedes ver la evolución de los temas y cómo fueron escritos.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-09-08/oeur-books.jpg" alt="libros ojos en un recuerdo" />&lt;/p>
&lt;p>El ejercicio de auto-reflexión fue más importante que el libro. La meta no era escribir un libro. Era entender qué pasaba dentro de mí. Publicarlo fue un accidente. Un hermoso accidente. Este hábito de pensar sobre mis acciones y decisiones me ayudó a desarrollar quién soy hoy.&lt;/p>
&lt;h3 id="deportes">Deportes&lt;/h3>
&lt;p>El ejercicio ayuda a mi mente a desconectar de lo técnico. Mantiene mi cuerpo activo usando energía en otro entorno. Pero lo más importante: llego cansado a la cama y descanso mejor. Ya sea deportes de contacto, gimnasio o correr.&lt;/p>
&lt;blockquote>
&lt;p>El deporte específico es un detalle. Lo importante es hacer deporte.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/bjj-berlin-2020.jpg" alt="entrenamiento de jiu-jitsu en berlín" />&lt;/p>
&lt;h3 id="libros">Libros&lt;/h3>
&lt;p>Leo tecnología de día y no-tecnología de noche. Antes o después del trabajo, un libro técnico. Antes de dormir, uno no técnico. Así alimento mi cerebro con conocimiento y le doy espacio para descansar del código y disfrutar otros “universos”.&lt;/p>
&lt;p>Algunos libros que me ayudaron a entender cómo nos comportamos y por qué hacemos lo que hacemos:&lt;/p>
&lt;ul>
&lt;li>El poder de los hábitos, de Charles Duhigg.&lt;/li>
&lt;li>Hábitos atómicos, de James Clear.&lt;/li>
&lt;li>Scrum: El arte de hacer el doble de trabajo en la mitad de tiempo, de Jeff Sutherland.&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2020-09-08/atomic-habits.jpg" alt="libro hábitos atómicos" />&lt;/p>
&lt;h2 id="trucos-personales">Trucos personales&lt;/h2>
&lt;p>Ojalá hubiera leído mucho más. Con tantas distracciones, mantenerte enfocado es difícil. Algunos trucos que me ayudan:&lt;/p>
&lt;ul>
&lt;li>Teléfono siempre en silencio y vibración.&lt;/li>
&lt;li>Antes pasaba horas en redes sociales. Mucho tiempo perdido. Eliminé las apps que me impedían ser productivo. Algunas del teléfono, otras directamente la cuenta.&lt;/li>
&lt;li>Antes jugaba videojuegos. Ahora voy a GitHub a trabajar en proyectos personales, contribuir a código abierto, o leer un libro.&lt;/li>
&lt;li>Cuando salgo a correr, escucho un podcast que quería escuchar desde la mañana. Vinculé la recompensa del podcast con el acto de correr. Creé ese hábito a propósito.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>No se trata de eliminar tus viejos hábitos sino de reemplazarlos por nuevos.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-jumping.jpg" alt="chema saltando al aire libre" />&lt;/p>
&lt;h3 id="como-mejorar-tus-habitos">Cómo mejorar tus hábitos&lt;/h3>
&lt;p>Los hábitos emergen sin nuestro consentimiento. El cerebro crea bucles de hábito buscando disparadores para ahorrar energía.&lt;/p>
&lt;ul>
&lt;li>La fuerza de voluntad se puede entrenar, como un músculo.&lt;/li>
&lt;li>Los pequeños éxitos construyen victorias más grandes.&lt;/li>
&lt;li>Enfócate menos en metas y más en sistemas y procesos.&lt;/li>
&lt;li>Para cambiar hábitos, cambia cómo te identificas.&lt;/li>
&lt;li>Para construir buenos hábitos, el entorno importa más que la motivación.&lt;/li>
&lt;li>Para romper un mal hábito, reduce exposición a sus señales.&lt;/li>
&lt;li>Combina algo que quieras hacer con algo que necesites hacer.&lt;/li>
&lt;li>No busques el hábito perfecto. Solo repite.&lt;/li>
&lt;li>Reduce fricción para buenos hábitos, auméntala para los malos.&lt;/li>
&lt;li>Como en Scrum, eliminar desperdicio es clave para mejorar.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La repetición es la clave. Facilita lo que quieres hacer. Dificulta lo que quieres dejar de hacer. Disfruta el proceso: esa es la meta.&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-09-08/chema-next-turm.jpg" alt="chema junto a una torre" />&lt;/p>
&lt;h2 id="enlaces-interesantes">Enlaces interesantes&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://heleo.com/charles-duhigg-13-key-insights-charles-duhiggs-power-habit/2026/">13 key insights from The Power of Habit&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://medium.com/@saurinparikh/the-most-interesting-useful-takeaways-from-atomic-habits-9acc20bdc858">The most interesting takeaways from Atomic Habits&lt;/a>&lt;/li>
&lt;li>&lt;a href="/es/readings/atomic-habits/">Atomic Habits en mis lecturas&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Testeando Código Legacy de Forma Efectiva</title><subtitle>Cómo escribir tests adecuados para código ya escrito</subtitle><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><published>2020-08-17T00:00:00+00:00</published><updated>2020-08-17T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/testing-effectively-legacy-code/"/><id>https://chemaclass.com/es/blog/testing-effectively-legacy-code/</id><summary type="html">Cómo escribir tests de caracterización para código legacy y refactorizar de forma segura sin romper el comportamiento existente.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-08-17/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Estos tests también se conocen como tests de caracterización.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;blockquote>
&lt;p>Un test de caracterización describe el comportamiento real de una pieza de software existente, y por lo tanto protege el
comportamiento existente del código legacy contra cambios no intencionados mediante testing automatizado. Este término fue acuñado por &lt;a href="/es/readings/working-effectively-with-legacy-code/">Michael Feathers&lt;/a>.&lt;/p>
&lt;/blockquote>
&lt;p>Permiten y proporcionan una red de seguridad para extender y refactorizar código que no tiene tests adecuados. Se puede
escribir un test que afirme que la salida del código legacy coincide con el resultado observado para las entradas dadas.&lt;/p>
&lt;h2 id="como-empezar">¿Cómo empezar?&lt;/h2>
&lt;p>Estos son mis aprendizajes un año después de
leer &lt;a href="/es/readings/working-effectively-with-legacy-code/">Working Effectively with Legacy Code&lt;/a> y aplicarlo a los
diferentes proyectos en los que he trabajado desde entonces.&lt;/p>
&lt;h3 id="1-que-quieres-testear">1. ¿Qué quieres testear?&lt;/h3>
&lt;p>Averigua las aserciones. Crea un archivo de test para tu clase, y un método de test para la función que quieres testear.
Pista:&lt;/p>
&lt;ul>
&lt;li>Si tienes el siguiente método &lt;code>applySomeLogic(): ReturnType&lt;/code>,&lt;/li>
&lt;li>el test que podrías escribir es &lt;code>test_apply_some_logic(): void&lt;/code>.&lt;/li>
&lt;/ul>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> MyBusinessLogic&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> private&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> DependencyInterface&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> dependencyInterface&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> private&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ConcreteDependency&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> concrete&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> __construct&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> DependencyInterface dependencyInterface&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ConcreteDependency concrete&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">dependencyInterface&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> dependencyInterface&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">concrete&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> concrete&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span>Input input&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ReturnType&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> caja negra responsable de crear un ReturnType&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> basado en el Input dado&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> return&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> returnType&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> MyBusinessLogicTest&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> extends&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> TestCase&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> test_apply_some_logic&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> Quiero afirmar que &amp;quot;aplicando alguna lógica&amp;quot;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> de MyBusinessLogic con el Input dado&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> recibiré un ReturnType concreto con un&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> cierto valor como su propiedad. Algo como:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> returnType&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> assertEquals&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expected&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> returnType&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">getProperty&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="2-instancia-la-clase-concreta-final-que-quieres-testear">2. Instancia la clase concreta/final que quieres testear.&lt;/h3>
&lt;p>No mockees tus clases concretas. Especialmente tu dominio de negocio. Mockea solo interfaces. De lo contrario, puedes estar ocultando
bugs sin querer (¡con tests verdes/pasando!). Trata tus &lt;a href="/es/blog/final-classes">clases de dominio de negocio como finales&lt;/a>.&lt;/p>
&lt;p>O mockea la interfaz o instancia una clase anónima si quieres crear un Stub:&lt;/p>
&lt;blockquote>
&lt;p>Los Stubs proporcionan respuestas a llamadas hechas durante el test, normalmente sin responder a nada fuera de lo programado para el test.&lt;/p>
&lt;/blockquote>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> MyBusinessLogicTest&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> extends&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> TestCase&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> test_apply_some_logic&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> MyBusinessLogic&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">createMock&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">DependencyInterface&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">class&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ConcreteDependency&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">/*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> O&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> MyBusinessLogic&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> FakeDependency&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ConcreteDependency&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">/*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> //&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ...&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;blockquote>
&lt;p>Donde &lt;code>FakeDependency&lt;/code> es una implementación concreta de &lt;code>DependencyInterface&lt;/code> con “datos/implementación falsos” ya preparados que solo es útil para propósitos de testing.&lt;/p>
&lt;/blockquote>
&lt;h3 id="3-llama-al-metodo-de-esa-clase-proporcionando-la-entrada-deseada">3. Llama al método de esa clase proporcionando la entrada deseada.&lt;/h3>
&lt;p>La salida será determinada por el estado inicial de la clase de lógica de negocio que queremos testear MÁS los argumentos
de entrada que estamos usando.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Input&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">/*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">returnType&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="4-afirma-la-salida-con-el-valor-esperado">4. Afirma la salida con el valor esperado.&lt;/h3>
&lt;p>Del paso 1 necesitas saber qué quieres. Aplica la(s) aserción(es) ahora.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> MyBusinessLogicTest&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> extends&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> TestCase&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> test_apply_some_logic&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> MyBusinessLogic&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">createMock&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">DependencyInterface&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">::&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">class&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ConcreteDependency&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">/*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> input&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Input&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">/*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> returnType&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> assertEquals&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expected&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> returnType&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">getProperty&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="5-puede-que-quieras-afirmar-diferentes-valores-esperados">5. Puede que quieras afirmar diferentes valores esperados.&lt;/h3>
&lt;p>Puedes proporcionar fácilmente diferentes argumentos a tu lógica de negocio ya sea a través de la construcción de la lógica o diferentes
argumentos dados. Para hacerlo, usa la anotación @dataProvider. El método “dataProvider” debe ser público y devolver cualquier iterable.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);">final&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> class&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> MyBusinessLogicTest&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> extends&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> TestCase&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>{&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> /**&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> @dataProvider providerApplySomeLogic &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> test_apply_some_logic&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> array concreteMapping&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> string argInput&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> string expectedValue&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> void&lt;/span>&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> MyBusinessLogic&lt;/span>&lt;span>(&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">createMock&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">DependencyInterface&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">class&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> ConcreteDependency&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">concreteMapping&lt;/span>&lt;span>)&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6A737D, #6A737D);"> /*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> )&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> input&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> new&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Input&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">argInput&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> /*&lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);"> ... &lt;/span>&lt;span style="color: light-dark(#6A737D, #6A737D);">*/&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);"> actual&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);"> assertEquals&lt;/span>&lt;span>(&lt;/span>&lt;span>$&lt;/span>&lt;span>expectedValue&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> actual&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">getProperty&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> public&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> function&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);"> providerApplySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">:&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> Generator&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> {&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> yield&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">concreteMapping&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">value&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">argInput&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">something&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expectedValue&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expected-value-A&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#D73A49, #F97583);"> yield&lt;/span>&lt;span> [&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">concreteMapping&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span> [&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">key2&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">value2&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>]&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">argInput&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">something-else&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expectedValue&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&amp;gt;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);"> &amp;#39;&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">expected-value-B&lt;/span>&lt;span style="color: light-dark(#032F62, #9ECBFF);">&amp;#39;&lt;/span>&lt;span>,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> ]&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> }&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>}&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;h3 id="por-ultimo-limpia-lo-que-hiciste">Por último: limpia lo que hiciste.&lt;/h3>
&lt;p>Sí, limpia los tests. Merecen estar tan limpios como tu código de producción. De lo contrario, se pudrirán con el tiempo y
¡permanecerán sucios para tus compañeros y tu yo futuro!&lt;/p>
&lt;p>Por ejemplo, puedes aplicar el refactoring extract method para mover los detalles de implementación (de la creación de los
diferentes objetos) y mantener el mismo nivel de abstracción mientras lees el código del test.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="php">&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">createBusinessLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">concreteMapping&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> this&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">createInput&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">argInput&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#005CC5, #79B8FF);">actual&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);"> =&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> myBusinessLogic&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">applySomeLogic&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">input&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span style="color: light-dark(#6F42C1, #B392F0);">assertEquals&lt;/span>&lt;span>(&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);">expectedValue&lt;/span>&lt;span>,&lt;/span>&lt;span style="color: light-dark(#005CC5, #79B8FF);"> actual&lt;/span>&lt;span style="color: light-dark(#D73A49, #F97583);">.&lt;/span>&lt;span style="color: light-dark(#6F42C1, #B392F0);">getProperty&lt;/span>&lt;span>(&lt;/span>&lt;span>)&lt;/span>&lt;span>)&lt;/span>&lt;span>;&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Por supuesto, todo depende del contexto. ¿Realmente tiene sentido extraer a un método privado
createBusinessLogic() o incluso createInput()? Bueno, eso depende de ti. Depende del número de líneas y, lo más
importante, del nivel de abstracción que pertenece a ese contexto.&lt;/p>
&lt;blockquote>
&lt;p>Solo recuerda: mantén tus métodos pequeños.&lt;/p>
&lt;/blockquote>
&lt;p>Ahora puedes refactorizar el código de producción que cubriste con tests sin ese miedo a romperlo.&lt;/p>
&lt;hr />
&lt;h3 id="todo-junto">Todo junto&lt;/h3>
&lt;script src="https://gist.github.com/Chemaclass&amp;#x2F;07704606fcb337dbb0881c94197c329e.js">&lt;/script>
&lt;script src="https://gist.github.com/Chemaclass&amp;#x2F;9f7f96242153b696b3f8da5c7fa80461.js">&lt;/script>
&lt;hr />
&lt;h2 id="el-codigo-legacy-es-codigo-sin-tests">El código legacy es código sin tests&lt;/h2>
&lt;p>&lt;img src="/images/blog/2020-08-17/footer.jpg" alt="el código legacy es código sin tests" />&lt;/p>
&lt;p>Por supuesto, hay mucho más que aprender
sobre &lt;a href="/es/readings/working-effectively-with-legacy-code/">testing y trabajo con código legacy&lt;/a>. De hecho, especialmente cuando
tratamos con código legacy, encontrarás situaciones donde el código está acoplado de alguna manera que podrías querer mockear
tus clases concretas porque no hay interfaz (todavía) para ello.&lt;/p>
&lt;p>Este libro te presenta muchas técnicas sobre cuándo, por qué, dónde y cómo puedes aplicar estos cambios.&lt;/p>
&lt;blockquote>
&lt;p>Cuando trabajas con código necesitas &lt;strong>retroalimentación&lt;/strong>. La retroalimentación automatizada es la mejor. Por lo tanto, esto es lo primero que necesitas hacer: escribir los tests.&lt;/p>
&lt;/blockquote>
&lt;h3 id="primero-anade-tests-luego-haz-tus-cambios">Primero, añade tests, luego haz tus cambios.&lt;/h3>
&lt;h4 id="cambia-la-menor-cantidad-de-codigo-posible-para-poner-los-tests-en-su-lugar-con-la-receta">Cambia la menor cantidad de código posible para poner los tests en su lugar con la receta:&lt;/h4>
&lt;ol>
&lt;li>Identifica “puntos de cambio” para romper las dependencias de tu código.&lt;/li>
&lt;li>Rompe las dependencias.&lt;/li>
&lt;li>Escribe los tests.&lt;/li>
&lt;li>Haz tus cambios.&lt;/li>
&lt;li>Refactoriza.&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/wRtJRkRIa2s"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Advanced Web Application Architecture</title><subtitle>La guía que lleva tus habilidades de código al siguiente nivel</subtitle><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><published>2020-08-16T00:00:00+00:00</published><updated>2020-08-16T00:00:00+00:00</updated><author><name>
Matthias Noback</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/advance-web-application-architecture/"/><id>https://chemaclass.com/es/readings/advance-web-application-architecture/</id><summary type="html">Cómo desacoplar tu aplicación del framework y la base de datos con PHP moderno y diseño modular</summary><content type="html">&lt;p>Este libro te ayuda a poner en forma tus aplicaciones web. Trae muchas técnicas para desacoplar tu código de la infraestructura (el framework, la base de datos, etc.).&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>La Parte 1 presenta patrones de diseño para separar código de negocio e infraestructura. La Parte 2 muestra cómo estos patrones encajan con conceptos arquitectónicos como capas, puertos y adaptadores (arquitectura Hexagonal). El libro cierra con estrategias de testing y decisiones de diseño.&lt;/p>
&lt;h3 id="lo-que-aprenderas">Lo que aprenderás&lt;/h3>
&lt;ul>
&lt;li>Separar código mezclado en código de negocio e infraestructura usando patrones.&lt;/li>
&lt;li>Dividir tu código en capas con una distinción clara entre puertos y adaptadores.&lt;/li>
&lt;li>Testear aplicaciones desacopladas.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Compra el libro: &lt;a rel="external" href="https://leanpub.com/web-application-architecture">https://leanpub.com/web-application-architecture&lt;/a>&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h3 id="patrones-de-diseno-para-modernizar-codigo-legacy">Patrones de diseño para modernizar código legacy&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/WI1QY6OMglE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Strict Types en PHP</title><subtitle>declare(strict_types=1);</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2020-08-09T00:00:00+00:00</published><updated>2020-08-09T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/strict-types/"/><id>https://chemaclass.com/es/blog/strict-types/</id><summary type="html">Por qué declarar strict_types en PHP mejora la legibilidad del código y previene errores silenciosos de coerción de tipos.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-08-09/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>En diciembre de 2015, PHP 7 introdujo las declaraciones de tipos escalares y la bandera strict types. ¿Qué es esto?&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Lo bueno de declarar un archivo PHP como estricto es que se aplica &lt;strong>solo al archivo actual&lt;/strong>. Asegura tipos estrictos en ese archivo, pero no afecta al resto del proyecto. Puedes migrar de código no estricto a estricto paso a paso, especialmente en archivos o proyectos nuevos.&lt;/p>
&lt;blockquote>
&lt;p>Para habilitar el modo estricto, coloca una directiva declare al principio del archivo. La estrictez de tipado para escalares se configura por archivo. Esta directiva afecta tanto a los parámetros como al tipo de retorno de las funciones.&lt;/p>
&lt;/blockquote>
&lt;h2 id="strict-types-afecta-la-coercion-de-tipos">Strict types afecta la coerción de tipos&lt;/h2>
&lt;p>Usar type hints sin &lt;code>strict_types&lt;/code> puede causar bugs sutiles.&lt;/p>
&lt;p>Sin strict types, &lt;code>int $x&lt;/code> significa “$x debe ser coercionable a int”. Cualquier valor coercionable a int pasaría:&lt;/p>
&lt;ul>
&lt;li>un &lt;code>int&lt;/code> (42 -&amp;gt; 42)&lt;/li>
&lt;li>un &lt;code>float&lt;/code> (13.1459 -&amp;gt; 13)&lt;/li>
&lt;li>un &lt;code>bool&lt;/code> (true -&amp;gt; 1)&lt;/li>
&lt;li>un &lt;code>null&lt;/code> (null -&amp;gt; 0)&lt;/li>
&lt;li>un &lt;code>string&lt;/code> con dígitos al inicio (“15 Trees” -&amp;gt; 15)&lt;/li>
&lt;/ul>
&lt;p>Con &lt;code>strict_types=1&lt;/code>, le dices al motor que &lt;code>int $x&lt;/code> significa que $x debe ser un int real, sin coerción. Tienes la seguridad de que recibes exactamente lo que se pasó, sin conversiones ni pérdida de datos.&lt;/p>
&lt;h2 id="a-quien-le-importa-esta-linea">¿A quién le importa esta línea?&lt;/h2>
&lt;p>&lt;code>declare(strict_types=1);&lt;/code> es más para el lector que para el escritor. Le dice explícitamente:&lt;/p>
&lt;ul>
&lt;li>Los tipos en este archivo se tratan de forma estricta.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>‘strict_types=1’ es más para el lector que para el escritor&lt;/p>
&lt;/blockquote>
&lt;p>El escritor solo necesita mantener esa estrictez mientras escribe. Pero como escritor, deberías preocuparte por tus lectores. Eso incluye a tu yo futuro.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-08-09/footer.jpg" alt="declaración strict_types en php" />&lt;/p>
&lt;hr />
&lt;h2 id="referencias">Referencias&lt;/h2>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://www.php.net/manual/en/migration70.new-features.php#migration70.new-features.scalar-type-declarations">Declaraciones de tipos escalares&lt;/a>&lt;/li>
&lt;li>&lt;a rel="external" href="https://stackoverflow.com/questions/48723637/what-do-strict-types-do-in-php/48723830#48723830">Qué hacen los strict types en PHP&lt;/a>&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>El Arte del Refactoring</title><subtitle>Cuándo, cómo y por qué</subtitle><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2020-06-28T00:00:00+00:00</published><updated>2020-06-28T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-art-of-refactoring/"/><id>https://chemaclass.com/es/blog/the-art-of-refactoring/</id><summary type="html">Si ves algo, en el ámbito de tu tarea actual, que puede mejorarse fácilmente, mejóralo. Y si tienes alguna pregunta al respecto, pregunta.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-06-28/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Si ves algo, en el ámbito de tu tarea actual, que puede mejorarse fácilmente, mejóralo. Y si tienes alguna pregunta al respecto, pregunta.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="que-es-el-refactoring">¿Qué es el refactoring?&lt;/h2>
&lt;p>Refactoring significa mejorar tu código. Puede ser renombrar una variable, extraer líneas en un método privado, o separar responsabilidades de una clase en varias.&lt;/p>
&lt;p>El refactoring demuestra que te importa lo que haces como profesional. Es un tema controvertido desde hace tiempo. Pero eso no debería frenarnos de mejorar la calidad del sistema.&lt;/p>
&lt;h2 id="cuando-y-como-refactorizar">¿Cuándo y cómo refactorizar?&lt;/h2>
&lt;p>Siempre. Dentro del ámbito de tu tarea actual, a menos que sea una tarea planificada específicamente para refactoring de arquitectura.&lt;/p>
&lt;blockquote>
&lt;p>El refactoring debería ser parte del trabajo diario, no una tarea separada.&lt;/p>
&lt;/blockquote>
&lt;p>No necesitamos pedir permiso para refactorizar. ¿Acaso pedimos permiso para hacer nuestro mejor trabajo?&lt;/p>
&lt;p>Para refactorizar bien, la intención debe estar clara. ¿Qué queremos lograr y cómo? El pair programming (o incluso el “pair thinking”) ayuda porque sincroniza dos cerebros y fomenta mejor comprensión mutua.&lt;/p>
&lt;p>Refactorizar de forma colaborativa es fundamental en equipo. No debería ser tabú. Al contrario: ayuda a unificar objetivos y dirección de calidad del código.&lt;/p>
&lt;h3 id="algunos-consejos-sobre-el-como">Algunos consejos sobre el “cómo”&lt;/h3>
&lt;p>Buscamos mejora continua, pero…&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Si tus cambios generan más ruido que ayuda, para. Piensa si valen la pena en el estado actual del sistema. Quizás no es el momento. Quizás estás contaminando el diff con cambios fuera del ámbito. O quizás es demasiado grande para tu tarea actual. En ese caso, mejor crear una tarea de seguimiento.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Si el refactoring es necesario antes de empezar tu tarea, hazlo primero.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;p>Refactorizamos para aumentar productividad: código más legible es código más fácil de entender.&lt;/p>
&lt;h3 id="testing">Testing&lt;/h3>
&lt;p>Necesitas un buen conjunto de tests cubriendo la lógica que vas a cambiar. Sin tests, refactorizar es arriesgado. Por lo general, cuanto más fácil es testear algo, más fácil es reemplazarlo o eliminarlo.&lt;/p>
&lt;p>Puedes leer más sobre cómo el testing está relacionado con la calidad aquí.&lt;/p>
&lt;h2 id="por-que-hacerlo">¿Por qué hacerlo?&lt;/h2>
&lt;p>¿No querrías un sistema mejor con el tiempo?&lt;/p>
&lt;p>El software no es como el vino: no mejora solo. Si quieres un sistema mejor, tienes que trabajar para conseguirlo.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-06-28/footer.jpg" alt="el refactoring como mejora continua" />&lt;/p></content></entry><entry xml:lang="es"><title>Rompe la barrera del No</title><subtitle>Negociar como si tu vida dependiera de ello</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2020-06-12T00:00:00+00:00</published><updated>2020-06-12T00:00:00+00:00</updated><author><name>
Chris Voss</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/never-split-the-difference/"/><id>https://chemaclass.com/es/readings/never-split-the-difference/</id><summary type="html">Técnicas de negociación probadas por el principal negociador de secuestros del FBI</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Chris Voss pasó de patrullar las calles de Kansas City a ser el negociador principal de secuestros internacionales del FBI. Ahora enseña negociación en universidades de élite. Las técnicas de este libro las ha probado en todo tipo de situaciones y funcionan.&lt;/p>
&lt;hr />
&lt;h2 id="aprendizajes">Aprendizajes&lt;/h2>
&lt;ol>
&lt;li>
&lt;p>Negociar empieza por escuchar. Hay que hacer que la conversación gire en torno al otro, validar sus emociones y crear la confianza necesaria para hablar de verdad.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Usa el “espejo” (repetir las últimas palabras del otro) para generar empatía, mantener la conversación viva, ganar tiempo y hacer que el otro revele su estrategia.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>La empatía táctica te ayuda a ver tanto los obstáculos emocionales como los caminos posibles hacia un acuerdo.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Etiquetar emociones (ponerles nombre) te acerca al otro sin necesidad de preguntar por cosas que desconoces.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Un “no” es una oportunidad. Te permite a ti y al otro aclarar qué quieren realmente, descartando lo que no.&lt;/p>
&lt;/li>
&lt;/ol>
&lt;h3 id="video-resumen">Video resumen&lt;/h3>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/QIRk382yJm4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Scrum</title><subtitle>El arte de hacer el doble de trabajo en la mitad de tiempo</subtitle><category term="scrum" scheme="https://chemaclass.com/tags/scrum/" label="Scrum"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2020-06-10T00:00:00+00:00</published><updated>2020-06-10T00:00:00+00:00</updated><author><name>
Jeff Sutherland</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/scrum-the-art-of-doing-twice/"/><id>https://chemaclass.com/es/readings/scrum-the-art-of-doing-twice/</id><summary type="html">Cómo entregar proyectos a tiempo y dentro del presupuesto usando un marco de trabajo ágil que realmente funciona</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Toda organización tiene que lidiar con entregar productos a tiempo y dentro del presupuesto. Da igual el tamaño.&lt;/p>
&lt;p>Scrum te muestra cómo hacerlo. Te explica cómo definir lo que quieres lograr, cómo armar el equipo adecuado y cómo seguir el progreso hasta completar el proyecto con éxito.&lt;/p></content></entry><entry xml:lang="es"><title>Clases Final en PHP | Java | Cualquiera</title><subtitle>Final, o no final, esa es la cuestión</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><published>2020-06-06T00:00:00+00:00</published><updated>2020-06-06T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/final-classes/"/><id>https://chemaclass.com/es/blog/final-classes/</id><summary type="html">Contratos claros, efectos secundarios aislados, testeabilidad, baja complejidad y carga cognitiva, fluidez del código y confianza en ti mismo.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-06-06/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>Contratos claros, efectos secundarios aislados, testeabilidad, baja complejidad y carga cognitiva, fluidez del código y confianza en ti mismo.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h2 id="motivacion">Motivación&lt;/h2>
&lt;h3 id="reduce-la-visibilidad-al-minimo">Reduce la visibilidad al mínimo&lt;/h3>
&lt;p>Cuando una clase es &lt;code>final&lt;/code>, no puede ser extendida. Esto la hace más legible y te asegura que la lógica está limitada a esa clase.&lt;/p>
&lt;h3 id="fomenta-composicion-sobre-herencia">Fomenta “composición sobre herencia”&lt;/h3>
&lt;p>El Principio Abierto-Cerrado dice: abierto para extensión, cerrado para modificación.&lt;/p>
&lt;p>Si decides crear una herencia (por una buena razón, de la que deberías ser consciente), simplemente quita &lt;code>final&lt;/code> y listo.&lt;/p>
&lt;p>Cuando por defecto no puedes extender una clase, te fuerzas a pensar en composición en lugar de herencia.&lt;/p>
&lt;h2 id="por-que-esta-clase-no-es-final">¿Por qué esta clase no es final?&lt;/h2>
&lt;p>Si preferimos composición sobre herencia, deberíamos evitar la herencia tanto como sea posible. La herencia se usa mal a menudo en POO.&lt;/p>
&lt;h3 id="un-concepto-mal-entendido">Un concepto mal entendido&lt;/h3>
&lt;p>Cuando nos enseñaron POO, normalmente empezamos con el ejemplo clásico de herencia.&lt;/p>
&lt;p>Pero cuando Alan Kay creó Smalltalk, la herencia no era el concepto principal. Lo principal era el paso de mensajes: enviar mensajes a objetos que encapsulan datos y lógica, cambiando comportamiento mediante diferentes objetos. Eso es composición. La herencia se hizo tan popular que terminó eclipsando a la composición.&lt;/p>
&lt;h3 id="beneficios">Beneficios&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Contratos claros.&lt;/strong> Usar interfaces te obliga a pensar en comunicación entre objetos.&lt;/li>
&lt;li>&lt;strong>Código aislado, sin efectos secundarios.&lt;/strong> Inyectar solo interfaces elimina efectos secundarios molestos.&lt;/li>
&lt;li>&lt;strong>Testeabilidad.&lt;/strong> Mockear interfaces es muy fácil.&lt;/li>
&lt;li>&lt;strong>Complejidad manejable.&lt;/strong> Todo aislado significa menos cambios en cascada.&lt;/li>
&lt;li>&lt;strong>Baja carga cognitiva.&lt;/strong> Menos complejidad, más foco en lo importante.&lt;/li>
&lt;li>&lt;strong>Flexibilidad.&lt;/strong> Sin acoplamiento innecesario, mover código es más fácil.&lt;/li>
&lt;li>&lt;strong>Confianza.&lt;/strong> Testear código aislado te da seguridad para cambiarlo.&lt;/li>
&lt;/ul>
&lt;h2 id="composicion-sobre-herencia">Composición sobre herencia&lt;/h2>
&lt;p>Si necesitas reconfigurar un objeto, cambiar partes de un algoritmo o reescribir parte de la implementación, considera crear una nueva clase en lugar de sobreescribir una existente.&lt;/p>
&lt;p>¿Necesitas representar una jerarquía donde las subclases sustituyen a las clases padre? Esta sería la situación clásica donde podrías usar herencia. Aun así, el resultado suele ser mejor si heredas de interfaces abstractas, no de clases concretas.&lt;/p>
&lt;h3 id="que-hacer-en-su-lugar">Qué hacer en su lugar&lt;/h3>
&lt;ul>
&lt;li>Usa interfaces para definir contratos entre clases.&lt;/li>
&lt;li>Usa clases finales para implementar esas interfaces.&lt;/li>
&lt;li>Usa composición (inyección de dependencias por constructor) para unir las piezas.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>Interfaces -&amp;gt; Clases finales -&amp;gt; Composición&lt;/p>
&lt;/blockquote>
&lt;p>&lt;img src="/images/blog/2020-06-06/footer.jpg" alt="interfaces, clases finales y composición" />&lt;/p></content></entry><entry xml:lang="es"><title>Siete lenguajes en siete semanas</title><subtitle>Una guía práctica para aprender lenguajes de programación</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="software" scheme="https://chemaclass.com/tags/software/" label="Software"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2020-05-21T00:00:00+00:00</published><updated>2020-05-21T00:00:00+00:00</updated><author><name>
Bruce Tate</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/7-languages-in-7-weeks/"/><id>https://chemaclass.com/es/readings/7-languages-in-7-weeks/</id><summary type="html">Una guía práctica para expandir tu mente como programador explorando paradigmas diferentes</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El Programador Pragmático recomienda aprender un lenguaje nuevo cada año. Pero si uno por año está bien, ¿por qué no siete en siete semanas?&lt;/p>
&lt;p>Este libro te lleva de paseo por Clojure, Haskell, Io, Prolog, Scala, Erlang y Ruby. Aunque tu lenguaje favorito no esté en la lista, vas a ampliar tu forma de pensar al ver estos lenguajes lado a lado. Aprenderás algo valioso de cada uno. Y lo mejor: aprenderás a aprender lenguajes rápido.&lt;/p>
&lt;hr />
&lt;p>Creé este repositorio con todo lo que fui aprendiendo mientras leía y experimentaba con los lenguajes del libro: &lt;a rel="external" href="https://github.com/Chemaclass/7LangIn7Weeks">https://github.com/Chemaclass/7LangIn7Weeks&lt;/a>&lt;/p></content></entry><entry xml:lang="es"><title>La Llamada de Cthulhu</title><subtitle>El relato que dio origen a los Mitos de Cthulhu</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="horror" scheme="https://chemaclass.com/tags/horror/" label="Horror"/><published>2020-05-18T00:00:00+00:00</published><updated>2020-05-18T00:00:00+00:00</updated><author><name>
H. P. Lovecraft</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/call-of-cthulhu/"/><id>https://chemaclass.com/es/readings/call-of-cthulhu/</id><summary type="html">Un monstruo submarino despierta y amenaza a la humanidad. El relato que dio origen a toda una mitología del horror.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Un horripilante monstruo submarino despierta y amenaza a la humanidad. Este relato dio origen a toda una mitología: los Mitos de Cthulhu, con el poder de sembrar terror incluso en los corazones de los Grandes Antiguos.&lt;/p></content></entry><entry xml:lang="es"><title>La Metamorfosis</title><subtitle>Un viajante de comercio despierta convertido en un insecto</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2020-05-16T00:00:00+00:00</published><updated>2020-05-16T00:00:00+00:00</updated><author><name>
Franz Kafka</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/metamorphosis/"/><id>https://chemaclass.com/es/readings/metamorphosis/</id><summary type="html">Gregor Samsa, un viajante de comercio, despierta convertido en un monstruoso insecto. Kafka nunca explicó por qué.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Una novela corta de Franz Kafka, publicada en 1915. Es una de las obras fundamentales de la ficción del siglo XX y se estudia en todo el mundo occidental.&lt;/p>
&lt;p>La historia comienza con Gregor Samsa, un viajante de comercio, que despierta convertido en una criatura monstruosa parecida a un insecto. Kafka nunca explicó la causa de la transformación. El resto de la novela trata sobre los intentos de Gregor de adaptarse a su nueva condición mientras lidia con ser una carga para su familia, que siente repulsión por la criatura en que se ha convertido.&lt;/p></content></entry><entry xml:lang="es"><title>1984</title><subtitle>Una sociedad aterrorizada por una ideología totalitaria</subtitle><category term="fiction" scheme="https://chemaclass.com/tags/fiction/" label="Fiction"/><category term="dystopia" scheme="https://chemaclass.com/tags/dystopia/" label="Dystopia"/><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><published>2020-05-13T00:00:00+00:00</published><updated>2020-05-13T00:00:00+00:00</updated><author><name>
George Orwell</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/1984/"/><id>https://chemaclass.com/es/readings/1984/</id><summary type="html">La visión de Orwell de un futuro totalitario donde todo y todos son esclavos de un régimen tiránico.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Una de las novelas más populares de Gran Bretaña. Está ambientada en una sociedad aterrorizada por una ideología totalitaria propagada por El Partido.&lt;/p>
&lt;p>Winston Smith trabaja para el Ministerio de la Verdad en Londres, ciudad principal de Franja Aérea Uno. El Gran Hermano observa desde cada cartel. La Policía del Pensamiento descubre cada acto de traición. Cuando Winston encuentra el amor con Julia, descubre que la vida no tiene que ser aburrida y gris. Despierta a nuevas posibilidades. A pesar de los helicópteros policiales que sobrevuelan, Winston y Julia empiezan a cuestionar al Partido y se sienten atraídos hacia la conspiración. Pero el Gran Hermano no tolera la disidencia, ni siquiera en la mente. Para quienes tienen pensamientos originales inventaron la Habitación 101…&lt;/p>
&lt;p>La novela acuñó palabras y frases que aparecen regularmente en la cultura popular: “Gran Hermano”, “crimental”, “doblepensar” y “neolengua”.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/T8BA7adK6XA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Arte del Testing: Donde el Diseño se Encuentra con la Calidad</title><subtitle>Desde el punto de vista de un desarrollador de software</subtitle><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><published>2020-04-07T00:00:00+00:00</published><updated>2020-04-07T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/the-art-of-testing/"/><id>https://chemaclass.com/es/blog/the-art-of-testing/</id><summary type="html">Por qué deberías considerar el testing como parte de tu hábito diario de desarrollo y cómo está directamente vinculado a la calidad del software.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2020-04-07/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>¿Por qué considerar el testing parte de tu desarrollo diario? Porque está directamente vinculado a la calidad del software.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>No voy a explicar las diferentes técnicas de testing ni las diferencias entre tests unitarios, de integración, funcionales o end-to-end.&lt;/p>
&lt;p>Me sigue sorprendiendo la falta de experiencia con testing en el mundo del software. Hay una ignorancia generalizada sobre buenas prácticas. Si has trabajado en varios proyectos y equipos, seguro que lo has visto.&lt;/p>
&lt;h3 id="testing-de-software">Testing de software&lt;/h3>
&lt;p>Algunos patrones horribles que he visto (y hecho):&lt;/p>
&lt;ul>
&lt;li>Testear por testear: testear cada archivo individual, confundiéndolo con una “unidad”.&lt;/li>
&lt;li>Mockear cada clase, anulando la implementación real y creando comportamiento falso. Esto da una falsa sensación de cobertura.&lt;/li>
&lt;li>Acoplar código de producción con tests por todas partes. Imposible cambiar nada sin romper tests, aunque la funcionalidad siga funcionando.&lt;/li>
&lt;li>No testear nada porque “ya funciona, ¿para qué perder más tiempo?”&lt;/li>
&lt;/ul>
&lt;p>Una razón principal del testing es verificar el comportamiento esperado del software. Pero el testing puede (y debería) ser mucho más que eso.&lt;/p>
&lt;h3 id="diseno-de-software">Diseño de software&lt;/h3>
&lt;p>El diseño de software abarca desde algoritmos hasta arquitectura. Aunque estos dos niveles tienen necesidades distintas, comparten patrones comunes. Por ejemplo, el testing:&lt;/p>
&lt;blockquote>
&lt;p>Si es fácil de testear, probablemente será debido a un buen diseño.&lt;/p>
&lt;/blockquote>
&lt;h3 id="calidad-del-software">Calidad del software&lt;/h3>
&lt;p>Medir la calidad es difícil. Hay muchas métricas a considerar. Aun así, seguro que podemos estar de acuerdo en esto:&lt;/p>
&lt;blockquote>
&lt;p>Si aspiras a la calidad en tu software, mejor busca un buen diseño.&lt;/p>
&lt;/blockquote>
&lt;p>Testear significa “probar”. ¿Cuántas veces hemos abandonado tests por la complejidad de probar cierta lógica?&lt;/p>
&lt;p>El arte del testing consiste en usar los tests para contribuir al resultado final. Si usamos el testing a nuestro favor, según el contexto, mejoraremos la calidad del producto.&lt;/p>
&lt;p>Por tanto, el testing no solo verifica comportamiento. También guía el software hacia un mejor diseño.&lt;/p>
&lt;p>¿Deberíamos testear todo? Depende del contexto. Habrá situaciones donde los tests no aporten beneficio. Aun así, escribe código como si fuera a ser testeado.&lt;/p>
&lt;p>&lt;img src="/images/blog/2020-04-07/footer.jpg" alt="código testeable y buen diseño" />&lt;/p>
&lt;blockquote>
&lt;p>El código testeable tiende a un mejor diseño y, por lo tanto, a mejor calidad.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Gestión de Alto Rendimiento</title><subtitle>El arte del emprendedor puede resumirse en una palabra: gestionar</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2020-04-03T00:00:00+00:00</published><updated>2020-04-03T00:00:00+00:00</updated><author><name>
Andrew S. Grove</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/high-output-management/"/><id>https://chemaclass.com/es/readings/high-output-management/</id><summary type="html">El ex CEO de Intel comparte cómo construir y dirigir una empresa. Un manual práctico y un manifiesto de gestión.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Un clásico de Silicon Valley. El ex presidente y CEO de Intel comparte su perspectiva sobre cómo construir y dirigir una empresa. Es un manual práctico para navegar escenarios de negocios reales y un manifiesto de gestión que puede cambiar tu forma de trabajar.&lt;/p>
&lt;h3 id="secciones">Secciones&lt;/h3>
&lt;ul>
&lt;li>Apalancamiento gerencial&lt;/li>
&lt;li>Formación&lt;/li>
&lt;li>Motivación&lt;/li>
&lt;li>Reuniones y decisiones&lt;/li>
&lt;li>Reuniones uno a uno&lt;/li>
&lt;li>Delegación y madurez relevante para la tarea&lt;/li>
&lt;li>KPIs&lt;/li>
&lt;li>Evaluaciones de desempeño&lt;/li>
&lt;li>Entrevistas&lt;/li>
&lt;li>Promociones y reciclaje&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Un buen resumen de las conclusiones por Marc Koenig:&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Yi1PSs_bpQ0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Camino del Manager</title><subtitle>Una guía para líderes técnicos que navegan el crecimiento y el cambio</subtitle><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><category term="mentoring" scheme="https://chemaclass.com/tags/mentoring/" label="Mentoring"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2020-03-26T00:00:00+00:00</published><updated>2020-03-26T00:00:00+00:00</updated><author><name>
Camille Fournier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-manager-path/"/><id>https://chemaclass.com/es/readings/the-manager-path/</id><summary type="html">Una guía para líderes técnicos que navegan el crecimiento y el cambio.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="lecciones-clave">Lecciones clave&lt;/h2>
&lt;ol>
&lt;li>Las reuniones uno a uno con tu manager son esenciales para una buena relación laboral.&lt;/li>
&lt;li>El trabajo de un manager es facilitar que su equipo haga las cosas, creando entornos donde el trabajo pueda fluir.&lt;/li>
&lt;li>Mentorear a los nuevos empleados es crítico.&lt;/li>
&lt;li>El feedback funciona mejor cuando lo combinas con coaching.&lt;/li>
&lt;li>Es poco realista pensar que puedes o debes proteger a tu equipo de todo.&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/oxgfehnJ7GE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Agile Limpio</title><subtitle>De Vuelta a lo Básico</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2020-03-12T00:00:00+00:00</published><updated>2020-03-12T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/clean-agile/"/><id>https://chemaclass.com/es/readings/clean-agile/</id><summary type="html">Uncle Bob, uno de los padres fundadores de Agile, vuelve a lo básico: qué fue Agile, qué es y qué será.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Clean Agile viene de Uncle Bob, uno de los padres fundadores de Agile. Fue una de las diecisiete personas que escribieron el &lt;a rel="external" href="https://agilemanifesto.org/">Manifiesto Ágil&lt;/a> en 2001.&lt;/p>
&lt;hr />
&lt;p>El libro trata sobre Agile: lo que fue, lo que es y lo que será. Es un regreso a lo básico que cubre la historia de Agile, qué lo motivó y qué ha pasado desde entonces. Cubre las prácticas básicas y las compara con la variedad actual de procesos ágiles.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/FedQ2NlgxMI"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Programación Extrema Explicada</title><subtitle>Abraza el Cambio</subtitle><category term="xp" scheme="https://chemaclass.com/tags/xp/" label="Xp"/><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="pair-programming" scheme="https://chemaclass.com/tags/pair-programming/" label="Pair Programming"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2020-03-05T00:00:00+00:00</published><updated>2020-03-05T00:00:00+00:00</updated><author><name>
Kent Beck</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/extreme-programming-explained/"/><id>https://chemaclass.com/es/readings/extreme-programming-explained/</id><summary type="html">XP busca producir mejor software y mejor calidad de vida para el equipo. Es el framework ágil más específico en cuanto a prácticas de ingeniería.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="definicion">Definición&lt;/h2>
&lt;p>Extreme Programming (XP) es un framework ágil que busca producir mejor software y mejor calidad de vida para el equipo de desarrollo. Es el más específico de los frameworks ágiles en cuanto a prácticas de ingeniería.&lt;/p>
&lt;hr />
&lt;h2 id="valores">Valores&lt;/h2>
&lt;p>Los cinco valores de XP son comunicación, simplicidad, feedback, coraje y respeto.&lt;/p>
&lt;h3 id="comunicacion">Comunicación&lt;/h3>
&lt;p>El desarrollo de software es un deporte de equipo. Depende de la comunicación para transferir conocimiento entre los miembros. XP enfatiza la comunicación cara a cara, preferiblemente con una pizarra a mano.&lt;/p>
&lt;h3 id="simplicidad">Simplicidad&lt;/h3>
&lt;p>Simplicidad significa “¿qué es lo más simple que funcionará?” El objetivo es evitar el desperdicio y hacer solo lo necesario. Mantener el diseño lo más simple posible facilita el mantenimiento y la revisión. También significa abordar solo los requisitos que conoces ahora, sin intentar predecir el futuro.&lt;/p>
&lt;h3 id="feedback">Feedback&lt;/h3>
&lt;p>Con feedback constante sobre el trabajo previo, los equipos identifican áreas de mejora y ajustan sus prácticas. El equipo construye algo, recoge feedback sobre el diseño e implementación, y ajusta el producto en consecuencia.&lt;/p>
&lt;h3 id="coraje">Coraje&lt;/h3>
&lt;p>Kent Beck definió el coraje como “acción efectiva ante el miedo”. Necesitas coraje para:&lt;/p>
&lt;ul>
&lt;li>Plantear problemas organizacionales que reducen la efectividad del equipo.&lt;/li>
&lt;li>Dejar de hacer algo que no funciona y probar algo diferente.&lt;/li>
&lt;li>Aceptar y actuar según el feedback, aunque sea difícil de escuchar.&lt;/li>
&lt;/ul>
&lt;h3 id="respeto">Respeto&lt;/h3>
&lt;p>Los miembros del equipo necesitan respetarse mutuamente para comunicarse bien, dar y recibir feedback de forma constructiva, y trabajar juntos en diseños y soluciones simples.&lt;/p>
&lt;hr />
&lt;h2 id="principios">Principios&lt;/h2>
&lt;h3 id="humanidad">Humanidad&lt;/h3>
&lt;p>Los seres humanos desarrollan software. El libro menciona 5 cosas que necesitan los desarrolladores para crecer: seguridad básica, logro, pertenencia, crecimiento e intimidad.&lt;/p>
&lt;p>La magia de los grandes equipos es que, una vez que desarrollan confianza, sus miembros se sienten libres de ser más ellos mismos.&lt;/p>
&lt;h3 id="economia">Economía&lt;/h3>
&lt;p>El software cuesta dinero. Alguien pagó o invirtió en él.&lt;/p>
&lt;p>Asegúrate de que lo que haces tenga valor de negocio y sirva a sus necesidades. Resolver primero la necesidad más prioritaria maximiza el valor del proyecto.&lt;/p>
&lt;p>Cuanto antes el software genere dinero, antes el desarrollo será valioso.&lt;/p>
&lt;h3 id="beneficio-mutuo">Beneficio Mutuo&lt;/h3>
&lt;p>El beneficio mutuo en XP busca actividades que beneficien a todos los involucrados: a mí ahora, a mí después, y a los clientes.&lt;/p>
&lt;p>El libro presenta 3 formas de comunicarte con el futuro:&lt;/p>
&lt;ul>
&lt;li>Escribo tests automatizados que me ayudan a diseñar e implementar hoy. Los dejo para que los futuros programadores también los usen.&lt;/li>
&lt;li>Refactorizo para eliminar complejidad accidental. Menos defectos y código más fácil de entender para quien venga después.&lt;/li>
&lt;li>Elijo nombres de un conjunto coherente de metáforas. Acelera mi desarrollo y hace el código más claro para nuevos programadores.&lt;/li>
&lt;/ul>
&lt;h3 id="auto-similaridad">Auto-Similaridad&lt;/h3>
&lt;p>Copiar la estructura de una solución a un nuevo contexto.&lt;/p>
&lt;p>Por ejemplo, la estructura básica del desarrollo: escribes un test que falla y luego lo haces funcionar. Esta estructura opera a todas las escalas. Ojo: es un buen comienzo, pero no siempre funciona.&lt;/p>
&lt;h3 id="mejora">Mejora&lt;/h3>
&lt;p>Haz lo mejor que puedas hoy, pero esfuérzate por hacerlo mejor mañana. XP brilla aquí: se trata de mejorar siempre.&lt;/p>
&lt;blockquote>
&lt;p>Pon la mejora a trabajar sin esperar la perfección. Encuentra un punto de partida, comienza y mejora desde ahí.&lt;/p>
&lt;/blockquote>
&lt;h3 id="diversidad">Diversidad&lt;/h3>
&lt;p>Los equipos necesitan personas de diferentes orígenes, experiencias y actitudes. Así tienen diferentes formas de pensar y resolver problemas.&lt;/p>
&lt;p>Los programadores deberían trabajar juntos en el problema y valorar ambas opiniones.&lt;/p>
&lt;h3 id="reflexion">Reflexión&lt;/h3>
&lt;p>Los buenos equipos reflexionan después de la acción, regularmente. Piensan sobre por qué y cómo están trabajando.&lt;/p>
&lt;ul>
&lt;li>¿Por qué tuvimos éxito? ¿Qué deberíamos seguir haciendo?&lt;/li>
&lt;li>¿Por qué fallamos? ¿Qué podemos hacer mejor?&lt;/li>
&lt;/ul>
&lt;p>Aunque todo parezca perfecto, siempre hay espacio para mejorar:&lt;/p>
&lt;ul>
&lt;li>¿Por qué las cosas parecen perfectas? ¿Qué hacemos bien? ¿Qué podemos mejorar?&lt;/li>
&lt;/ul>
&lt;h3 id="flujo">Flujo&lt;/h3>
&lt;p>El flujo en desarrollo de software es entregar valor constante participando en todas las actividades simultáneamente. No entregues software en grandes porciones. Despliega incrementos más pequeños con más frecuencia.&lt;/p>
&lt;h3 id="oportunidad">Oportunidad&lt;/h3>
&lt;p>Aprende a ver los problemas como oportunidades para aprender y mejorar.&lt;/p>
&lt;blockquote>
&lt;p>Parte de ser extremo es elegir conscientemente transformar cada problema en una oportunidad: para el crecimiento personal, profundizar relaciones y mejorar el software.&lt;/p>
&lt;/blockquote>
&lt;h3 id="redundancia">Redundancia&lt;/h3>
&lt;p>Los problemas difíciles deberían resolverse de múltiples maneras.&lt;/p>
&lt;blockquote>
&lt;p>El costo de la redundancia se paga con creces por los ahorros de evitar un desastre.&lt;/p>
&lt;/blockquote>
&lt;h3 id="fracaso">Fracaso&lt;/h3>
&lt;p>A veces no sabes qué camino tomar. Prueba las ideas que tienes, aunque fallen. El fracaso no es desperdicio, sino aprendizaje.&lt;/p>
&lt;p>Cuidado con la trampa de discutir o pensar eternamente sin hacer nada.&lt;/p>
&lt;blockquote>
&lt;p>Cuando no sabes qué hacer, arriesgarte al fracaso puede ser el camino más corto hacia el éxito.&lt;/p>
&lt;/blockquote>
&lt;h3 id="calidad">Calidad&lt;/h3>
&lt;p>Los proyectos no van más rápido bajando la calidad. Suele ser al revés. Resulta en entregas más tardías y menos predecibles por el tiempo dedicado a corregir bugs.&lt;/p>
&lt;p>Aumentar la calidad suele resultar en entregas más rápidas.&lt;/p>
&lt;blockquote>
&lt;p>La preocupación por la calidad no es excusa para la inacción. Si no conoces una forma limpia de hacer algo que hay que hacer, hazlo lo mejor que puedas. Si conoces una forma limpia pero tomaría demasiado tiempo, haz el trabajo tan bien como el tiempo te permita. Resuélvelo de forma limpia después.&lt;/p>
&lt;/blockquote>
&lt;h3 id="pasos-pequenos">Pasos Pequeños&lt;/h3>
&lt;p>Da pasos pequeños. Hacer grandes cambios de golpe es peligroso. Las personas y equipos pueden dar muchos pasos pequeños y parecer que avanzan rápido.&lt;/p>
&lt;blockquote>
&lt;p>Los pasos pequeños reconocen que su sobrecarga es mucho menor que cuando un equipo retrocede desperdiciando cambios grandes abortados.&lt;/p>
&lt;/blockquote>
&lt;h3 id="responsabilidad-aceptada">Responsabilidad Aceptada&lt;/h3>
&lt;blockquote>
&lt;p>La responsabilidad no puede asignarse; solo puede aceptarse. Si alguien intenta darte responsabilidad, solo tú puedes decidir si la aceptas o no.&lt;/p>
&lt;/blockquote>
&lt;hr />
&lt;h2 id="practicas">Prácticas&lt;/h2>
&lt;p>Se pueden hacer de forma aislada, pero muchos equipos han descubierto que algunas prácticas refuerzan a otras. Hacerlas juntas elimina los riesgos típicos del desarrollo de software.&lt;/p>
&lt;h3 id="sentarse-juntos">Sentarse Juntos&lt;/h3>
&lt;p>La comunicación es uno de los cinco valores de XP. Haz que tu equipo se siente junto en el mismo espacio sin barreras como paredes de cubículos.&lt;/p>
&lt;h3 id="equipo-completo">Equipo Completo&lt;/h3>
&lt;p>Incluye personas con todas las habilidades y perspectivas necesarias para que el proyecto tenga éxito.&lt;/p>
&lt;h3 id="espacio-de-trabajo-informativo">Espacio de Trabajo Informativo&lt;/h3>
&lt;p>Configura el espacio para facilitar la comunicación cara a cara, permite algo de privacidad cuando la necesiten, y haz el trabajo transparente para el equipo y las partes interesadas.&lt;/p>
&lt;h3 id="trabajo-energizado">Trabajo Energizado&lt;/h3>
&lt;p>Eres más efectivo en el desarrollo de software cuando estás enfocado y libre de distracciones.&lt;/p>
&lt;h3 id="programacion-en-parejas">Programación en Parejas&lt;/h3>
&lt;p>Todo el software de producción lo desarrollan dos personas en la misma máquina. Dos cerebros y cuatro ojos son mejores que un cerebro y dos ojos. Obtienes revisión de código continua y respuestas más rápidas a problemas que podrían bloquear a una persona sola.&lt;/p>
&lt;p>Los equipos que usan programación en parejas descubren que mejora la calidad sin tomar el doble de tiempo. Resuelven problemas más rápido y se mantienen más enfocados, escribiendo menos código para lograr lo mismo.&lt;/p>
&lt;p>Los programadores en pareja:&lt;/p>
&lt;ul>
&lt;li>Se mantienen mutuamente en la tarea.&lt;/li>
&lt;li>Hacen lluvia de ideas sobre mejoras al sistema.&lt;/li>
&lt;li>Clarifican ideas.&lt;/li>
&lt;li>Toman la iniciativa cuando el compañero está atascado, reduciendo la frustración.&lt;/li>
&lt;li>Se hacen mutuamente responsables de las prácticas del equipo.&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>La programación en parejas es un diálogo entre dos personas programando simultáneamente (analizando, diseñando y probando) e intentando programar mejor.&lt;/p>
&lt;/blockquote>
&lt;p>Si necesitas privacidad y tiempo para trabajar en una idea, adelante. Necesitamos tanto compañía como privacidad. Rota parejas frecuentemente y toma descansos: el pairing puede ser agotador, pero es gratificante.&lt;/p>
&lt;h3 id="historias">Historias&lt;/h3>
&lt;p>Describe lo que el producto debería hacer en términos significativos para clientes y usuarios. Son descripciones cortas de cosas que los usuarios quieren hacer. Sirven para planificar y como recordatorios para conversaciones más detalladas.&lt;/p>
&lt;p>Dale a las historias un título corto y una descripción. Escríbelas en tarjetas y ponlas en una pared visible.&lt;/p>
&lt;p>En XP las historias se estiman muy temprano. Esto hace que el equipo piense en cómo obtener el mayor retorno de la pequeña inversión.&lt;/p>
&lt;h3 id="ciclo-semanal">Ciclo Semanal&lt;/h3>
&lt;p>El Ciclo Semanal es una iteración. El equipo se reúne el primer día de la semana para reflexionar sobre el progreso. El cliente elige las historias que quiere entregar esa semana, y el equipo determina cómo abordarlas.&lt;/p>
&lt;p>La idea es producir algo para mostrar al cliente y obtener feedback.&lt;/p>
&lt;h3 id="build-de-diez-minutos">Build de Diez Minutos&lt;/h3>
&lt;p>El objetivo es construir automáticamente todo el sistema y ejecutar todos los tests en diez minutos.&lt;/p>
&lt;h3 id="integracion-continua">Integración Continua&lt;/h3>
&lt;p>Los cambios de código se prueban inmediatamente al añadirse al código base. El beneficio: detectas y corriges problemas de integración antes.&lt;/p>
&lt;p>Requiere disciplina extra y depende mucho del Build de Diez Minutos y el Desarrollo Test-First.&lt;/p>
&lt;h3 id="programacion-test-first">Programación Test-First&lt;/h3>
&lt;blockquote>
&lt;p>Escribe un test automatizado que falle antes de cambiar cualquier código.&lt;/p>
&lt;/blockquote>
&lt;p>El libro menciona 4 problemas que aborda:&lt;/p>
&lt;ul>
&lt;li>
&lt;p>Expansión del alcance: Es fácil dejarse llevar y poner código “por si acaso”. Al declarar explícitamente lo que el programa debe hacer, te das un foco. Si quieres ese otro código, escribe otro test después.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Acoplamiento y cohesión: Si es difícil escribir un test, tienes un problema de diseño, no de testing. El código débilmente acoplado y altamente cohesivo es fácil de probar.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Confianza: Es difícil confiar en el autor de código que no funciona. Al escribir código limpio que funciona y demostrar tus intenciones con tests, das a tus compañeros razones para confiar en ti.&lt;/p>
&lt;/li>
&lt;li>
&lt;p>Ritmo: Es fácil perderse horas programando. Con test-first, siempre sabes qué hacer: escribir otro test o hacer que el test roto funcione. Se desarrolla un ritmo natural: test, código, refactorizar, test, código, refactorizar.&lt;/p>
&lt;/li>
&lt;/ul>
&lt;h3 id="diseno-incremental">Diseño Incremental&lt;/h3>
&lt;blockquote>
&lt;p>Invierte en el diseño del sistema todos los días.&lt;/p>
&lt;/blockquote>
&lt;p>Haces un poco de trabajo inicial para entender el diseño general, y luego profundizas en los detalles cuando entregas características específicas.&lt;/p>
&lt;p>Este enfoque reduce el costo de los cambios y te permite tomar decisiones de diseño basándote en la información más actual.&lt;/p>
&lt;hr />
&lt;h2 id="roles">Roles&lt;/h2>
&lt;p>XP especifica prácticas, pero no establece roles específicos. Según la fuente, o no hay orientación, o hay descripciones de cómo los roles tradicionales se comportan en proyectos XP.&lt;/p>
&lt;h3 id="el-cliente">El Cliente&lt;/h3>
&lt;p>Responsable de tomar todas las decisiones de negocio del proyecto.&lt;/p>
&lt;p>Se asume que es una sola persona, pero la experiencia muestra que una persona no puede proporcionar toda la información de negocio de un proyecto.&lt;/p>
&lt;h3 id="el-desarrollador">El Desarrollador&lt;/h3>
&lt;p>Como XP no necesita definición de roles, todos (excepto el cliente y un par de roles secundarios) se llaman desarrolladores. Son responsables de realizar las historias identificadas por el Cliente.&lt;/p>
&lt;h3 id="el-rastreador">El Rastreador&lt;/h3>
&lt;p>Su propósito es llevar el seguimiento de métricas relevantes para rastrear el progreso e identificar áreas de mejora.&lt;/p>
&lt;h3 id="el-coach">El Coach&lt;/h3>
&lt;p>Usualmente un consultor externo (o alguien de otra parte de la organización) que ha usado XP antes. Ayuda a mentorear al equipo en las prácticas XP y a mantener la autodisciplina.&lt;/p>
&lt;hr />
&lt;h4 id="que-es-xp-en-2-min">¿Qué es XP? (en 2 min)&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/hbFOwqYIOcU"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h4 id="tech-talk-de-kent-beck-xp-20-anos-despues">Tech Talk de Kent Beck: XP 20 años después&lt;/h4>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/cGuTmOUdFbo"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Symfony 5</title><subtitle>Symfony 5: La Vía Rápida</subtitle><category term="php" scheme="https://chemaclass.com/tags/php/" label="Php"/><category term="symfony" scheme="https://chemaclass.com/tags/symfony/" label="Symfony"/><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><published>2020-02-20T00:00:00+00:00</published><updated>2020-02-20T00:00:00+00:00</updated><author><name>
Fabien Potencier</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/symfony-5/"/><id>https://chemaclass.com/es/readings/symfony-5/</id><summary type="html">Una guía práctica del creador de Symfony para desarrollar aplicaciones web desde cero hasta producción.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Escrito por el creador de Symfony, este libro presenta un enfoque práctico para desarrollar aplicaciones web con Symfony 5: desde cero hasta producción. Si estás descubriendo Symfony por primera vez o quieres refrescar tus conocimientos, esta guía te da una introducción completa a las aplicaciones modernas con Symfony.&lt;/p></content></entry><entry xml:lang="es"><title>Cómo Mejorar tu Charla Técnica (o Cualquier Otra Presentación)</title><subtitle>Algunos consejos para mejorar tus habilidades de comunicación</subtitle><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-18T00:00:00+00:00</published><updated>2019-11-18T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/blog/improve-your-tech-talk/"/><id>https://chemaclass.com/es/blog/improve-your-tech-talk/</id><summary type="html">A todos nos ha pasado estar en reuniones que parecían una pérdida de tiempo, con un monólogo difícil de seguir o menos interesante de lo que podría ser. Vamos a arreglar esto.</summary><content type="html">&lt;p>&lt;img src="/images/blog/2019-11-18/cover.jpg" alt="blog-cover" />&lt;/p>
&lt;p>A todos nos ha pasado estar en reuniones que parecían una pérdida de tiempo, con un “monólogo” difícil de seguir o menos interesante de lo que podría ser.
Vamos a arreglar esto.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;p>Por eso estuve pensando en ello e intenté obtener algunas claves para mejorar su calidad general. Se aplica a todas las presentaciones, pero también a las charlas técnicas y otras presentaciones técnicas en las que los ingenieros suelen estar involucrados.&lt;/p>
&lt;h2 id="estructura-de-la-charla">Estructura de la charla&lt;/h2>
&lt;p>Para explicar cómo creo que debería ser una buena presentación, abordaré tres temas principales relevantes para estructurar y diseñar tu presentación.&lt;/p>
&lt;ol>
&lt;li>Contenido de la presentación: ¿qué mensaje quieres transmitir, a quién y cómo?&lt;/li>
&lt;li>Diseño y maquetación: cómo puedes diseñar una presentación fácil de seguir que apoye tu charla en lugar de desviar la atención de lo que realmente intentas decir.&lt;/li>
&lt;li>Por último, creo que la audiencia también es responsable de que una charla técnica sea exitosa, así que añadiré un recordatorio sobre el rol y las responsabilidades de los oyentes.&lt;/li>
&lt;/ol>
&lt;p>&lt;img src="/images/blog/2019-11-18/talking.jpg" alt="persona hablando ante una audiencia" />&lt;/p>
&lt;h3 id="considera-tu-audiencia">Considera tu audiencia&lt;/h3>
&lt;p>Cuando prepares tu presentación, pregúntate:&lt;/p>
&lt;ul>
&lt;li>¿Quién asiste a la charla?&lt;/li>
&lt;li>¿Qué formación tienen?&lt;/li>
&lt;li>¿Qué posición ocupan?&lt;/li>
&lt;li>¿Qué información es relevante para ellos?&lt;/li>
&lt;li>¿Tienen que conocer todas las palabras clave que te gustaría usar?&lt;/li>
&lt;/ul>
&lt;h3 id="introduce-el-tema">Introduce el tema&lt;/h3>
&lt;p>Crea algo de atmósfera. Intenta responder estas preguntas:&lt;/p>
&lt;ul>
&lt;li>¿Por qué deberían escucharte?&lt;/li>
&lt;li>¿Por qué deberían pasar su tiempo en otra reunión?&lt;/li>
&lt;li>¿Qué habrán aprendido al final de la charla?&lt;/li>
&lt;li>¿Cuál es tu mensaje principal?&lt;/li>
&lt;/ul>
&lt;p>Cada reunión debería tener un resultado tangible y un objetivo claro. Tenlo en mente.&lt;/p>
&lt;h3 id="crea-una-linea-argumental">Crea una línea argumental&lt;/h3>
&lt;ul>
&lt;li>Al preparar el contenido principal de tu charla, piensa en una línea argumental que conecte tus argumentos. Esto facilita que la audiencia te siga.&lt;/li>
&lt;li>Limítate a los mensajes necesarios para explicar tu idea o concepto.&lt;/li>
&lt;li>Deja fuera cualquier información innecesaria que no sea relevante para el núcleo de tu mensaje.&lt;/li>
&lt;/ul>
&lt;h3 id="construye-una-conclusion">Construye una conclusión&lt;/h3>
&lt;p>Resume la(s) conclusión(es) principal(es) de forma concisa:&lt;/p>
&lt;ul>
&lt;li>¿Cuál es la conclusión de esta reunión?&lt;/li>
&lt;li>¿Cuáles son los aprendizajes de esta reunión?&lt;/li>
&lt;li>¿Cuáles son las preguntas abiertas o los siguientes pasos?&lt;/li>
&lt;/ul>
&lt;p>&lt;img src="/images/blog/2019-11-18/books.jpg" alt="pila de libros" />&lt;/p>
&lt;h2 id="diseno-y-maquetacion">Diseño y maquetación&lt;/h2>
&lt;h3 id="escribe-menos-habla-mas">Escribe menos, habla más&lt;/h3>
&lt;ul>
&lt;li>Una charla técnica trata sobre aprender nuevas ideas y conceptos.&lt;/li>
&lt;li>Una presentación debería apoyar tu charla, no reemplazar o replicar lo que has dicho.&lt;/li>
&lt;li>Cuantas más palabras en la diapositiva, menos se recordarán.&lt;/li>
&lt;li>Usa visuales/gráficos que apoyen tu charla en lugar de texto adicional.&lt;/li>
&lt;/ul>
&lt;h3 id="fuentes-grandes">Fuentes grandes&lt;/h3>
&lt;p>Si tienes código que presentar, considera:&lt;/p>
&lt;ul>
&lt;li>Si es una imagen: usa fuentes grandes dentro. Recomiendo usar https://carbon.now.sh/ para snippets simples. O simplemente capturas de pantalla de tu IDE favorito.&lt;/li>
&lt;li>Si programas en vivo: prepara tu editor de antemano. Usa el Modo Presentación de tu IDE.&lt;/li>
&lt;/ul>
&lt;h2 id="rol-de-la-audiencia">Rol de la audiencia&lt;/h2>
&lt;h3 id="responsabilidades-del-asistente">Responsabilidades del asistente&lt;/h3>
&lt;ul>
&lt;li>Nada de uso innecesario del móvil, como Twitter, Instagram, Facebook, WhatsApp, Telegram, etc.&lt;/li>
&lt;li>Guarda tus preguntas para el tiempo de preguntas, a menos que el presentador mencione al principio que puedes preguntar en cualquier momento. Normalmente es mejor no interrumpir el tema, así que podemos hacer las preguntas al final.&lt;/li>
&lt;li>Muestra interés en el tema. El presentador ha dedicado tiempo a preparar las diapositivas para ti.&lt;/li>
&lt;li>Comparte el entusiasmo del presentador por el tema. Esto también es responsabilidad del presentador: ambos deberíais tener ganas de aprender más sobre el tema.&lt;/li>
&lt;/ul>
&lt;h3 id="preguntas-internas">Preguntas internas&lt;/h3>
&lt;ul>
&lt;li>¿Valió la pena el tiempo que todos pasamos en esta sala?&lt;/li>
&lt;li>¿Nos arrepentimos de haber asistido a esta reunión?&lt;/li>
&lt;/ul>
&lt;p>Al final de la reunión, deberíamos hacernos estas preguntas para mejorar. Pide opiniones a otras personas para que podamos crecer más y juntos.&lt;/p>
&lt;p>&lt;img src="/images/blog/2019-11-18/footer.jpg" alt="audiencia en una presentación" />&lt;/p></content></entry><entry xml:lang="es"><title>Hábitos Atómicos</title><subtitle>Una forma sencilla y probada de construir buenos hábitos y dejar los malos</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2019-11-12T00:00:00+00:00</published><updated>2019-11-12T00:00:00+00:00</updated><author><name>
James Clear</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/atomic-habits/"/><id>https://chemaclass.com/es/readings/atomic-habits/</id><summary type="html">Solemos creer que para cambiar nuestra vida hay que pensar en grande. James Clear propone otra cosa: el cambio real viene del efecto acumulado de cientos de pequeñas decisiones.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>Solemos creer que para cambiar nuestra vida hay que pensar en grande. James Clear propone otra cosa: el cambio real viene del efecto acumulado de cientos de pequeñas decisiones. Las llama hábitos atómicos.&lt;/p>
&lt;h3 id="aprendizajes">Aprendizajes&lt;/h3>
&lt;ul>
&lt;li>Enfócate más en sistemas y procesos y menos en metas&lt;/li>
&lt;li>Cambia cómo te identificas a ti mismo&lt;/li>
&lt;li>El entorno es más importante que estar motivado&lt;/li>
&lt;li>Para romper un mal hábito, reduce la exposición a las señales que lo causan&lt;/li>
&lt;li>Combina una acción que quieres hacer con una acción que necesitas hacer&lt;/li>
&lt;li>En lugar de decir “tengo que”, di “puedo”&lt;/li>
&lt;li>No intentes hacer un hábito perfecto, solo repítelo&lt;/li>
&lt;li>Reduce la fricción para buenos hábitos y aumenta la fricción para malos hábitos&lt;/li>
&lt;li>Para que algo no parezca una tarea, hazlo durante períodos cortos de tiempo&lt;/li>
&lt;li>Para lograr metas a largo plazo, haz que los pequeños hábitos sean gratificantes&lt;/li>
&lt;li>Nunca faltes más de una vez a un hábito&lt;/li>
&lt;/ul>
&lt;p>Escribí un artículo sobre este tema: &lt;a href="/es/blog/the-process-itself-is-the-goal/">El proceso en sí mismo es la meta&lt;/a>&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/YT7tQzmGRLA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Trabajando con código legado</title><subtitle>Estrategias para trabajar con código heredado</subtitle><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><published>2019-07-01T00:00:00+00:00</published><updated>2019-07-01T00:00:00+00:00</updated><author><name>
Michael Feathers</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/working-effectively-with-legacy-code/"/><id>https://chemaclass.com/es/readings/working-effectively-with-legacy-code/</id><summary type="html">Estrategias prácticas para lidiar con grandes bases de código sin tests. Cómo añadir tests, romper dependencias y refactorizar con seguridad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="que-es-codigo-legacy">¿Qué es código legacy?&lt;/h2>
&lt;blockquote>
&lt;p>El código legacy es simplemente código sin tests.&lt;/p>
&lt;/blockquote>
&lt;h3 id="beneficios-de-los-tests">Beneficios de los tests&lt;/h3>
&lt;p>El comportamiento es clave para entender los beneficios del testing:&lt;/p>
&lt;blockquote>
&lt;p>El comportamiento es lo más importante del software. Los usuarios dependen de él. Les gusta que añadamos funcionalidad (si es lo que querían), pero si cambiamos o rompemos comportamiento del que dependen, pierden la confianza.&lt;/p>
&lt;/blockquote>
&lt;h3 id="como-implementar-tests-en-bases-de-codigo-legacy">Cómo implementar tests en bases de código legacy&lt;/h3>
&lt;p>Para cambiar código necesitas tests. Pero para añadir tests muchas veces tienes que cambiar código.&lt;/p>
&lt;p>El enfoque sugerido:&lt;/p>
&lt;ol>
&lt;li>Identificar puntos de cambio.&lt;/li>
&lt;li>Encontrar puntos de test.&lt;/li>
&lt;li>Romper dependencias.&lt;/li>
&lt;li>Escribir tests.&lt;/li>
&lt;li>Hacer cambios y refactorizar.&lt;/li>
&lt;/ol>
&lt;p>Un término útil es “&lt;strong>costura&lt;/strong>” (seam): &lt;strong>un lugar donde puedes cambiar el comportamiento sin editar ese código directamente&lt;/strong>. Como la costura en la ropa, donde dos partes se unen.
En software, &lt;strong>estos lugares suelen tener interfaces bien definidas&lt;/strong>. Puedes aprovecharlos para cambiar implementaciones con inyección de dependencias o mocking en tests.&lt;/p>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/wRtJRkRIa2s"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>El Arte de la Guerra</title><subtitle>¿Cómo debemos comportarnos en una batalla?</subtitle><category term="philosophy" scheme="https://chemaclass.com/tags/philosophy/" label="Philosophy"/><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="leadership" scheme="https://chemaclass.com/tags/leadership/" label="Leadership"/><published>2018-08-10T00:00:00+00:00</published><updated>2018-08-10T00:00:00+00:00</updated><author><name>
Sun Tzu</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-art-of-war/"/><id>https://chemaclass.com/es/readings/the-art-of-war/</id><summary type="html">Antiguo tratado militar chino de Sun Tzu. Estrategia, táctica y sabiduría aplicable mucho más allá del campo de batalla.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>El texto tiene 13 capítulos, cada uno dedicado a un aspecto de la guerra. Se considera una obra definitiva sobre estrategia y táctica militar.&lt;/p>
&lt;p>Es el más famoso de los Siete Clásicos Militares de China. Durante dos mil años ha sido el tratado militar más importante de Asia.&lt;/p>
&lt;p>Ha influido en el pensamiento militar de Oriente y Occidente, en tácticas de negocios, estrategia legal y mucho más.&lt;/p>
&lt;h3 id="citas">Citas&lt;/h3>
&lt;ul>
&lt;li>Aparenta debilidad cuando seas fuerte, y fortaleza cuando seas débil.&lt;/li>
&lt;li>Si el enemigo es superior en fuerza, evítalo.&lt;/li>
&lt;li>Ataca donde no esté preparado. Aparece donde no te esperen.&lt;/li>
&lt;li>El general que pierde una batalla hace pocas consideraciones de antemano.&lt;/li>
&lt;li>No hay país que se haya beneficiado de una guerra prolongada.&lt;/li>
&lt;li>La excelencia suprema es romper la resistencia del enemigo sin luchar.&lt;/li>
&lt;li>Si conoces al enemigo y te conoces a ti mismo, no temas cien batallas. Si te conoces pero no al enemigo, por cada victoria sufrirás una derrota. Si no conoces ni al enemigo ni a ti mismo, perderás siempre.&lt;/li>
&lt;li>Puedes saber cómo conquistar sin ser capaz de hacerlo.&lt;/li>
&lt;li>El estratega victorioso busca la batalla solo después de haber asegurado la victoria.&lt;/li>
&lt;li>En la batalla solo hay dos métodos de ataque: el directo y el indirecto.&lt;/li>
&lt;li>Un ejército puede marchar grandes distancias sin sufrir si va por territorio donde el enemigo no está.&lt;/li>
&lt;li>Tendrás éxito si solo atacas lugares sin defensa.&lt;/li>
&lt;li>Las tácticas militares son como el agua: el agua huye de lo alto y corre hacia abajo. En la guerra, evita lo fuerte y golpea lo débil.&lt;/li>
&lt;li>Que tus planes sean oscuros como la noche. Cuando te muevas, cae como un rayo.&lt;/li>
&lt;li>Reflexiona y delibera antes de actuar.&lt;/li>
&lt;li>El general inteligente evita al ejército cuando su moral está alta y lo ataca cuando está cansado y quiere volver.&lt;/li>
&lt;li>No avances cuesta arriba contra el enemigo ni te opongas cuando baja.&lt;/li>
&lt;li>El arte de la guerra enseña a no confiar en que el enemigo no venga, sino en estar preparado para recibirlo.&lt;/li>
&lt;li>Abre camino por rutas inesperadas. Ataca puntos desguarnecidos.&lt;/li>
&lt;li>Quienes enfrentan la muerte pueden lograr cualquier cosa.&lt;/li>
&lt;li>Para dirigir un ejército, establece un estándar de coraje que todos deban alcanzar.&lt;/li>
&lt;li>Si es ventajoso, avanza. Si no, quédate donde estás.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/aF2pCff3ocg"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Arquitectura Limpia</title><subtitle>Guía del artesano para la estructura y diseño de software</subtitle><category term="architecture" scheme="https://chemaclass.com/tags/architecture/" label="Architecture"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="ddd" scheme="https://chemaclass.com/tags/ddd/" label="Ddd"/><published>2018-06-04T00:00:00+00:00</published><updated>2018-06-04T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/clean-architecture/"/><id>https://chemaclass.com/es/readings/clean-architecture/</id><summary type="html">Cómo estructurar y diseñar software de forma profesional. Principios SOLID, componentes y capas explicados con claridad.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="principios-de-diseno-de-codigo-solid">Principios de diseño de código (SOLID)&lt;/h3>
&lt;ul>
&lt;li>&lt;strong>Responsabilidad Única&lt;/strong>: una clase debe tener una sola razón para cambiar. O en su versión nueva: un módulo responde ante un solo actor.&lt;/li>
&lt;li>&lt;strong>Abierto-cerrado&lt;/strong>: abierta para extensión, cerrada para modificación.&lt;/li>
&lt;li>&lt;strong>Sustitución de Liskov&lt;/strong>: puedes reemplazar objetos por instancias de sus subtipos sin romper el programa.&lt;/li>
&lt;li>&lt;strong>Segregación de Interfaces&lt;/strong>: mejor muchas interfaces específicas que una general.&lt;/li>
&lt;li>&lt;strong>Inversión de Dependencias&lt;/strong>: depende de abstracciones, no de implementaciones concretas.&lt;/li>
&lt;/ul>
&lt;h3 id="principios-de-componentes">Principios de componentes&lt;/h3>
&lt;h4 id="cohesion-de-componentes">Cohesión de componentes&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Equivalencia Reutilización/Liberación&lt;/strong>: las clases reutilizadas juntas deben liberarse juntas. Mismo número de versión y changelog adecuado.&lt;/li>
&lt;li>&lt;strong>Cierre Común&lt;/strong>: las clases que cambian juntas van juntas. Es el principio de responsabilidad única a nivel de componente.&lt;/li>
&lt;li>&lt;strong>Reutilización Común&lt;/strong>: no obligues a los usuarios a depender de lo que no necesitan. Segregación de interfaces a nivel de componente.&lt;/li>
&lt;/ul>
&lt;h4 id="acoplamiento-de-componentes">Acoplamiento de componentes&lt;/h4>
&lt;ul>
&lt;li>&lt;strong>Dependencias Acíclicas&lt;/strong>: sin ciclos en el grafo de dependencias. Los ciclos fuerzan a liberar componentes juntos. Usa inversión de dependencias para romperlos.&lt;/li>
&lt;li>&lt;strong>Dependencia Estable&lt;/strong>: los componentes menos estables dependen de los más estables. Depende en dirección de la estabilidad.&lt;/li>
&lt;li>&lt;strong>Abstracciones Estables&lt;/strong>: los componentes estables deben ser abstractos. Ejemplo: una política de alto nivel que se extiende siguiendo abierto-cerrado.&lt;/li>
&lt;/ul>
&lt;h3 id="principios-de-arquitectura">Principios de arquitectura&lt;/h3>
&lt;h4 id="estableciendo-limites">Estableciendo límites&lt;/h4>
&lt;p>Los límites separan elementos de software: lo que importa de lo que no, lo de alto nivel de lo de bajo nivel. Si el código de alto nivel depende del de bajo nivel, los cambios se propagan hacia arriba. Ponemos un límite usando polimorfismo para invertir el flujo. Esto es el Principio de Inversión de Dependencias de SOLID.&lt;/p>
&lt;h4 id="separando-capas">Separando capas&lt;/h4>
&lt;p>Cuatro capas principales (aunque puede variar):&lt;/p>
&lt;ul>
&lt;li>&lt;strong>Entidades&lt;/strong>: objetos con lógica de negocio crítica. Ejemplo: un banco que no da préstamos a clientes sin cierta puntuación crediticia. Se comparten entre aplicaciones de la empresa.&lt;/li>
&lt;li>&lt;strong>Casos de uso&lt;/strong>: reglas de negocio específicas de la aplicación. Ejemplo: la secuencia de pantallas para hacer una transferencia.&lt;/li>
&lt;li>&lt;strong>Adaptadores de interfaz&lt;/strong>: gateways, presenters, controllers. Aquí va la arquitectura MVC de la GUI y la transformación de datos entre base de datos y casos de uso.&lt;/li>
&lt;li>&lt;strong>Frameworks y drivers&lt;/strong>: frameworks web, base de datos, la vista de MVC.&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Capítulo 29: Julio, 2017</title><published>2017-07-01T00:00:00+00:00</published><updated>2017-07-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-julio/"/><id>https://chemaclass.com/es/books/oeur/2017-julio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/c62tBdi02w4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="no-hablo-de-autoayuda">No hablo de autoayuda&lt;/h2>
&lt;p>No pretendía escribir un libro de autoayuda, sino más bien hacer de la escritura una de mis herramientas más populares con la que pudiera ayudarme a organizar la razón y los sentidos.&lt;/p>
&lt;p>No hablo de autoayuda, sino más bien de equilibrio entre la cordura y la locura. La prudencia que debemos considerar, independientemente de nuestros diferentes contextos, no puede flaquear ante el desequilibrio emocional que pudiéramos tener presente.&lt;/p>
&lt;p>Adaptación a la transparencia, a la crudeza que sin previa advertencia nos desconcierta sin paños calientes. Me refiero a la inestabilidad emocional que necesita ser reparada.&lt;/p>
&lt;p>Recuerdo olvidado: sueño donde el tiempo parecía soplarnos en la nuca y de la mano de un temor constante a la muerte. Hermano mayor solitario, emigrante desplazado. Ideas claras, sentimientos de superación diaria; no querer ser normal por necesidad. Por encima del bien y del mal con memorias olvidadas. Lo más importante será dejar huella y adaptarnos —o habremos muerto—.&lt;/p>
&lt;p>Recuerdo ambicioso, de renuncia y denuncia a la idea opuesta del nosotros. Ironías de la vida, como incansables pensamientos que dicen mucho de ti. Juventud, imperdonable religión. Se hizo más notorio en la montaña, cuando saborear el odio a Dios no bastó. Es tiempo de hablar de nuevo. Tantas constantes, tanto desconocimiento para al final no ser conscientes ni tan siquiera de qué estamos perdiendo. ¿Quién nos recordará? Será sólo cuestión de tiempo. Lo más difícil será entendernos con otros ojos. Sólo se vive una vez. El futuro pasará a ser parte de nuestros dulces recuerdos junto a nuestra inocente juventud.&lt;/p>
&lt;p>No quiero hablar de autoayuda, sino de nuestra falsa libertad si no vivimos ocupados de nuestras vidas. Buenos hábitos que nos indiquen el valor de la verdad, como nuestra tendencia a desenmascarar la mediocridad.&lt;/p>
&lt;p>Este libro termina no sin antes agradecer vuestra compañía. No sin antes desear leernos de nuevo de aquí a muchos años para ver entonces en quién nos hemos convertido. Y esbozar la sonrisa que nos merezcamos.&lt;/p>
&lt;p>Trabaja.
Quiere.
Sueña.
Sonríe.&lt;/p>
&lt;p>No hablo de autoayuda, sino de terminar para comenzar todo con los ojos en un recuerdo.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/29.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 28: Junio, 2017</title><published>2017-06-01T00:00:00+00:00</published><updated>2017-06-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-junio/"/><id>https://chemaclass.com/es/books/oeur/2017-junio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/AV9D-ZJIdtI"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="percepciones">Percepciones&lt;/h2>
&lt;p>No se trata de esperar al momento de encontrarnos con nuestra vida resuelta, sino de resolver nuestra vida, día tras día, de forma que hayamos creado dicha rutina para nuestra excelencia.&lt;/p>
&lt;p>«Somos lo que hacemos repetidamente. Por lo tanto, la excelencia», dijo Aristóteles, «no es un acto, sino un hábito».&lt;/p>
&lt;p>No es más que nuestra percepción aquélla que nos diluye la realidad frente a nuestros sentidos. Nuestro trabajo por fortalecer nuestros tenues pensamientos debería no estar tan infravalorado como al parecer la sociedad, desde tiempos pasados, muestra.&lt;/p>
&lt;p>El desarrollo de nuestra razón, del éxito subjetivo, de los logros impagables, de la consecución de nuestros rendimientos, así como de nuestra realización personal… Somos un conjunto de partes intrínsecas, ¡de ahí la importancia de nuestra comprensión!&lt;/p>
&lt;p>Nuestro rechazo hacia la excelencia accidental porque ésta perecerá en un corto plazo debido a nuestra tendencia hacia el adocenamiento. Nuestro trabajo, frente a las dificultades con las que diariamente nos encontramos, delimitará nuestra aprehensión a la vana e injusta realidad a la que ilusoriamente miramos en ocasiones con simpatía.&lt;/p>
&lt;p>El apego a nuestro ser no puede ir sino ligado a nuestra idea de quiénes somos, de dónde y hacia dónde vamos. Somos sensaciones abstractas que, muy probablemente, tengan una explicación llanamente biológica desde nuestro más puro instinto de supervivencia. Nuestras ideas son meras emociones que evolucionan a escondidas conforme el paso de nuestras distintas experiencias.&lt;/p>
&lt;p>Nuestra impresión (de lo que creemos entender por realidad) evolucionará impulsada por nuestras percepciones de los sucesos de verdad que seamos capaces de discernir, frutos de la crítica categórica, así como posiblemente equivocada. Pues ésta estará condicionada por todo suceso que, en raras ocasiones, seamos capaces de advertir conscientemente.&lt;/p>
&lt;p>Nuestra inconsciencia juega un papel determinante, de forma exigente y severa, en el rumbo de nuestro sentido de la vida. Nuestro sentimiento de verdad lo deberíamos juzgar con total agudeza con nuestra capacidad cognitiva. Pues no deberíamos permitir (¡ni mucho menos creer!) que todo brote sea fruto de un azar sin autor más que alguna quimera.&lt;/p>
&lt;p>Es por ello que debo recalcar de nuevo la importancia de la proyección de nuestro consciente para que de forma inconsciente terminemos donde habíamos proyectado escrupulosamente.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/28.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 27: Mayo, 2017</title><published>2017-05-01T00:00:00+00:00</published><updated>2017-05-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-mayo/"/><id>https://chemaclass.com/es/books/oeur/2017-mayo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/BuLMGZI7-Es"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="mediocridad-enmascarada">Mediocridad enmascarada&lt;/h2>
&lt;p>La religión como un paquete de hábitos preestablecidos, donde la voluntad de poder se reduce al absurdo del simple seguimiento de la mediocridad, enmascarada por un conformismo hacia el consentimiento de la falta de perseverancia.&lt;/p>
&lt;p>Donde la falta de constancia en aquello por lo que deberíamos esforzarnos no pasará obligada factura…, pues se nos «perdonará» y «todos entraremos al reino de los cielos». ¿No es, acaso, bondad infinita?&lt;/p>
&lt;p>Hábitos encadenados en un inculto pasado donde la mediocridad era premiada con aparentes promesas consistentes para todos aquellos inconsistentes de voluntad.&lt;/p>
&lt;p>Esperanza por parte de aquellos desesperanzados que necesitaban hábitos estables ¡en las medidas de sus mezquinas posibilidades!&lt;/p>
&lt;p>No enmascaremos quiénes somos. ¡No queramos ser mediocres!&lt;/p>
&lt;hr />
&lt;h2 id="tendencia">Tendencia&lt;/h2>
&lt;p>La vida no es más que hábitos. Es por ello que, cuando nos centramos en las cosas positivas, cuando nuestra mente está aspirando a la mejor versión de nosotros mismos, creamos una rutina que nos empuja hacia nuestro éxito. Por el contrario, ocurre lo opuesto cuando nuestras ideas están encapsuladas en pensamientos negativos, así como destructivos, haciendo de nuestra vida una costumbre hacia la mediocridad.&lt;/p>
&lt;p>No será la primera vez que escuchamos afirmaciones como «Si tú hubieras estado en mi situación habrías hecho lo mismo», tratando de excusarse hacia sí mismo cuando se llega a ser consciente de la gravedad de algún hecho que se hizo sin sensatez. ¿Podríamos inventar, acaso, alguna excusa más burda y vulgar que la culpabilidad por la falta de nuestra responsabilidad en nuestro contexto? ¡De eso se trata!, ¡de trabajar nuestro entorno!, ¡de esforzarnos con él!&lt;/p>
&lt;p>El diseño de nuestro viaje debería estar por encima de toda idea externa. Seremos tan fuertes como eduquemos a nuestra tendencia a serlo.&lt;/p>
&lt;p>No tendremos más oportunidades para abrazar aquello una vez se transforme en imposible.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/27.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 26: Abril, 2017</title><published>2017-04-01T00:00:00+00:00</published><updated>2017-04-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-abril/"/><id>https://chemaclass.com/es/books/oeur/2017-abril/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/nKiDK0iUiXw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="el-valor">El valor&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>«¿Cuánto valemos?», me preguntaba.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>«¿Cuánto vales?», me respondía.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>¿Qué es lo que verdaderamente definirá el valor de los valores?&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>La valentía,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>el esfuerzo,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>la efectividad,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>el coraje,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>la estimación,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>el mérito,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>la osadía,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>el interés,&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Así como la importancia de cada uno de nuestros momentos.&lt;/p>
&lt;p>Las experiencias, los hábitos, las excursiones, los viajes…, los pequeños logros que concluyen en ayudarnos a prosperar en nuestros objetivos a corto, medio y largo plazo. ¡Comprobar, ensayar, estudiar, examinar la realidad de primera mano!&lt;/p>
&lt;p>¿Qué puede haber más valioso que el mismo hábito de nuestra conquista, desde y hacia nosotros mismos? ¡Nada!&lt;/p>
&lt;p>¡El hábito de nuestra conquista debería enfocarse —con máxima prioridad— en nosotros mismos!&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/26.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>El poder de los hábitos</title><subtitle>Por qué hacemos lo que hacemos y cómo cambiarlo</subtitle><category term="psychology" scheme="https://chemaclass.com/tags/psychology/" label="Psychology"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2017-03-20T00:00:00+00:00</published><updated>2017-03-20T00:00:00+00:00</updated><author><name>
Charles Duhigg</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-power-of-habits/"/><id>https://chemaclass.com/es/readings/the-power-of-habits/</id><summary type="html">Por qué hacemos lo que hacemos y cómo cambiarlo. Entiende cómo funcionan los hábitos y aprende a modificarlos.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h2 id="aprendizajes">Aprendizajes&lt;/h2>
&lt;ol>
&lt;li>Todos los hábitos operan de la misma manera&lt;/li>
&lt;li>Cambiar un hábito significa cambiar un aspecto clave…&lt;/li>
&lt;li>…y cambiar un hábito puede cambiar muchas cosas&lt;/li>
&lt;li>La fuerza de voluntad es un músculo&lt;/li>
&lt;li>Practica, practica, practica&lt;/li>
&lt;/ol>
&lt;hr />
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Zq2LVa36ukk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Capítulo 25: Marzo, 2017</title><published>2017-03-01T00:00:00+00:00</published><updated>2017-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-marzo/"/><id>https://chemaclass.com/es/books/oeur/2017-marzo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/ihSewx7LdfY"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="la-verdad">La verdad&lt;/h2>
&lt;p>La verdad está en el conocimiento. Y el conocimiento dependerá siempre del contexto. Conocer la verdad no es más que conseguir relacionar el contexto con el conocimiento que se pretende afirmar como verdad.&lt;/p>
&lt;p>En un contexto donde el conocimiento sólo puede ser adquirido de forma empírica, ¿qué es la verdad sino la aserción subjetiva por excelencia? En este contexto no teórico, ¿qué es la verdad sino la manifestación parcial de su comprensión?&lt;/p>
&lt;p>Nuestro talento para discernir con exactitud la veracidad de una evidencia subjetiva es tan individual y personal que cuesta creer que realmente podamos alcanzar una verdad ideal de forma global.&lt;/p>
&lt;p>Podríamos decir que la verdad es, sin embargo, la representación de nuestro estado contextual en relación con nuestras mentes, es decir: nuestro conocimiento.&lt;/p>
&lt;p>Conforme vamos creciendo nuestras verdades se modelan, las afirmaciones parecen (y deben) cuestionarse, las evidencias necesitan mayores pilares que las sostengan y nuestra seguridad —en aquello que defendemos como verdad— debe quedar certificada. De lo contrario, los pilares caerán en cuestión de no mucho tiempo porque realmente no existen muchas afirmaciones que podamos asegurar como absolutas como nuestro tiempo y nuestra muerte.&lt;/p>
&lt;p>Crecer nos debería enseñar el significado de la verdad, empezando por el sentido de la vida, la importancia de nuestros momentos y nuestro reflejo hacia los demás, así como a nosotros mismos. Lo cual significa que madurar es sólo cuestión de lo que estamos haciendo con nuestro conocimiento para entender mejor nuestro contexto y, por supuesto, aquello que estamos haciendo en nuestro entorno para expandir nuestra sabiduría.&lt;/p>
&lt;p>Todo en esta vida depende de nosotros. Incluso la verdad, especialmente teniendo en cuenta que podría cambiar en cuestión de tiempo. Y con «nosotros» me refiero a nuestra entidad individual en su aislado contexto.&lt;/p>
&lt;p>Será, por tanto, nuestra singular proyección aquélla que delimitará nuestras verdades.&lt;/p>
&lt;hr />
&lt;h2 id="sin-final">Sin final&lt;/h2>
&lt;p>Historias que acompañan. Menudos años de discurso grabado. Libro nacido de ideas y bocetos sin final acercado que, sin embargo y como todo lo que empieza, debe terminar.&lt;/p>
&lt;p>Los finales no tienen por qué ser tristes necesariamente aunque nuestros sentimientos no puedan, en ocasiones, evitar pensar lo contrario. El tiempo es el único responsable, así como la memoria es aquélla que combate el olvido.&lt;/p>
&lt;p>Los recuerdos nos acercan al conocimiento residiendo en forma de experiencia. Virtuosismo enérgico como actividad diaria, no conformada con la simple subsistencia.&lt;/p>
&lt;p>Exteriorizando la comunicación interna con cierta facilidad aparente. Como bien ya quedó dicho: «No es oro todo lo que reluce»; sólo intentaba ser consecuente.&lt;/p>
&lt;p>Ejercicio de saneamiento lógico y personal; acentuando todo aquello donde pudiera expresarme abiertamente hacia mí mismo con, por qué no decirlo, ciertos miedos al principio por no saber ni cómo comenzar. Dejar de temer el estar equivocado al pensar demasiado antes y después de actuar.&lt;/p>
&lt;p>Emprender un camino no por terminarlo, sino por el trayecto y todo lo que ello en sí mismo conlleva: el nacimiento de un inicio sin conocer necesariamente un final, sin tener por qué caducar si el cuidado fue el apropiado.&lt;/p>
&lt;p>Aprendamos a ser como quien realmente desearíamos conocer el día de mañana. Y todos los finales evolucionarán a principios.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/25.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 24: Febrero, 2017</title><published>2017-02-01T00:00:00+00:00</published><updated>2017-02-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-febrero/"/><id>https://chemaclass.com/es/books/oeur/2017-febrero/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/0Lzn-8S0atw"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="nuestra-vida">Nuestra vida&lt;/h2>
&lt;p>Es la sensación de haber perdido todo aquello que nos puede engañar de forma natural ante la completa percepción de nuestra realidad. ¿Qué es acaso haberlo perdido todo?&lt;/p>
&lt;p>Es nuestro contexto el que determina la percepción hacia aquello que estamos juzgando. Jugando a su vez un papel más que importante, que no definitivo de forma expresa.&lt;/p>
&lt;p>Considerar no pronunciarnos, no revelarnos ante nosotros, durante un excesivo periodo de tiempo. Sopesar la idea del no tener en cuenta nuestra observación hacia aquello que no podemos dejar de mirar: nuestra vida y nuestro tiempo: nuestros momentos y nuestro ser: a nosotros mismos.&lt;/p>
&lt;p>No reflexionar sobre nuestras acciones, sobre la estela que estamos dejando —aunque sea de forma involuntaria—, sentenciará nuestro parecer, así como nuestro aprecio, a todo aquello que linde con su entorno. Todo lo que hagamos, por tanto, dejará un rastro: nuestro inmortal pasado, que es de forma inevitable parte de la causa, transformándonos de forma directa en la consecuencia en la que nos estamos convirtiendo.&lt;/p>
&lt;p>Pues la estimación de nuestros valores arbitrará la resolución de los mismos. Cercando nuestra cordura y puntualizando aquello que disponga nuestra disposición. Si no nos estimamos, nuestros valores quedarán mermados en la posible timidez de la cobardía. Si no nos estimamos no podremos ser personas cabales ni libres. De lo contrario, al menos tendremos la oportunidad de serlo en la medida de nuestras posibles consideraciones.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Me refiero al olvido de nosotros:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>a nuestro olvido por las mañanas al levantarnos,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>a nuestro olvido en cada momento,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>a nuestro olvido por las noches al acostarnos.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>¿Qué es haberlo perdido todo cuando aún nos queda el desconcierto de la incertidumbre por descubrir? O simplemente disfrutar.&lt;/p>
&lt;p>Reflexionar como método, como solución a la disconformidad diaria de la falta de sentimientos y no como hábito arbitrario sin responsabilidades y sin espera de frutos, pues ¿a quién le acabaría importando…?&lt;/p>
&lt;p>No dejemos de meditar, de observar, de diagnosticar nuestras impresiones, de disfrutar reflexionando y de resolver nuestras sensaciones para apreciar mejor todo aquello que merece nuestra atención, nuestra comprensión, así como nuestro empeño: nuestra vida.&lt;/p>
&lt;hr />
&lt;h2 id="habitos">Hábitos&lt;/h2>
&lt;p>Reflexionar como método, como solución a la disconformidad diaria de la falta de sentimientos. Rutina para nuestro ser, habilidad para nuestra experiencia.&lt;/p>
&lt;p>Hábitos que nos definen, nos determinan e incluso nos limitan en nuestra posible disconformidad. Desde nuestros más básicos instintos, pasando por los simples reflejos, hasta los más complejos que parezcan no quererse dejar domar.&lt;/p>
&lt;p>Somos hábitos inconscientes que de forma consciente deberíamos aprender a entender y aceptar para poder superar y, con ello, mejorar. Pues toda aquella costumbre que nunca haya sido cuestionada no podrá jamás ser superada.&lt;/p>
&lt;p>Habilidad como deseo, como práctica de nuestra maestría: ensayo y error para posteriormente adquirir inevitablemente sabiduría.&lt;/p>
&lt;p>¿Dónde quedó nuestro hábito de nuestro día a día? El conocimiento es poder. Y el poder nos permitirá tener la libertad para elegir lo que realmente queremos para nosotros. Ser conscientes de nuestras rutinas y sus motivos nos permitirá escoger y, con ello, ser responsables de nuestros actos.&lt;/p>
&lt;p>Ejercitar nuestra costumbre, nuestra praxis. Sentirnos útiles en nuestro sueño conciliado, prudentes con nuestro juicio así como consecuentes con nuestra madurez frente a lo verdaderamente serio.&lt;/p>
&lt;p>Estudio de nuestro comportamiento, de nuestros intentos, de nuestras respuestas, de nuestra observación, del empirismo más allá de la mera teoría: pragmatismo para y con nosotros en nuestro día a día. Pues sobran las palabras cuando los hechos hablan por sí solos.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/24.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 23: Enero, 2017</title><published>2017-01-01T00:00:00+00:00</published><updated>2017-01-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2017-enero/"/><id>https://chemaclass.com/es/books/oeur/2017-enero/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/QFGnYWAcopE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="falsa-libertad">Falsa libertad&lt;/h2>
&lt;p>Con tendencias entrópicas a las que la vida parece estar dispuesta por su culpa, por su falta de predisposición y por no poner en cuestión el quedarse desnuda por completo en un instante para percatarse de la “nada” por la que esta puede llegar a estar rodeada.&lt;/p>
&lt;p>«Desnudar el alma» no es más que el proceso de la completa sinceridad desde y para nosotros. Un entendimiento puro es imposible a ojos de aquél que sea hipócrita por interés.&lt;/p>
&lt;p>Actuar con la mano derecha esperando que la izquierda no se entere no es más que el acto más impuro que podríamos hacer a nuestra conciencia; condenados a perpetua por ello hasta que la vida —en su divina injusticia— dicte sentencia.&lt;/p>
&lt;p>La comprensión máxima a la que el hombre extraordinario debe aspirar no puede quedar mermada por necedades absurdas e inconexas, donde las excepciones y excusas parecen ser las protagonistas, y los pilares de la razón y su sentido se ven nebulosos los días con viento favorable, cuando no en completa oscuridad.&lt;/p>
&lt;p>Hipocresía es querer pensar como ridículos: por su sinsentido y sus notables incoherencias. Es querer mentir y denigrar nuestro poder y nuestra confianza. Es querer no servir de ejemplo con nuestros actos. Es contradecirnos para posteriormente ni decirnos que lo estamos haciendo mal. Es no atrevernos a ser como realmente quisiéramos, así como pensamos y «predicamos». Aquél que sirva de ejemplo que tire la primera piedra. ¿Ejemplos de qué?&lt;/p>
&lt;p>La importancia de una conciencia limpia es fundamental para alcanzar la plenitud con la que ilusamente todos soñamos. Somos responsables de nuestros actos, así como de nuestras omisiones. Uno de nuestros principales problemas es que tendemos a omitir aquello de lo que somos consecuentes, ahí es cuando nuestra libertad, en nuestro mundo «justo», queda limitada sin aparente entendimiento por nuestra parte: eludir nuestras responsabilidades nos privará de autodeterminación, ¡pues falsa libertad es lo que tendremos!&lt;/p>
&lt;p>Falsa realidad cuando creemos ser alguien sin serlo, sin autoridad ni derecho a ello. Sin pruebas que puedan certificar nuestra palabra. Seremos libres en proporción a nuestras responsabilidades. ¡A demostraciones me refiero! Pues no somos más que la representación presente de nuestra intención sincera de cara al futuro ligado, por encima de todo, a nuestro pasado.&lt;/p>
&lt;p>Fingir vivir sin obligaciones en un mundo justo es, aparte de hipócrita, estúpido. Pues negarnos a ser conscientes del desorden que, día a día, nos rodea, es como querer no salir a ver el sol prefiriendo sombras y oscuridad en la cueva.&lt;/p>
&lt;p>Es rechazo por mi parte a aquellos que tras escuchar el mito de la caverna pensaron: «Malditos ellos que mataron al que vió el sol, pues lo tomaron por loco cuando éste lo único que quería era compartir con sus prójimos la verdad tras la misma: la luz y el sol como evidencias». Aquéllos que se conformaban con las sombras y oscuridad, aquellos asesinos de la sinceridad y el progreso. Ellos no merecen mi respeto. A todos aquéllos que tras el mito muestran su descontento hacia algo que luego repiten en su cotidianidad con excusas vanas o suspiros engañosos; falsos testimonios y seducciones cancerígenas llenas de falsedad: hipocresía.&lt;/p>
&lt;p>¿Libres para qué? ¿Libres para procurar una vida repleta de cinismos como algo natural? Cuando la verdad se trata con disimulos, con intereses subjetivos…, la libertad queda reducida a su mínimo sentido, pues nuestra libertad no es sólo nuestro margen de movimiento externo, sino también interno.&lt;/p>
&lt;p>Seremos más libres cuanto más nos conozcamos y más nos pertenezcamos. Nuestra autodeterminación es fundamental para conocer nuestra voluntad de poder. Nuestra confianza, atrevimiento, osadía, intención, voluntad…: éstos serán los medidores de nuestro grado de libertad.&lt;/p>
&lt;hr />
&lt;h2 id="vivir-ocupados">Vivir ocupados&lt;/h2>
&lt;p>No debemos vivir preocupados, sino ocupados y no descuidados de nosotros mismos.&lt;/p>
&lt;p>Ocuparnos de nosotros el tiempo que haga falta con objetivo principal de encontrar aquello que realmente deseamos. ¿Qué podríamos desear acaso más que nuestra propia dedicación hacia aquello que realmente querríamos? Pues ¿quién en su sano juicio no desearía ocuparse de sí mismo para consigo? Me refiero al sano egoísmo de nuestro deber.&lt;/p>
&lt;p>En busca de nuestra plenitud nos movemos con miedos, así como posibles recelos, de todo aquello que no queremos entender. Temores inciertos que nacen de desconciertos, pues nadie nació sabiendo cómo querer.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>¡A nosotros, ansiosos de vida, me refiero!&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>¡No dejemos escaparnos tan fácilmente!&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Basta hacer uso de nuestro consciente&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>para crear con ello nuestro sendero.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Mucho menos cuando uso de razón aún tengamos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>aunque a veces parezca ser sólo inconsciente.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>A los ciegos de actitud me refiero especialmente,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>pues no es cierto que estemos atados de manos.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Lástima por los cegados de voluntad, empeñados en tropezar en la misma piedra una y otra vez. Pena por los obstruidos, aquéllos cuyo deseo tiende al no ser, compartiendo su misma sensación hacia el resto, que tiene que aguantarlos sea como fuere, infectando a cualquier persona en su medida de lo posible.&lt;/p>
&lt;p>Solo disgusto y pena por todos aquellos que rechacen su poder, así como su deber de ser, pero, sobre todo, del querer ser. Amar nuestras pasiones no puede ir desvinculado de la ocupación de las mismas: existir con un sentido único que nos identifique ante el resto, que día a día contemplemos, debe ir ligado a la actividad de la misma sin caer en el intento de evasión, impidiendo que nuestra sinceridad se sincere con nosotros.&lt;/p>
&lt;p>La verdad sea dicha: encontrar el equilibrio de nuestra ocupación por nosotros, nuestro primer cometido, es la base donde radican los cimientos de nuestro sentido. Es, por tanto, nuestra motivación hacia cualquiera de nuestras metas aquello que marcará de forma notable un antes y un después, en la medida de la seriedad que para nosotros mismos tengamos.&lt;/p>
&lt;p>Sernos fieles de pensamiento y de obra para evolucionar cada día más, aspirando algún día a querer realmente ocuparnos de nuestra vida para llegar a ser quienes queremos ser.&lt;/p>
&lt;hr />
&lt;h2 id="la-importancia">La importancia&lt;/h2>
&lt;p>La misma disposición a la importancia del todo, de los momentos, así como de sus ausencias; consideración hacia aquello que nos rodea, así como a la nada que nos podría abordar en cualquier momento.&lt;/p>
&lt;p>El interés hacia aquello que deberíamos valorar por encima de todo en ninguna magnitud medible. Me refiero a aquello que deberíamos considerar en auge hacia su plenitud como entidad trascendente desde la nada hacia el todo. Nuestra vida en sí misma y su proporción de envergaduras y tendencias tan dispares, abstractas y elocuentes como a sí misma se disponga.&lt;/p>
&lt;p>La seducción retórica de su abstracción e idealización como aquello a lo que aspiramos sin recelos, pero sobre todo sin miedos más allá de los que las situaciones en sí mismas nos vayan presentando.&lt;/p>
&lt;p>No habrá por qué temer a la meditación espontánea con aromas de veracidad, pues estará siempre esperándonos.&lt;/p>
&lt;p>La magnitud del todo que tiende a la insignificancia, a la ignorancia por deseo, a la vacuidad de su sentido, a la frivolidad de su importancia.&lt;/p>
&lt;p>La repercusión de nuestro interés, de la eficacia de nuestro alcance, de la magnitud de nuestro deseo, de la seriedad de nuestro compromiso…&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>«¿Cuánto valemos?» es la pregunta.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>«¿Cuánto vales?» es la respuesta.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>&lt;img src="/images/books/oeur/23.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 22: Diciembre, 2016</title><published>2016-12-01T00:00:00+00:00</published><updated>2016-12-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-diciembre/"/><id>https://chemaclass.com/es/books/oeur/2016-diciembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/tUAdMeowzi8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="esclavo-de-la-muerte">Esclavo de la muerte&lt;/h2>
&lt;p>Tener la muerte tan presente día tras día, tan recurrente, nos es algo inevitable. Pues ser tan conscientes de que nuestro tiempo no es infinito debería hacernos plantear en qué queremos —o deberíamos querer— invertirlo.&lt;/p>
&lt;p>Mi mayor temor es el dolor de cabeza que, repentino, a veces me asalta cuando intento conciliar el sueño. No hablo de dolores emocionales, sino físicos, pues, además de parecer aleatorios, podrían estar jugando por última vez sin posible oportunidad de réplica.&lt;/p>
&lt;p>Esto fue lo que ocurrió y lo que podría volver a suceder: dolores de cabeza en la oscuridad que desemboquen en la incerteza por excelencia a la que todos tantísimo tememos: la muerte.&lt;/p>
&lt;p>En especial en la distancia, donde no me tendría más que a mí mismo. Donde, de ocurrir alguna tragedia, no habría primeros en enterarse…, sólo segundos y terceros, pues estos primeros no podrían hacer más que sospechar y negar lo posiblemente ocurrido hasta que la verdad se torne inevitable.&lt;/p>
&lt;p>El origen de la tragedia podría nacer en cualquier instante que, junto a la belleza de su incertidumbre, me desvela hasta nublar el resto de mis sentidos.&lt;/p>
&lt;p>Desvelado por la muerte incluso durante el día. Ser testigo de la misma nada, así como de su aparente y ausente presencia.&lt;/p>
&lt;p>Hambre de razón definida, de sentido lógico racional, de proyección consentida por nuestra razón. Sed de comprensión, de entendimiento, de impulso hacia aquello que nos realiza.&lt;/p>
&lt;p>Miedo por esa esclavitud de aquello inevitable que terminará con toda oportunidad por ocurrir.&lt;/p>
&lt;hr />
&lt;h2 id="singularidades">Singularidades&lt;/h2>
&lt;p>Singularidades complejas con uso de razón consecuente. Momentos temporales con proyecciones tan singulares.&lt;/p>
&lt;p>Experiencias abstractas que no dejan de orbitar sobre sí mismas procurando evoluciones en las medidas de sus propios intereses.&lt;/p>
&lt;p>Ideas que estallan y se desvanecen como simples chispas cuando éstas no se trabajan con disciplina hasta curtir su propia llama.&lt;/p>
&lt;p>Falsa falta de oportunidad por no querer transformar desde la misma forma.&lt;/p>
&lt;p>Directrices sin dirección aparente, habiéndolas más y menos consecuentes con sus responsabilidades.&lt;/p>
&lt;p>Falta de principios que nos aísla de nuestro motivo y razón de ser. Carencia de argumentos que nos invita a creer aquello que no se sostendría.&lt;/p>
&lt;p>Creencia en la carencia más atrevida. Rezo al insulto mejor interiorizado por la ignorancia. Cuentos dictadores para aquéllos que no se atreven a cuestionar.&lt;/p>
&lt;p>La muerte como real juez determinante.&lt;/p>
&lt;hr />
&lt;h2 id="la-educacion">La educación&lt;/h2>
&lt;p>El problema de la educación es que no se enseña la importancia de las responsabilidades, así como el trasfondo que se debería ir adquiriendo a lo largo del tiempo. Educación ligada a la responsabilidad y, por supuesto, unida ésta a nuestra libertad.&lt;/p>
&lt;p>Nuestra educación viene dada por la enseñanza de las repercusiones de nuestros actos. La falta de educación viene dada por la incorrecta enseñanza de lo que realmente merecemos cuando nuestras responsabilidades quedan olvidadas, cuando nuestras obligaciones quedan en un segundo plano y, sin embargo, nuestro premio es el mismo que el de aquéllos que tienen una correcta educación; es por tanto cuando surge la pregunta: ¿cuál es entonces la correcta educación?&lt;/p>
&lt;p>La correcta educación es aquélla que enseña la grandeza de nuestros actos comenzando desde una perspectiva de superación personal: queriendo ser mejores que nosotros mismos día tras día.&lt;/p>
&lt;p>Nuestras acciones deberían tener una reacción igual a lo que hacemos; deberíamos actuar como nos gustaría que con nosotros el mundo se comportase. Deberíamos prosperar como a nosotros nos gustaría ver a los nuestros prosperar. Deberíamos ser como aquella persona que nos gustaría realmente conocer.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/22.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 21: Noviembre, 2016</title><published>2016-11-01T00:00:00+00:00</published><updated>2016-11-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-noviembre/"/><id>https://chemaclass.com/es/books/oeur/2016-noviembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/bfe-N9g4gO0"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="dulces-recuerdos">Dulces recuerdos&lt;/h2>
&lt;p>Paciencia y sosiego.&lt;/p>
&lt;p>No es difícil darnos cuenta de que todo es continuo cambio, siempre y cuando queramos realmente ser partícipes de ello.&lt;/p>
&lt;p>Sentir que todas estas aventuras, en todo este tiempo, no han sido más que fruto de la necesidad circunstancial en la que nos hemos visto rodeados. Y nosotros, intentando superar toda adversidad sin mayor guía que la dureza, así como espontaneidad, de aquélla que tanto nos sorprende días tras día: la misma vida. Sin lugar a dudas, seremos nosotros aquéllos que tendremos la última palabra sobre nuestro ser y sus decisiones para su posteridad.&lt;/p>
&lt;p>Por aquellos recuerdos que aún nos persiguen y viajan con nosotros allá donde vayamos. Cuidarlos en la medida de su valor, alentarnos para mejorar junto a los mismos, pero sobre todo comprender que de ellos somos fruto el día de hoy, pero no necesariamente el día de mañana.&lt;/p>
&lt;p>No descuidar nuestras aspiraciones, aquellos deseos que tanto anhelamos, aquella referencia que tanto pudiéramos echar en falta… Mirarnos y reconocernos sin necesidad de espejos. La realidad a veces parece tan distante y diferente a como nosotros creemos que debería ser, pues observarnos sin motivo nos alejará inevitablemente de nuestra esencia.&lt;/p>
&lt;p>Memorias aún a la espera de su nacimiento. Sed de reflexión, pero sobre todo deseo de llegar a construir la mejor versión de nosotros mismos. Hasta el fin de nuestros días. Deseando para entonces una amarga despedida, pero inevitables y abundantes dulces recuerdos.&lt;/p>
&lt;hr />
&lt;h2 id="incluso">Incluso&lt;/h2>
&lt;p>Cuando los planes se tornan tan irreconocibles que incluso poder aceptarlos se vuelve todo un reto en su complejidad.&lt;/p>
&lt;p>Admitir el porvenir incierto es tan complicado que incluso el mismo futuro se asustaría con sus imprevistos.&lt;/p>
&lt;p>Sorpresas no tan gratas y tan inevitables que incluso a nuestro mismo destino alarmaría por su tan inadvertido y posible adocenado mañana.&lt;/p>
&lt;p>Oportunidades ciegas que junto a versos indiscretos se sorprenden día tras día tras sus venturas, algunas tan incontrolables y otras tan repentinas que incluso dormir sin sueños, vivir sin aspiraciones, tiende a la normalidad disconforme. Yo soy esas oportunidades ciegas. Yo soy esos versos indiscretos.&lt;/p>
&lt;p>Sospechas inseguras y alarmantes hasta que el momento llegue y la realidad sorprenda con crudeza firme —y seguridad inquebrantable— sin importar lo más mínimo nuestro posible descontento.&lt;/p>
&lt;p>Discrepancia inevitable. Disconformidad frente a aquella situación que nos parece superar con demasiadas creces. Conmoción aún por asimilar.&lt;/p>
&lt;p>Adaptarnos frente a todo aquello que aún esté por llegar.
«Quien tropieza y no cae, adelanta terreno».&lt;/p>
&lt;hr />
&lt;h2 id="nuestro-mayor-error">Nuestro mayor error&lt;/h2>
&lt;p>Los dos mayores errores humanos: la denigración religiosa y política a la que nos hemos conducido. Y digo dos, cuando podría decir uno; podríamos abstraer estas ramas, tan distantes como ligadas, en una única fantasía que vela por el bienestar de uno mismo.&lt;/p>
&lt;p>¿Qué es la religión sino la utopía espiritual por excelencia?, no siendo concluyente, sino adaptativa conforme a las tendencias temporales, así como culturales, en las que como seres racionales hemos ido evolucionando. Y ¿qué es la política sino el ideal administrativo de lo público con el cual parece que estamos obligados a coexistir?, pues somos y seremos seres colectivos.&lt;/p>
&lt;p>Tanto la política como la religión han ido siempre de la mano, en mayor o menor medida. Y no me refiero a que estén ligadas entre sí superficialmente, a pesar de que históricamente así haya sido. Incluso aunque hoy en día intentemos desvincularlas, este ligamiento va más allá de una aparente simple conexión.&lt;/p>
&lt;p>La religión, como la política, son el reflejo del fracaso de nuestro intento por lograr entendernos como iguales. Es la evidencia más pura de nuestra impureza. Es el manifiesto de nuestra realidad, así como de nuestra falta de entendimiento hacia aquello que no es nosotros.&lt;/p>
&lt;p>Tanto la religión como la política no son más que utopías inalcanzables entrelazadas entre sí. Sin un final evidente ni claro. Son el problema sin solución; la paradoja de su lógica, pues estaremos forzados a tener que lidiar con estos temas hasta el fin de nuestros días.&lt;/p>
&lt;p>No estoy afirmando que tanto la política como la religión sean innecesarios sin sentidos. Declaro que estaremos equivocados en la afirmación del tener la razón en cualquier utopía. La política es necesaria: de ahí que sea el reflejo de nuestra falta de entendimiento. Así como la religión es también la evidencia de nuestro atraso como seres racionales.&lt;/p>
&lt;p>La política, al fin y al cabo, vela —o debería hacerlo— por nuestro bienestar como seres colectivos. Sin embargo, la religión ha abusado de la ignorancia, de aquéllos que quisieron como de aquéllos que no tuvieron otras opciones.&lt;/p>
&lt;p>Será, por tanto, nuestro mayor error cualquier creencia dispuesta —incluso predispuesta— en cualquier utopía.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/21.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 20: Octubre, 2016</title><published>2016-10-01T00:00:00+00:00</published><updated>2016-10-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-octubre/"/><id>https://chemaclass.com/es/books/oeur/2016-octubre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/K6mxWaXrMn8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="entropia">Entropía&lt;/h2>
&lt;p>Basta con un simple pensamiento para darnos cuenta de lo frágiles que pueden llegar a ser.&lt;/p>
&lt;p>La entropía de nuestro ser tiende al desorden y al caos; basta con descuidarnos unos días para percatarnos de que la vida se nos escapa, en una lucha constante frente al posible desconcierto de nuestro día a día, con sus mayores y menores desafíos, así como sus presiones involuntarias.&lt;/p>
&lt;p>Todo será, al fin y al cabo, una lucha frente a una entropía que tiende a la confusión y al enredo en sí misma. Todo debería consistir en nuestra eterna disputa contra nuestro desorden.&lt;/p>
&lt;p>Todo sea para nuestro futuro, para cuando nos recordemos de nuevo en unos años con cariño y, por qué no, también con algo de anhelo. Desear sentirnos orgullosos de quiénes fuimos en días pasados. Sobre todo, sentirnos orgullosos de la estela que dejaremos frente a toda adversidad que nos provoque nuestra disimulada entropía.&lt;/p>
&lt;hr />
&lt;h2 id="el-futuro">El futuro&lt;/h2>
&lt;p>El futuro no será para los que planean continuamente ni para los que no se atreven a dar un paso al frente y encararse contra su misma persona, especialmente cuando ésta esté abrumada y sin razón de buscar esa motivación que parece no haber sido encontrada.&lt;/p>
&lt;p>El futuro, por el contrario, será para aquellos que desarrollan su presente. Porque la motivación va y viene, pero la pasión nace, progresa y crece con nosotros.&lt;/p>
&lt;p>El futuro no es más que nuestra recompensa por nuestro presente. Por supuesto que en la vida las sorpresas que ésta misma nos guarda dejan a veces mucho que desear, pero no nos estamos refiriendo a éstas en concreto. Es nuestra proyección lo que importa para el desarrollo de nuestro presente. Las influencias y perspectivas que nos hagan progresar como individuos serán las determinantes para nuestro crecimiento.&lt;/p>
&lt;p>¿Qué puede haber más importante sino nuestra plenitud en nuestro desarrollo sincero como personas?&lt;/p>
&lt;p>No dejemos que el mal tiempo nos impida ser nosotros. No dejemos de prosperar en la medida de nuestras posibilidades. Proyectemos hacia el mundo aquello que nosotros quisiéramos sentir; pues nosotros somos el mundo, pero, sobre todo, el futuro.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/20.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>El Programador Pragmático</title><subtitle>El camino hacia la maestría</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><published>2016-10-01T00:00:00+00:00</published><updated>2016-10-01T00:00:00+00:00</updated><author><name>
Andrew Hunt</name></author><author><name>
David Thomas</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-pragmatic-programmer/"/><id>https://chemaclass.com/es/readings/the-pragmatic-programmer/</id><summary type="html">Un clásico sobre cómo convertirse en mejor desarrollador. Mentalidad, herramientas y buenas prácticas para dominar el oficio.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>&lt;h3 id="aprendizajes">Aprendizajes&lt;/h3>
&lt;ul>
&lt;li>No te repitas.&lt;/li>
&lt;li>La mentalidad importa tanto como el conocimiento.&lt;/li>
&lt;li>El buen código es más fácil de cambiar que el mal diseño.&lt;/li>
&lt;li>Elige buenas herramientas y domínalas.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h4 id="no-te-repitas-dry">No Te Repitas (DRY)&lt;/h4>
&lt;ul>
&lt;li>Cada pieza de conocimiento debe tener una única representación clara dentro del sistema.&lt;/li>
&lt;li>DRY trata sobre la duplicación de conocimiento, de intención. Es expresar lo mismo en dos lugares, quizás de formas diferentes.&lt;/li>
&lt;/ul>
&lt;h4 id="la-mentalidad-importa-tanto-como-el-conocimiento">La mentalidad importa tanto como el conocimiento&lt;/h4>
&lt;p>Aspectos clave:&lt;/p>
&lt;ul>
&lt;li>Asume la responsabilidad de tu trabajo. Sin excusas ni culpas cuando algo sale mal.&lt;/li>
&lt;li>Escribe software “suficientemente bueno”. No pierdas tiempo perfeccionando lo que ya funciona para el producto.&lt;/li>
&lt;li>No ignores la deuda técnica. Los autores usan la analogía de las ventanas rotas:&lt;/li>
&lt;/ul>
&lt;blockquote>
&lt;p>No dejes “ventanas rotas” (malos diseños, decisiones incorrectas o código pobre) sin reparar.
Arregla cada una cuando la descubras. Si no hay tiempo, al menos tápalas.
Comenta el código problemático, muestra un mensaje de “No Implementado” o usa datos ficticios temporalmente.&lt;/p>
&lt;/blockquote></content></entry><entry xml:lang="es"><title>Capítulo 19: Septiembre, 2016</title><published>2016-09-01T00:00:00+00:00</published><updated>2016-09-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-septiembre/"/><id>https://chemaclass.com/es/books/oeur/2016-septiembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/TPko2Is166c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="solo-se-vive-una-vez">Solo se vive una vez&lt;/h2>
&lt;p>Solo se vive una vez, o al menos hasta ahí es donde podemos leer. Todos tenemos problemas, en mayor o menor medida, en mayor o menor grado, de importancias tan relativas como los intereses e intenciones que pudieran tras los mismos esconderse.&lt;/p>
&lt;p>Mentirnos sobre nuestros pensamientos o, simplemente, sobre aquello que nosotros creemos entender por realidad hará que ésta no sea más que un engaño desde y hacia nosotros.&lt;/p>
&lt;p>Desde un punto objetivo, podríamos afirmar que existe una realidad única para todos en la cual todos convivimos y compartimos sus recursos y bienes. Sin embargo, si tenemos en cuenta el contexto desde el que formulamos la pregunta «¿Qué es la realidad sino nuestra ilusión de la percepción de la misma?», no nos atrevemos a afirmar que existe una única realidad para todos, sino, más bien, que todos formamos, a partir de nuestras individuales percepciones, una realidad aparentemente común.&lt;/p>
&lt;p>El mayor mal que podríamos causar al mundo, a la realidad tangible y a todo aquello práctico, así como pragmático, es y será la falta de seriedad en nuestra honradez hacia nuestra persona. Aquello que nos empequeñece es la carencia de lo esencial para con nosotros: nuestra lealtad. Aquello que nos hace grandes frente al mundo es la sobredosis de sinceridad que con nosotros diariamente deberíamos practicar.&lt;/p>
&lt;p>De dificultades estuvo, está y por supuesto estará llena la vida. Pero, en contraposición a las mismas, las actitudes juegan el papel de nuestras proyecciones, de nuestra realización profunda, de nuestra percepción de la objetividad.&lt;/p>
&lt;p>¿Qué es nuestra preocupación existencial sino el tema tabú por excelencia por su ya conocida ausente respuesta? Deberemos ser nosotros los que actuemos en todo momento. Nuestro rol nunca estuvo escrito. Ser los protagonistas será sólo cuestión de predisposición a serlo. ¡Predisposición sincera, insisto!&lt;/p>
&lt;p>A nuestra aparente realidad no deberíamos rogarle ni tan siquiera confiar más de lo que nuestros ojos pudieran ver; pues en la duda de la misma existencia residirá, para todo aquél que la busque, la respuesta.&lt;/p>
&lt;hr />
&lt;h2 id="jovenes-e-inocentes">Jóvenes e inocentes&lt;/h2>
&lt;p>Qué jóvenes e inocentes hemos sido, simplemente, al creer que podríamos evadir la madurez que en realidad nos rodea. La preocupación, justificada en nuestro compromiso, irá ligada a nuestra seriedad en nuestra profesión. Entender que el aprendizaje es y será siempre algo continuo y unido a nuestra responsable prudencia.&lt;/p>
&lt;p>Tantos errores hemos cometido y seguiremos cometiendo… que solamente con una continua mejora conseguiremos sentirnos realizados, pues habrá siempre tanto que renovar…&lt;/p>
&lt;p>Contamos con unos tiempos tan limitados que lo aburrido no debería tener cabida; vivir desanimados será, por tanto, no vivir.&lt;/p>
&lt;p>Aprender que entendernos no es algo fácil; no será, tampoco y en absoluto, algo de un día para otro. Sólo en la búsqueda del entendimiento podremos aprender del mismo.&lt;/p>
&lt;p>Hoy nos deberíamos leer con otros ojos. Ojos renovados en el día de hoy, apuntando al triunfo del mañana incierto.&lt;/p>
&lt;p>Ha sido este, verdaderamente, un camino hacia nuestra comprensión donde hemos aprendido muchas cosas juntos, recordado otras tantas y soñadas otras cuantas. Pero, sin duda alguna, una experiencia que merece no ser olvidada, al menos para nuestro recuerdo.&lt;/p>
&lt;hr />
&lt;h2 id="terminando-para-comenzar">Terminando para comenzar&lt;/h2>
&lt;p>Terminando para comenzar de nuevo. Sonrío. He procurado jugar con las palabras de tantas formas posibles. He intentado alcanzar el límite de sus posibles conexiones y son tantas… Me leo de nuevo y disfruto; me hace sentir vivo.&lt;/p>
&lt;p>¿Sabéis acaso qué es que se os ponga la piel de gallina al pensar en vuestro presente? ¿En todo lo que tenéis por delante esperándoos?&lt;/p>
&lt;p>Tengo unas ganas inmensas de volver a ver a mi familia, abrazarlos y sentirlos cerca. Pero no por ello estoy dispuesto a dejar pasar la oportunidad por la que he estado luchando todos estos años y los que me quedan.&lt;/p>
&lt;p>Me motiva a seguir tantas cosas…, pero de entre todas ellas destaco el ver crecer a mis hermanos y disfrutar juntos de un presente repleto de sorpresas; no permitir que ninguno pueda sentirse jamás solo ni falto de un hermano mayor.&lt;/p>
&lt;p>Son ya dos años en los que la madurez parece nunca terminar de alcanzarnos… aunque lo pudiera diariamente pretender. La brevedad del tiempo no es el verdadero problema, sino el uso que nosotros hacemos de él. Terminar sin terminar del todo, pudiendo comenzar de nuevo una y otra vez; a la muerte me refiero, pues aún estamos vivos.&lt;/p>
&lt;p>Amar nuestra familia. Disfrutar, pero sobre todo aprovechar las oportunidades. Luchar por nuestra superación personal, por entendernos y no conformarnos con ser aquello que no queremos ser.&lt;/p>
&lt;p>Como si fuera el último día de nuestras vidas. Seamos realmente nosotros.&lt;/p>
&lt;hr />
&lt;h2 id="el-dia-de-manana">El día de mañana&lt;/h2>
&lt;p>Vivir no es respirar un aire lleno de incertidumbres y desventuras.&lt;/p>
&lt;p>Querer no es patalear o esconderse tras el falso refugio del derecho o la razón.&lt;/p>
&lt;p>Crecer no es despertarnos día tras día sin ambiciones tanto a corto como a largo plazo.&lt;/p>
&lt;p>Despertar no es abrir los ojos tras el sueño que podríamos preferir frente a nuestra presente realidad.&lt;/p>
&lt;p>Aprender no es memorizar ni repetir sin entendimiento.&lt;/p>
&lt;p>Luchar no es crecernos en un simulado aliento de superioridad frente a alguien que no sea nosotros.&lt;/p>
&lt;p>Permitir no es acertado cuando no sea realmente merecido.&lt;/p>
&lt;p>Dejar que la inseguridad nos juzgue no es equilibrio ni armonía.&lt;/p>
&lt;p>Extrañar no es ausencia de dolor.&lt;/p>
&lt;p>Vivir es tomarnos en serio el antes y el después de nuestros días.
Querer crecer despertando para aprender a luchar nos permitirá dejar de extrañar vivir porque estaremos verdaderamente viviendo.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/19.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Sprint</title><subtitle>Cómo resolver grandes problemas y probar nuevas ideas en solo cinco días</subtitle><category term="agile" scheme="https://chemaclass.com/tags/agile/" label="Agile"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><category term="team-management" scheme="https://chemaclass.com/tags/team-management/" label="Team Management"/><published>2016-09-01T00:00:00+00:00</published><updated>2016-09-01T00:00:00+00:00</updated><author><name>
Jake Knapp</name></author><author><name>
John Zeratsky</name></author><author><name>
Braden Kowitz</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/sprint/"/><id>https://chemaclass.com/es/readings/sprint/</id><summary type="html">En cinco días pasas de idea a prototipo y decisión. Una fórmula práctica para probar ideas, tanto en startups como en grandes empresas.</summary><content type="html">&lt;span id="continue-reading">&lt;/span>
&lt;p>“Sprint ofrece una fórmula para probar ideas que funciona en startups y grandes empresas. En cinco días pasas de idea a prototipo y decisión, ahorrando horas y dinero. Lectura obligada para emprendedores.” - Eric Ries, autor de El método Lean Startup&lt;/p>
&lt;p>Tres socios de Google Ventures comparten un proceso de cinco días para resolver problemas difíciles, probado en más de cien empresas.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/AuktI4lBj6M"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Capítulo 18: Agosto, 2016</title><published>2016-08-01T00:00:00+00:00</published><updated>2016-08-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-agosto/"/><id>https://chemaclass.com/es/books/oeur/2016-agosto/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/2j8_ZA_yxyA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="vuelvo-a-ser-yo">Vuelvo a ser yo&lt;/h2>
&lt;p>Soy yo el que os habla de nuevo, pues no querría dar por concluido este viaje lleno de aventuras que durante estos años me han acompañado, procurando recopilar en la medida de lo posible todos aquellos pensamientos que se han dejado atrapar, mientras que otros tantos no quisieron ser escritos por quién sabrá qué motivos…&lt;/p>
&lt;p>Vuelvo a ser yo el que os escribe, os siente, os piensa. Aquél que escribe para sí mismo, así como para vosotros que me leéis.&lt;/p>
&lt;p>Vuelvo a comer sano, a sentirme vivo así como a hacer deporte con frecuencia. A cuidarme y a preocuparme realmente por lo que hago. Vuelvo a procurar no perder la cabeza en tornados que tienden al desconcierto innecesario. Vuelvo a sentirme vivo y, con ello, a sentirme feliz conmigo mismo y con lo que hago.&lt;/p>
&lt;p>Soy consciente de que la vida consiste y consistirá en altibajos constantes. A veces incluso aparentemente arbitrarios, donde la desorientación y las preocupaciones nos podrán nublar en quién sabe cuántas ocasiones consecutivas…, pero que ello no nos quite el aliento ni nuestro deseo de superación.&lt;/p>
&lt;p>Ha sido un viaje repleto de incontables experiencias, donde las responsabilidades y los deberes nacían de tantos lugares y formas distintas, a veces incluso en intervalos tan breves de tiempo. ¿Quién podría haber estado preparado o advertido de tal situación? Simplemente asombroso.&lt;/p>
&lt;p>Quisiera mejorar como quise hacerlo hace años atrás…, y creo haber encontrado la respuesta que tanto buscaba: es el aprendizaje continuo, sin más misterio, el que nos conducirá día tras día hacia nuestra superación. ¡Aprendizaje sobre nosotros mismos!&lt;/p>
&lt;p>¿Qué somos? ¿Qué queremos ser? ¿Hacia dónde vamos? ¿Qué estamos haciendo aquí? ¿Para qué todo esto? ¿Cuál es nuestro cometido o motivo? Todas estas preguntas tienen la misma respuesta. Una respuesta que podrá ser tan diferente como nosotros así lo queramos. La respuesta más breve y sencilla, así como la más compleja en sí misma: la respuesta eres tú.&lt;/p>
&lt;hr />
&lt;h2 id="con-otros-ojos">Con otros ojos&lt;/h2>
&lt;p>Bajo los ojos de aquella responsabilidad madura que nos enseña a ser quienes queremos ser realmente como si nosotros no supiéramos aún qué queremos para nosotros mismos. Desde aquella perspectiva que nos ayuda a desarrollar nuestros instintos más simples y primitivos, ligada a nuestro Yo más cuerdo y humano.&lt;/p>
&lt;p>¿Qué podría ser nuestra superación sino la sincera evolución de la madurez en nuestras ideas? No será más que el replanteamiento de nuestros juicios y sensaciones, así como de nuestros conocimientos y percepciones. Aquello que nos permitirá mejorar directamente desde la raíz de nuestros proyectos e ilusiones, así como convicciones de todos aquellos conceptos de los que creemos no estar equivocados.&lt;/p>
&lt;p>La madurez no puede ir sino ligada directamente al compromiso de nuestra responsabilidad y a la seriedad en nuestro deber. Con amor y con pasión… siempre.&lt;/p>
&lt;p>Bien es cierto que con otros ojos nos corregimos y nos hablamos hoy en día, y que muy seguramente lo seguiremos haciendo de aquí a un mañana no tan lejano, pues hemos aprendido tantas cosas en estos años…&lt;/p>
&lt;p>Con otros ojos mírome. Con otros ojos, simplemente, crecemos y queremos seguir creciendo hasta perder el aliento.&lt;/p>
&lt;p>Por vosotros, por nosotros.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/18.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>El Programador Limpio</title><subtitle>Un código de conducta para programadores profesionales</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="communication" scheme="https://chemaclass.com/tags/communication/" label="Communication"/><published>2016-08-01T00:00:00+00:00</published><updated>2016-08-01T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/the-clean-coder/"/><id>https://chemaclass.com/es/readings/the-clean-coder/</id><summary type="html">Guía de conducta para programadores profesionales</summary><content type="html">&lt;p>Los programadores que triunfan bajo presión e incertidumbre comparten algo: les importa de verdad crear buen software. Lo tratan como un oficio. Son profesionales.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="aprenderas">Aprenderás&lt;/h3>
&lt;ul>
&lt;li>Qué significa ser un verdadero artesano del software&lt;/li>
&lt;li>Cómo lidiar con conflictos, plazos ajustados y jefes difíciles&lt;/li>
&lt;li>Cómo entrar en flujo y superar el bloqueo&lt;/li>
&lt;li>Cómo manejar la presión y evitar el agotamiento&lt;/li>
&lt;li>Cómo combinar actitudes clásicas con nuevos paradigmas de desarrollo&lt;/li>
&lt;li>Cómo gestionar tu tiempo y evitar atascos&lt;/li>
&lt;li>Cómo crear entornos donde los programadores y equipos prosperen&lt;/li>
&lt;li>Cuándo decir &lt;strong>No&lt;/strong> y cómo hacerlo&lt;/li>
&lt;li>Cuándo decir &lt;strong>Sí&lt;/strong> y qué implica realmente&lt;/li>
&lt;/ul>
&lt;hr />
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;h3 id="capitulo-1-profesionalismo">Capítulo 1: Profesionalismo&lt;/h3>
&lt;ul>
&lt;li>Ser profesional significa asumir responsabilidad total de tus acciones.&lt;/li>
&lt;li>Primera regla: no dañes ni la función ni la estructura del software.&lt;/li>
&lt;li>Siempre cometerás errores, pero aprende de cada uno.&lt;/li>
&lt;li>Confía en el código que liberas. Espera que QA no encuentre nada.
&lt;ul>
&lt;li>Prueba una y otra vez.&lt;/li>
&lt;li>Automatiza tus tests.&lt;/li>
&lt;li>Diseña el código para que sea fácil de probar.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Sigue la regla del Boy Scout: deja el código un poco más limpio de como lo encontraste.&lt;/li>
&lt;li>Tu carrera es &lt;strong>tu responsabilidad&lt;/strong>, no la de tu jefe.
&lt;ul>
&lt;li>Dedica 20 horas semanales extra a mejorar tus habilidades.&lt;/li>
&lt;li>Lee, experimenta, practica (katas), habla con otros, colabora, mentoriza.&lt;/li>
&lt;li>Que sea divertido.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Conoce tu dominio e identifícate con tu cliente (nunca “nosotros vs. ellos”).&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-2-decir-no">Capítulo 2: Decir No&lt;/h3>
&lt;ul>
&lt;li>Los profesionales tienen el coraje de decir no a sus jefes.&lt;/li>
&lt;li>Managers y desarrolladores a menudo chocan porque sus objetivos a corto plazo entran en conflicto.&lt;/li>
&lt;li>Cuanto mayor el riesgo, más valioso es un “no” y más difícil de decir.&lt;/li>
&lt;li>Los buenos equipos trabajan hacia un sí, pero solo un sí correcto que funcione en la práctica.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-3-decir-si">Capítulo 3: Decir Sí&lt;/h3>
&lt;ul>
&lt;li>Hay tres partes para hacer un compromiso:
&lt;ul>
&lt;li>Dices que lo harás&lt;/li>
&lt;li>Lo dices en serio&lt;/li>
&lt;li>Realmente lo haces&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Tu compromiso debe respetar los límites de lo que esperas (basado en tu experiencia) poder y no poder hacer.
&lt;ul>
&lt;li>Si reconoces que probablemente no podrás cumplir un compromiso, necesitas levantar una bandera roja inmediatamente.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-4-codificacion">Capítulo 4: Codificación&lt;/h3>
&lt;ul>
&lt;li>Programar requiere un nivel de concentración que pocas disciplinas exigen.&lt;/li>
&lt;li>“La zona” (o flujo) no es tan buena como parece: serás productivo localmente, pero puedes perder la visión global y producir diseños mediocres.&lt;/li>
&lt;li>Las interrupciones son malas distracciones.
&lt;ul>
&lt;li>El pair programming ayuda a gestionarlas.&lt;/li>
&lt;li>TDD hace que el contexto pre-interrupción sea reproducible.
&lt;ul>
&lt;li>Minimiza el tiempo de depuración.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Programar es una &lt;strong>maratón&lt;/strong>, no un sprint. Conserva energía y creatividad.&lt;/li>
&lt;li>Vete cuando sea hora, aunque estés en medio de algo importante.&lt;/li>
&lt;li>Reestima continuamente tu tiempo de finalización y avisa en cuanto veas que llegarás tarde.
&lt;ul>
&lt;li>No dejes que nadie te meta prisa.&lt;/li>
&lt;li>Define bien qué significa “terminado”, con requisitos de calidad altos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Programar es difícil para todos. Pide ayuda y ofrécela, especialmente como mentor.
&lt;ul>
&lt;li>No tengas vergüenza de preguntar.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-5-test-driven-development">Capítulo 5: Test-Driven Development&lt;/h3>
&lt;ul>
&lt;li>&lt;a rel="external" href="https://en.wikipedia.org/wiki/Test-driven_development">TDD&lt;/a> no es una cura milagrosa y es impráctico o inapropiado en algunos casos (raros).&lt;/li>
&lt;li>Ciclo TDD:
&lt;ol>
&lt;li>Añade un test&lt;/li>
&lt;li>Ejecuta todos los tests. El nuevo test debería fallar por razones esperadas&lt;/li>
&lt;li>Escribe el código más simple que pase el nuevo test&lt;/li>
&lt;li>Todos los tests deberían pasar ahora&lt;/li>
&lt;li>Refactoriza según sea necesario&lt;/li>
&lt;li>Repite&lt;/li>
&lt;/ol>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-6-practicar">Capítulo 6: Practicar&lt;/h3>
&lt;ul>
&lt;li>Una Kata de programación es un conjunto preciso de pulsaciones de teclas y movimientos de ratón coreografiados que simula la resolución de algún problema de programación.
&lt;ul>
&lt;li>Una Kata es sobre el proceso, no la solución.&lt;/li>
&lt;li>No estás resolviendo el problema porque ya conoces la solución.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-7-tests-de-aceptacion">Capítulo 7: Tests de Aceptación&lt;/h3>
&lt;ul>
&lt;li>Evita “basura entra, basura sale”. Asegúrate de entender los requisitos.
&lt;ul>
&lt;li>Entenderlos bien significa eliminar ambigüedad.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>La mejor forma es definir tests de aceptación:
&lt;ul>
&lt;li>Los tests automatizados verifican que el software cumple las condiciones del cliente.&lt;/li>
&lt;li>Pasar esos tests define “Terminado”.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Empieza a implementar solo cuando los tests estén definidos.&lt;/li>
&lt;li>Los tests unitarios son para programadores. Los tests de aceptación son para negocio y desarrolladores.&lt;/li>
&lt;li>Ejecuta todos los tests en integración continua y arregla los fallos de inmediato.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-8-estrategias-de-testing">Capítulo 8: Estrategias de Testing&lt;/h3>
&lt;ul>
&lt;li>QA es parte del equipo. Escriben tests de aceptación, casos de fallo, casos límite y hacen testing exploratorio.&lt;/li>
&lt;li>Pirámide de testing:
&lt;ul>
&lt;li>La mayoría son tests unitarios: por y para desarrolladores.&lt;/li>
&lt;li>Muchos son tests de componentes o integración: por QA/Negocio con ayuda de desarrolladores, para ambos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-9-gestion-del-tiempo">Capítulo 9: Gestión del tiempo&lt;/h3>
&lt;ul>
&lt;li>En desarrollo de software, gestionar bien el tiempo es esencial.&lt;/li>
&lt;li>Las reuniones son necesarias pero a menudo una pérdida de tiempo. Evita las que no aporten valor claro: es una obligación profesional.&lt;/li>
&lt;li>Las reuniones deben tener agenda y objetivo claro.
&lt;ul>
&lt;li>Las dailies ágiles son un formato eficiente.&lt;/li>
&lt;li>La planificación de iteración debería ocupar el 5% de la iteración.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>La concentración es un recurso escaso.
&lt;ul>
&lt;li>Úsala cuando la tengas y recarga con tareas simples y descansos.&lt;/li>
&lt;li>Para mejorarla:
&lt;ul>
&lt;li>Haz deporte.&lt;/li>
&lt;li>Busca estímulos creativos.&lt;/li>
&lt;li>Toma descansos cortos cada 45 minutos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-10-estimacion">Capítulo 10: Estimación&lt;/h3>
&lt;ul>
&lt;li>Las estimaciones son la mayor fuente de desconfianza entre negocio y desarrolladores. Los desarrolladores dan estimaciones que negocio trata como compromisos.
&lt;ul>
&lt;li>Ambos olvidan que una estimación es una distribución de probabilidad, no un número fijo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-11-presion">Capítulo 11: Presión&lt;/h3>
&lt;ul>
&lt;li>El profesional mantiene la calma bajo presión. Sigue sus disciplinas porque sabe que es la mejor forma de cumplir plazos.&lt;/li>
&lt;li>Evita situaciones de presión:
&lt;ul>
&lt;li>Haz solo compromisos que puedas cumplir.&lt;/li>
&lt;li>Mantén tu código limpio.&lt;/li>
&lt;li>Trabaja de forma que no necesites cambiar de método en crisis.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>No entres en pánico. Habla con tu equipo. No te aceleres. Confía en tus disciplinas.&lt;/li>
&lt;li>Ofrece hacer pairing a compañeros en crisis.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-12-colaboracion">Capítulo 12: Colaboración&lt;/h3>
&lt;ul>
&lt;li>A la mayoría de programadores les gusta trabajar solos. Pero hay que entender los objetivos de quienes nos rodean, incluido negocio.
&lt;ul>
&lt;li>Eso requiere &lt;strong>comunicación&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Dentro del equipo: solo la propiedad colectiva del código y el pairing producen buena comunicación.
&lt;ul>
&lt;li>Programar es &lt;strong>comunicarse&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-13-equipos-y-proyectos">Capítulo 13: Equipos y proyectos&lt;/h3>
&lt;ul>
&lt;li>Los equipos necesitan meses para consolidarse, conocerse y aprender a trabajar juntos.
&lt;ul>
&lt;li>Asignar personas a varios proyectos a la vez es mala idea. Romper un buen equipo también.&lt;/li>
&lt;li>Mejor asignar varios proyectos a un mismo equipo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-14-mentoria-aprendizaje-y-artesania">Capítulo 14: Mentoría, aprendizaje y artesanía&lt;/h3>
&lt;ul>
&lt;li>Los programadores jóvenes necesitan mentoría, ya sea implícita o explícita.&lt;/li>
&lt;li>El software controla todos los aspectos de nuestras vidas. Un período de entrenamiento y práctica supervisada es más que apropiado.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>En esta lección, Uncle Bob explica por qué es necesario escribir código limpio y establece las bases para lograrlo, tanto sociales como técnicas. El futuro de la programación se basa en un código ético y bien educado.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/7EmboKQH8lM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>En esta segunda lección, Uncle Bob habla del propósito de los comentarios. Rompe la idea de que comentar es algo que “hay que hacer” por ser supuestamente buena práctica. Para él, escribir un comentario es señal de fracaso: el buen código se explica solo. Menos comentarios = mejor código.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/2a_ytyt9sf8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>En esta tercera lección, Uncle Bob quiere crear conciencia sobre la necesidad de elevar el criterio al producir código. Señala la falta de preparación de muchos programadores como una de las principales causas de la ineficiencia en el desarrollo de software actual.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Qjywrq2gM8o"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;hr />
&lt;p>En esta cuarta lección, Uncle Bob introduce el Test-Driven Development (TDD). Es una práctica con curva de aprendizaje larga, pero produce código más robusto, seguro, mantenible y desarrollado con mayor eficiencia.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/58jGpV2Cg50"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>97 cosas que todo programador debería saber</title><subtitle>Sabiduría colectiva de los expertos</subtitle><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="career" scheme="https://chemaclass.com/tags/career/" label="Career"/><category term="productivity" scheme="https://chemaclass.com/tags/productivity/" label="Productivity"/><published>2016-07-15T00:00:00+00:00</published><updated>2016-07-15T00:00:00+00:00</updated><author><name>
Kevlin Henney</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/97-things-every-programmer-should-know/"/><id>https://chemaclass.com/es/readings/97-things-every-programmer-should-know/</id><summary type="html">97 consejos cortos y prácticos para mejorar como programador. Da igual qué lenguaje uses: aquí encontrarás nuevos enfoques, buenas prácticas y consejos sólidos de expertos.</summary><content type="html">&lt;p>97 consejos cortos y útiles para programadores. Da igual qué lenguaje uses: aquí encontrarás nuevos enfoques para viejos problemas, buenas prácticas y consejos de expertos para mejorar tu oficio.&lt;/p>
&lt;span id="continue-reading">&lt;/span>&lt;h3 id="mis-principales-aprendizajes">Mis principales aprendizajes&lt;/h3>
&lt;p>01.- Paga la deuda técnica lo antes posible.&lt;/p>
&lt;p>02.- Aprende y domina la &lt;strong>programación funcional&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>Hace tu código menos propenso a errores y más fácil de depurar.&lt;/li>
&lt;/ul>
&lt;p>03.- No adivines lo que haría un usuario; haz que los usuarios hagan cosas y obsérvalos.&lt;/p>
&lt;p>04.- &lt;strong>Automatiza&lt;/strong> los estándares de código.&lt;/p>
&lt;p>05.- Escribe código &lt;strong>simple&lt;/strong>, nombres descriptivos simples, relaciones simples.&lt;/p>
&lt;p>06.- Antes de refactorizar: considera los tests existentes y el código.&lt;/p>
&lt;ul>
&lt;li>Trabaja en incrementos, asegúrate de que los tests sigan pasando después de cada cambio.&lt;/li>
&lt;/ul>
&lt;p>08.- Siempre deja el código &lt;strong>más limpio&lt;/strong> de lo que lo encontraste, incluso si no lo escribiste.&lt;/p>
&lt;p>10.- Elige tus librerías/frameworks cuidadosamente para evitar complejidad innecesaria.&lt;/p>
&lt;p>11.- Haz tu código fácil de entender usando términos del &lt;strong>dominio&lt;/strong>.&lt;/p>
&lt;p>13.- El &lt;strong>formato&lt;/strong> del código también es importante.&lt;/p>
&lt;p>14.- Usa &lt;strong>revisiones&lt;/strong> de código enfocándote en compartir conocimiento entre miembros del equipo.&lt;/p>
&lt;p>15.- Objetos &lt;strong>inmutables&lt;/strong> siempre que sea relevante. Cada variable debería tener el menor alcance posible. Nunca incluyas más de cuatro argumentos de función.&lt;/p>
&lt;p>18.- Toma &lt;strong>responsabilidad&lt;/strong> de tu propia educación. Nunca dejes de aprender.&lt;/p>
&lt;ul>
&lt;li>Basta con dedicar un poco de tiempo cada semana: podcasts, cursos, libros…&lt;/li>
&lt;/ul>
&lt;p>19.- Al diseñar una API, apunta a hacerla &lt;strong>fácil de usar&lt;/strong>, no conveniente de codificar.&lt;/p>
&lt;p>20.- Despliega temprano y &lt;strong>frecuentemente&lt;/strong> – no lo dejes hasta el final del proyecto.&lt;/p>
&lt;p>22.- Mejorar tus habilidades debería ser algo diario.&lt;/p>
&lt;p>23.- Adapta el nivel técnico de tu lenguaje específico del dominio a tu audiencia.&lt;/p>
&lt;p>24.- &lt;strong>No tengas miedo&lt;/strong> de romper cosas si eso es lo necesario para arreglar cosas.&lt;/p>
&lt;p>25.- Ten cuidado con tus datos de prueba porque podrían hacerse públicos accidentalmente.&lt;/p>
&lt;p>26.- Maneja tus errores cuando aparecen, no lo dejes para después.&lt;/p>
&lt;p>27.- Aprende &lt;strong>diferentes&lt;/strong> lenguajes de programación.&lt;/p>
&lt;ul>
&lt;li>Aprende su propia “cultura” o forma de hacer las cosas.&lt;/li>
&lt;li>Definitivamente te hará un mejor programador.&lt;/li>
&lt;/ul>
&lt;p>28.- No solo captures tus errores, realmente manéjalos.&lt;/p>
&lt;p>29.- Entiende al menos algunas complejidades de tu negocio, no solo programación.&lt;/p>
&lt;p>30.- &lt;strong>DRY&lt;/strong> – No Te Repitas.&lt;/p>
&lt;p>32.- Encapsula comportamiento, no solo estado.&lt;/p>
&lt;p>33.- Los números de punto flotante inevitablemente pueden crear errores en los cálculos.&lt;/p>
&lt;p>34.- El &lt;strong>código abierto&lt;/strong> es una gran oportunidad para hacer trabajo interesante y desarrollar habilidades de programación.&lt;/p>
&lt;p>36.- Da el &lt;strong>contexto&lt;/strong> adecuado cuando pidas ayuda, porque la gente no puede adivinar lo que está pasando.&lt;/p>
&lt;p>37.- No se trata de echar muchas horas. Aprende a &lt;strong>trabajar con eficacia&lt;/strong>.&lt;/p>
&lt;ul>
&lt;li>Dedica tiempo a aprender y a pensar en lo que haces.&lt;/li>
&lt;/ul>
&lt;p>38.- Escribe &lt;strong>reportes de bugs&lt;/strong> apropiados:&lt;/p>
&lt;ul>
&lt;li>Precisamente cómo reproducir el bug,&lt;/li>
&lt;li>con qué frecuencia aparece,&lt;/li>
&lt;li>qué debería haber pasado,&lt;/li>
&lt;li>qué realmente pasó.&lt;/li>
&lt;/ul>
&lt;p>39.- No escribas código innecesario.&lt;/p>
&lt;ul>
&lt;li>Solo escribe código que añada valor y se necesite ahora mismo.&lt;/li>
&lt;li>&lt;strong>Elimina código muerto&lt;/strong>.&lt;/li>
&lt;/ul>
&lt;p>41.- La causa principal de lentitud en aplicaciones suele ser el exceso de llamadas remotas &lt;strong>entre procesos&lt;/strong>, no el algoritmo.&lt;/p>
&lt;ul>
&lt;li>Por ejemplo, conexiones a base de datos.&lt;/li>
&lt;/ul>
&lt;p>42.- Si aparece una advertencia del compilador, arréglala.&lt;/p>
&lt;ul>
&lt;li>No lo dejes para después, aunque no vaya a ser problema en producción.&lt;/li>
&lt;li>“Compilador” incluye cualquier análisis estático en lenguajes no compilados.&lt;/li>
&lt;/ul>
&lt;p>43.- Aprender a usar herramientas de &lt;strong>línea de comandos&lt;/strong> es una experiencia educativa valiosa, y podrías terminar prefiriéndolas.&lt;/p>
&lt;p>44.- Aprende (al menos) dos lenguajes y paradigmas diferentes bien.&lt;/p>
&lt;p>45.- Invierte algo de tiempo para &lt;strong>dominar&lt;/strong> el IDE que usas.&lt;/p>
&lt;ul>
&lt;li>Te hará la vida más fácil y te ahorrará tiempo a largo plazo.&lt;/li>
&lt;/ul>
&lt;p>46.- Conoce y trabaja con tus limitaciones: presupuesto, recursos, tiempo, etc.&lt;/p>
&lt;p>47.- Trabaja en &lt;strong>tareas pequeñas&lt;/strong>. No tengas miedo de descartar cambios.&lt;/p>
&lt;ul>
&lt;li>El conocimiento adquirido no se pierde.&lt;/li>
&lt;li>Ten claro qué quieres lograr antes de empezar.&lt;/li>
&lt;/ul>
&lt;p>48.- Usa una BD relacional si tu aplicación va a manejar un conjunto grande, persistente e interconectado de datos.&lt;/p>
&lt;p>49.- Aprende a &lt;strong>comunicar&lt;/strong> bien: no solo con tu máquina, también con negocio. Y quizás otro idioma.&lt;/p>
&lt;ul>
&lt;li>Es bueno para las conexiones y para la vida.&lt;/li>
&lt;/ul>
&lt;p>54.- Piensa dos veces antes de implementar “soluciones temporales”.&lt;/p>
&lt;p>55.- Haz la &lt;strong>GUI&lt;/strong> fácil de usar bien y difícil de usar mal.&lt;/p>
&lt;ul>
&lt;li>Anticipa errores y busca cómo prevenirlos.&lt;/li>
&lt;li>Se trata de la experiencia del usuario, no de la tuya.&lt;/li>
&lt;/ul>
&lt;p>56.- En proyectos, encuentra formas de hacer &lt;strong>lo invisible visible&lt;/strong>.&lt;/p>
&lt;p>57.- El paso de mensajes lleva a mejor &lt;strong>escalabilidad&lt;/strong> en sistemas paralelos.&lt;/p>
&lt;p>58.- Escribe código que otras personas puedan &lt;strong>entender&lt;/strong> fácilmente.&lt;/p>
&lt;p>59.- El &lt;strong>polimorfismo&lt;/strong> reduce la necesidad de if/else, lo que produce código más corto y seguro.&lt;/p>
&lt;p>60.- QA es tu amigo, no tu enemigo.&lt;/p>
&lt;p>61.- Versiona tus releases.&lt;/p>
&lt;p>62.- Asegúrate de que tu código fuente indique claramente lo que el programa está haciendo.&lt;/p>
&lt;p>63.- Aprende sobre el proceso de build. Es una parte importante del desarrollo.&lt;/p>
&lt;p>64.- Practica &lt;strong>pair programming&lt;/strong>.&lt;/p>
&lt;p>65.- Prefiere &lt;strong>tipos específicos del dominio&lt;/strong> sobre tipos primitivos.&lt;/p>
&lt;ul>
&lt;li>Hacen el código más legible y menos propenso a errores en el desarrollo.&lt;/li>
&lt;/ul>
&lt;p>67.- Un profesional toma &lt;strong>responsabilidad personal&lt;/strong> por su carrera y su código.&lt;/p>
&lt;p>68.- Usa control de versiones.&lt;/p>
&lt;p>69.- A veces la mejor forma de resolver un problema es alejarte del ordenador y dejar que la solución aparezca mágicamente en tu mente.&lt;/p>
&lt;p>70.- Leer código es una buena forma de &lt;strong>aprender&lt;/strong>. El código de otras personas o tu código antiguo.&lt;/p>
&lt;p>72.- Reinventar la rueda es una gran forma de desarrollar tus habilidades.&lt;/p>
&lt;p>75.- Si el código que escribiste es verdaderamente horrible, no intentes arreglarlo. &lt;strong>Bórralo&lt;/strong> y empieza de nuevo.&lt;/p>
&lt;p>76.- Aplica el Principio de Responsabilidad Única (&lt;strong>SRP&lt;/strong>).&lt;/p>
&lt;p>77.- Si alguien pide un cambio de producto, no lo descartes aunque no estés de acuerdo. Pregunta por qué.&lt;/p>
&lt;ul>
&lt;li>Llegarás a conversaciones más productivas y mejores resultados.&lt;/li>
&lt;/ul>
&lt;p>78.- Si estás haciendo lo mismo una y otra vez, intenta encontrar una forma de &lt;strong>automatizarlo&lt;/strong>.&lt;/p>
&lt;p>79.- Aprovecha las herramientas de análisis de código.&lt;/p>
&lt;p>80.- Escribe tests basados en la &lt;strong>funcionalidad deseada&lt;/strong> de tu programa, no en comportamiento incidental.&lt;/p>
&lt;p>83.- El testing toma tiempo, pero asegura la &lt;strong>calidad&lt;/strong> del producto final. Hazlo.&lt;/p>
&lt;p>85.- Hay muchos beneficios en el trabajo colaborativo y pair programming.&lt;/p>
&lt;p>86.- A veces arreglar un error en el código lleva a descubrir un error oculto.&lt;/p>
&lt;p>87.- Escribe código &lt;strong>pensando en otros programadores&lt;/strong>.&lt;/p>
&lt;p>88.- Aprende a usar herramientas Unix. Aprende a usar el &lt;strong>terminal&lt;/strong>.&lt;/p>
&lt;p>89.- Usa el algoritmo y estructura de datos correctos para el trabajo.&lt;/p>
&lt;ul>
&lt;li>Para hacer eso, necesitas entenderlos bien.&lt;/li>
&lt;/ul>
&lt;p>90.- Ten una buena política de logging.&lt;/p>
&lt;p>91.- Usar el principio DRY te ayuda a identificar y reparar cuellos de botella de rendimiento.&lt;/p>
&lt;p>92.- Testers y programadores deberían &lt;strong>colaborar&lt;/strong>.&lt;/p>
&lt;p>93.- Escribe código como si tuvieras que mantenerlo &lt;strong>el resto de tu vida&lt;/strong>.&lt;/p>
&lt;p>94.- Intenta escribir &lt;strong>funciones “pequeñas”&lt;/strong>.&lt;/p>
&lt;ol start="95">
&lt;li>Los buenos tests actúan como &lt;strong>documentación&lt;/strong> para el código que prueban.&lt;/li>
&lt;/ol>
&lt;ul>
&lt;li>Describen cómo funciona el código.&lt;/li>
&lt;/ul>
&lt;ol start="96">
&lt;li>Para ser un buen programador, tienes que preocuparte por la &lt;strong>calidad&lt;/strong> del código.&lt;/li>
&lt;/ol>
&lt;p>97.- &lt;strong>Habla con tus clientes&lt;/strong> antes de asumir que entiendes lo que quieren. De verdad.&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 17: Julio, 2016</title><published>2016-07-01T00:00:00+00:00</published><updated>2016-07-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-julio/"/><id>https://chemaclass.com/es/books/oeur/2016-julio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/m2YCG2wpKhA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="entendimiento">Entendimiento&lt;/h2>
&lt;p>Darnos cuenta de la delicadeza del todo, del esfuerzo necesario y diario que requiere mantenernos constantes en nuestra tan ansiada satisfacción. En este anhelo de emociones, en ocasiones tan dispares, que como una marea podría verse reflejada sobre el mismo océano.&lt;/p>
&lt;p>A aguas calmadas nos quisiéramos parecer, pero sólo en su medida necesaria. Porque no es lo mismo necesitar aquello que deseamos que desear aquello que pudiéramos realmente necesitar. Tanta prudencia hace falta para mantenernos cuerdos en esta realidad repleta de imprevistos.&lt;/p>
&lt;p>Porque al final todo será cuestión de entendimiento y comprensión hacia el mundo: sus capacidades de respuesta frente a nuestra inquietud, sus novelas diarias e historias perdidas, sus incertidumbres desconsoladas y olvidadas en un posible caos infinito… No será cuestión más allá de una ilusión todo aquello que se nos escape al entendimiento.&lt;/p>
&lt;p>En este concierto sin orquesta; en este desconcierto sin aparente principio ni respuesta. Decisiones que pudieron destruirnos por completo. Lecturas de la vida que no supimos comprender. Argumentos que no sabían siquiera cómo darse cabida en nuestro entender.&lt;/p>
&lt;p>Entendimiento comprensivo de la lectura diaria de nuestras vidas: será aquello la mayoría de nuestras más profundas y sinceras preguntas sin respuesta.&lt;/p>
&lt;hr />
&lt;h2 id="eterno-retorno">Eterno retorno&lt;/h2>
&lt;p>Nos referiremos a un eterno retorno siempre y cuando la búsqueda sincera de nuestra superación se esté llevando a cabo. Volveremos a equivocarnos, de seguro fracasaremos en tantos y tantos de nuestros intentos, pero al final volveremos a nuestro camino, donde por meta se encontrará nuestra profunda superación personal.&lt;/p>
&lt;p>Darnos cuenta de este retorno no por leerlo, sino por vivirlo. La experiencia será nuestra mayor maestra tanto como dejemos que nos enseñe. Se nos prestarán puertas abiertas o quizá hayamos sido simplemente nosotros los que las hayamos abierto, pero, con la real importancia de nuestra palabra, seremos nosotros los que tendremos que decidir y actuar en consecuencia; nos referimos al deber de si entrar, o no, en ellas.&lt;/p>
&lt;p>Retornar no en otra vida posible —tan incierta como estúpida— sino en ésta. En sentirnos desbordados para advertirnos, otro día, de nuestro anhelo tan añorado, inundándonos de nuevo sin previo aviso.&lt;/p>
&lt;p>Tan paradójico como respuestas pudiéramos encontrarle al sentido de aquello que deseemos realmente descubrir. Y es que posiblemente ahí se encuentre parte de nuestra trayectoria: en el intento de mantener el rumbo con mayor o menor lucidez dependiendo de con qué ocasiones nos encontremos, pero sobre todo de cómo las enfrentemos.&lt;/p>
&lt;p>Etapas que cierran. Comienzos que terminan. Finales que se acercan. Nosotros como eternos temporales.&lt;/p>
&lt;hr />
&lt;h2 id="disposicion">Disposición&lt;/h2>
&lt;p>Pensar que no podremos o que no damos para más es simplemente una falacia. Lo que entendemos por nuestra capacidad real, o más bien lo que creemos entender de ella, no es más que una mera y abstracta percepción de lo que nosotros estimamos de la misma. Estimar no será más que la consideración de aquello necesario para alcanzar una meta dispuesta.&lt;/p>
&lt;p>La proximidad de nuestra percepción con lo que nosotros esperamos de la realidad que nos rodea será directamente proporcional a nuestra predisposición, así como preparación que tengamos frente a ello.&lt;/p>
&lt;p>La simple negación de nuestra posible predisposición hacia aquello que aparentemente deseemos alcanzar implicará, sin necesidad de palabras ni otros argumentos, un freno desconcertante. Freno culpable de nuestra falta de aliento, cuyas incógnitas crecerán conforme el paso de los días valiéndose de nuestras dudas para pisar más y más fuerte.&lt;/p>
&lt;p>La cuestión de la cuestión. Preparemos nuestra disposición hacia y por nosotros. Mejoremos nuestras habilidades sin dejar de formarnos, pero, sobre todo, sin dejar nunca de querer mejorar.&lt;/p>
&lt;p>Es momento de prestarnos más atención, especialmente en aquellos momentos que más nos haga falta. ¿Quién dijo que hubiera prisa en este juego donde la voluntad no tiene por qué ir necesariamente siempre con las decisiones finales que escogemos? A esto nos referimos cuando hablamos de perseverancia en nuestra formación: porque nunca sabremos con total exactitud si éste será, por suerte o por desgracia, el último día de nuestras vidas.&lt;/p>
&lt;p>Tan valiosas y singulares como nosotros las hayamos querido trabajar. Tan inestimables y extraordinarias como nosotros las hayamos querido considerar. Tan valerosas y reales como nosotros, durante todo este camino, las hayamos querido formar.&lt;/p>
&lt;hr />
&lt;h2 id="mientras-pasa-el-tiempo">Mientras pasa el tiempo&lt;/h2>
&lt;p>Mientras pasan los años, nuestra existencia se ve obligada a marchitar. La longevidad de nuestra vida será tan limitada como inesperadamente pudiera verse sorprendida en tantos puntos accidentales de la misma.&lt;/p>
&lt;p>Con el paso del tiempo pasa de todo menos él mismo, que con sangre fría parece permanecer estático, siendo a su vez el centro, así como raíz, de cualquier tema.&lt;/p>
&lt;p>Quizá no estemos más que regresando una y otra vez a aquel momento tan ansiado por nuestra parte. ¿Qué es casual en esta vida sino aquello que se nos pudiera escapar a nuestro periodo?&lt;/p>
&lt;p>Mientras pasa el tiempo, nada puede detenerse; todo queda condicionado con el mismo. Todos, sin excepción, quedamos condicionados. No existe el tiempo, sino nosotros, que somos aquéllos que no podemos detenernos.&lt;/p>
&lt;p>Con el transcurso del mismo, es él el único que no transcurre. Cada segundo, cada instante…: no son éstos los que ocurren, sino nosotros.&lt;/p>
&lt;p>No nos estamos refiriendo a aquello que no es más que una invención que nos ayuda a contar, a medir y a calcular, al fin y al cabo. Hablamos de aquellos momentos que pasan no sólo cuando levantamos la mirada, sino también cuando la bajamos o la giramos. Al tiempo que pasa cuando creemos que estamos dejando pasar el tiempo, lo que realmente estamos dejando pasar no es el tiempo, sino a nosotros mismos.&lt;/p>
&lt;hr />
&lt;h2 id="algunos">Algunos&lt;/h2>
&lt;p>No nos daremos cuenta de lo verdaderamente importante para nosotros hasta que sintamos desesperadamente esa sensación que nos demuestre de forma empírica, desde su máxima complejidad hasta su tímida sencillez, los frutos del camino que estamos persiguiendo.&lt;/p>
&lt;p>Algunos simplemente no estarán nunca preparados; y no porque no puedan, sino porque no querrán ser más que lo que ellos pudieran creer dentro de su confort ya condicionado.&lt;/p>
&lt;p>Porque no se trata de qué somos ahora, sino de hacia dónde estamos siendo dirigidos en este preciso instante por nuestra actitud y voluntad, y de cómo a éstas les hacemos caso en las medidas de nuestras posibilidades. Porque más allá del simple hecho de las decisiones que podamos tomar, deberemos asumir sus riesgos y actuar en consecuencia: ahí estará la principal diferencia entre unos y otros.&lt;/p>
&lt;p>No todos se atreverán a ser parte. No todos querrán serlo, pues no todos estarán dispuestos a pagar un precio que en apariencia nos pudiera exceder. Nada más lejos de la realidad, pues lo que de verdad nos acabará desbordando será el descuido, en su mayoría, de nuestra profunda y sincera escucha hacia lo que realmente deseamos.&lt;/p>
&lt;p>El miedo a las responsabilidades, al exceso de libertad, a la experiencia enriquecedora y al tiempo bien invertido. El temor a dejar de ser aquello que apenas costaba esfuerzo mantener, por su evolución en constante cambio que cada día requiere tiempo y atención. El superhombre no será posible de la noche a la mañana.&lt;/p>
&lt;hr />
&lt;h2 id="lo-mas-dificil">Lo más difícil&lt;/h2>
&lt;p>Lo más difícil de la vida es llegar a comprender la convivencia que existe y existirá con nuestra persona. Aprender que no todos los días serán perfectos a nuestros ojos y que habrá, más de uno incluso, en los que nos sintamos verdaderamente arrebatados incluso por nosotros.&lt;/p>
&lt;p>Llegará el día en el que nos demos cuenta de lo equivocados que podemos llegar a estar, siendo entonces afortunados en nuestro aprendizaje, especialmente cuando sobre nosotros pudiera tratarse porque, siempre y cuando nos seamos sinceros, seremos verdaderamente quienes queramos ser.&lt;/p>
&lt;p>Vivir en una mentira o en una, simplemente, inconsciente realidad nos restará la vida que nos pertenece junto a todo aquello que podríamos experimentar. Podríamos afirmar, por tanto y sin miedo alguno, que la verdad se encuentra en la sinceridad hacia nosotros.&lt;/p>
&lt;p>Lo más difícil de esta vida es aprender de y para nosotros. Que no tendrá por qué haber dos días iguales, sino que más bien los habrá todos y cada uno de ellos distintos en el grado por el que nosotros apostemos y decidamos avanzar. Sin duda alguna, lo más difícil será alcanzar el entendimiento de la variedad en todos los sentidos.&lt;/p>
&lt;p>Lo más difícil será renunciar al conformismo, especialmente cuando todo parezca dirigirse en la dirección que nosotros esperábamos. Con mayor cuidado deberemos dar cada paso, pues llegará lo más difícil entonces: sorpresas inesperadas de la misma vida a las que tendremos que enfrentarnos sin posibilidad de evasión alguna.&lt;/p>
&lt;p>Lo más difícil será reconocer que las perspectivas podrán cambiar nuestras distintas percepciones de una aparente misma y única realidad.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/17.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 16: Junio, 2016</title><published>2016-06-01T00:00:00+00:00</published><updated>2016-06-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-junio/"/><id>https://chemaclass.com/es/books/oeur/2016-junio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/9Rvcdo-kk0c"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="y-si">¿Y si…?&lt;/h2>
&lt;p>¿Y si dejásemos de dirigirnos en tercera persona y nos mirásemos con otros ojos? ¿Y si intentáramos llamarnos con otro nombre? ¿Y si dejáramos de preocuparnos o de pensar tan siquiera en apartar este nuestro pensamiento racional por un día?&lt;/p>
&lt;p>¿Quién nos podría asegurar que nuestro sentimiento objetivo existe y no es más que una variación de nuestro inconsciente de aquello que creemos que es imparcial? ¿Y si llamáramos a cada cosa por su nombre? ¿Qué nombres existirían? Y más importante, ¿qué nombre tendríamos?&lt;/p>
&lt;p>¿Y si aprendiéramos a no soltar las riendas de nuestra vida?…, ¿cómo podrían escapársenos sin darnos cuenta de la noche a la mañana? ¿Y si todo no tuviera por qué ser necesariamente tan difícil o complejo?, en especial en algunas situaciones en las que parece estar todo dispuesto de forma desmesurada.&lt;/p>
&lt;p>¿Y si tirásemos la toalla, diciendo a todo «basta»? ¿Y si decidiéramos acabar con todo de una vez por todas? ¿Qué es ese todo que podría tanto preocuparnos hasta el punto de llevarnos a un pensamiento tan insensato pero necesariamente humano?&lt;/p>
&lt;p>¿Y si no sintiéramos con una fuerza que nos llegara a proporcionar incluso dolor? Fuerza fruto del mismo sentimiento de alegría o tristeza, pues si no fuésemos seres pasionales, así como racionales, ¿qué seríamos entonces?&lt;/p>
&lt;p>¿Y si nuestro tiempo no estuviera ligado directamente a nuestro entendimiento del mismo? ¿No sería éste, acaso, un caos? ¿Y si todo no fuera realmente como pudiéramos creer estar viendo desde su aparente complejidad ligada a un desconcierto sin salida?&lt;/p>
&lt;p>¿Y si todo fuera más sencillo? ¿Y si estuviéramos equivocados? ¿Y si todo saliera bien, recuperando la normalidad y su tranquilidad merecida?&lt;/p>
&lt;p>Es sorprendente la abundancia de desorden en sinfonía con su idea de normalidad y deseo. «¿Y si…?», podríamos preguntarnos.&lt;/p>
&lt;hr />
&lt;h2 id="quien-nos-recordara">¿Quién nos recordará?&lt;/h2>
&lt;p>¿Quién nos recordará lo tanto que valemos cuando se nos olvide?, cuando la cruda realidad nos muestre su rostro y nos escandalicemos al vernos completamente desnudos en nuestra sensación consumida nacida de nuestra ignorancia.&lt;/p>
&lt;p>¿Quién nos recordará lo tantísimo que valemos y lo equivocados que podemos llegar a estar?, especialmente cuando sobre nosotros pudiera tratarse nuestro pensamiento o juicio de valor sin consenso y para nada constructivo.&lt;/p>
&lt;p>¿Quién nos lo podría recordar sino tú, legado de nuestro interés?, que aunque pudiera no ser tan compartido, estamos seguros de que hay mucho más en común de lo que pudiéramos a priori ver con nuestros propios ojos.&lt;/p>
&lt;p>¿¡Quién sino tú podría recordarnos quiénes somos!? Tendernos la mano y ayudarnos a levantarnos cuando tropecemos. Y no estoy hablando de nosotros, sino de ti, que tienes nombre y apellidos. Tú, que nos estás leyendo. Tú, que sabes quién eres aunque a veces, como a nosotros, se te pueda olvidar. Tú, que en tus dudas e incertidumbres querías esconderte, como era normal.&lt;/p>
&lt;p>Como si cualquiera lo hubiera hecho y no nos hubiera importado. Pero no tú. Tú sí que nos importas. Y es por ello que escribimos contigo en mente. Porque sabemos que nos necesitaremos el uno del otro para, cuando alguno tropiece, saber que no está solo en este, en ocasiones, abismal trastorno tan oscuro como pudiéramos imaginar pero tan incandescente como podremos juntos lograr.&lt;/p>
&lt;p>No tú. Tú estás aquí para recordarnos lo mucho que valemos, así como nosotros estaremos aquí para recordarte lo mucho que valdrás.&lt;/p>
&lt;hr />
&lt;h2 id="cuestion-de-tiempo">Cuestión de tiempo&lt;/h2>
&lt;p>Crecer no es cuestión de tiempo, sino cuestión de corrección de errores. Ver pasar nuestra existencia como si hubiéramos perdido su noción o su motivación…: qué grandísimo error, pero a su vez qué gran síntoma inevitable.&lt;/p>
&lt;p>No será cuestión de tiempo que las flores nazcan o que las situaciones sucedan porque así debían suceder: menudo disparate: creer en un destino destinado a ser historia, especialmente cuando pudiéramos referirnos a su razón por conveniencia.&lt;/p>
&lt;p>No fue asunto ni materia que estuviera todo predispuesto o escrito, ni tan siquiera de la forma más absurda o disparada posible. Pues pretender el tiempo como algo con vida propia no es más que un engaño que nos haremos, desde y hacia nosotros; pues el tiempo no existe como tal más allá de nuestra percepción del mismo.&lt;/p>
&lt;p>Crecer con circunstancias propias de un entorno repleto de calidades cuestionables —tan longevas como ellas mismas— y que decidían continuar a plazos aparentemente tan arbitrarios. Pudiera ser que se nos haya abierto la mente con tantos controvertidos lugares de forma inconsciente.&lt;/p>
&lt;p>¿Cuál es nuestra percepción de la verdad sino aquélla que nuestro subconsciente represente para el entendimiento de nuestra aparente realidad? El tiempo no es más que otra herramienta que hemos desarrollado para ayudarnos a interpretar nuestro curso y condición. A fin de cuentas, ¿quién sino nosotros podría analizar de forma tan exhaustiva todos aquellos aspectos que involucran directamente nuestro sentido?&lt;/p>
&lt;p>No será cuestión de tiempo que las flores marchiten, sino la ausencia de auxilio frente a la crudeza de la misma vida que a todos nos acotará por igual y sin posibilidad de recurso alguno. ¿Qué es cuestión de tiempo cuando nuestro tiempo ha muerto?&lt;/p>
&lt;p>Madurar no será jamás cuestión de tiempo, sino más bien de sufrimiento fruto de un aprendizaje del que jamás pudimos ser advertidos. Prosperar en nuestra idea del bien, así como del mal. Progresar en las medidas de nuestras posibilidades. Desarrollarnos como aquello que tanto queríamos o pudiéramos haber querido en algún momento.&lt;/p>
&lt;p>No será jamás cuestión de tiempo tratar nuestro entendimiento más que con nuestra sincera perseverancia hacia el mismo.&lt;/p>
&lt;hr />
&lt;h2 id="comenzando-los-23">Comenzando los 23&lt;/h2>
&lt;p>Parémonos unos instantes para voltear la vista atrás, pero tampoco demasiado. Apenas basta con mirar en el comienzo de nuestra vida profesional, hará ahora más de dos años, cuando empezamos a soñar con todo esto que hoy, con tanto empeño, conseguimos lograr. Iniciándonos en nuestra tierra para acabar haciendo también nuestra aquélla a donde fuimos.&lt;/p>
&lt;p>Un esfuerzo ejemplar con una sonrisa que cada día florecía desde la sinceridad más absoluta. Donde fuimos conscientes de que teníamos la oportunidad a nuestro alcance. Comenzar desde lo más bajo para ir escalando poco a poco en la montaña de lo que estaba por venir, aquello que podríamos distinguir como nuestro propio aprendizaje.&lt;/p>
&lt;p>Han pasado tantos pensamientos tan diversos entre sí, tanto tiempo en tan poco espacio…, que si tuviéramos que recalcar uno en concreto, lo tendríamos ahora mismo más que claro: el estrés que podremos sufrir en ciertas ocasiones, resultado de la sensación abrumadora de no poder con todo lo que se nos pudiera venir encima. Quizá por ser la última sensación con mayor intensidad sufrida, y es que, cuando se trata de apostarlo todo, las medias tintas sólo dejarán manchas arbitrarias con las que tendremos que lidiar sin importar nuestro posible grado de disconformidad. Y dicho lo cual, esperemos aprendamos a superar con mayor facilidad todo esto, fruto de un mundo inconsciente donde las preocupaciones, en ocasiones, parecen limitarnos y no dejarnos ver las posibles soluciones.&lt;/p>
&lt;p>Cabe destacar lo tantísimo que hemos aprendido de todo en general, pero en especial sobre nosotros mismos. Esos momentos que nos ayudan, sin duda alguna, a dialogar con nuestra persona, más o menos inquieta dependiendo del día y la hora. Ha habido tantos diálogos no escritos… que sólo nuestro inconsciente los podrá recordar cuando él crea realmente necesario.&lt;/p>
&lt;p>Comenzaremos los 23 como jamás en nuestra infancia soñamos, pero como venimos procurando desde estos breves pero intensos años atrás.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/16.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 15: Mayo, 2016</title><published>2016-05-01T00:00:00+00:00</published><updated>2016-05-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-mayo/"/><id>https://chemaclass.com/es/books/oeur/2016-mayo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/xQ2XmcMK26Q"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="al-final">Al final&lt;/h2>
&lt;p>A un paso del todo y a un paso de la misma nada. A diferencia de todos y de nadie. Donde la verdadera razón de ser se oculta tras las vanas intencionalidades de los perecederos propósitos que con el tiempo se desvanecen. Pues al final sólo quedará el recuerdo de aquello que verdaderamente nos interesó.&lt;/p>
&lt;p>Tendemos a mezclar tantos diferentes conceptos entre sí que acabamos combinándolos todos, siendo en la práctica algo digno de admirar si consiguiéramos diferenciar para clasificar aquello que mezclamos. Nos referimos a nuestros juicios de valor; hay tanta distancia a veces entre nuestro personal entendimiento y el objetivismo real que pudiera merecer cada situación individual…&lt;/p>
&lt;p>Deberíamos aprender a discernir, al menos en la medida de lo posible y poniendo siempre de nuestra parte, qué es lo que realmente nace de nuestros sentimientos y qué es aquello que nace de nuestra razón argumentada de forma empírica. Pues somos tan humanos… que dejarnos llevar por las mismas emociones nos delata una y otra vez. Y somos tan humanos… que nuestro orgullo nos cegará una y tantas veces sin necesariamente advertirnos primero.&lt;/p>
&lt;p>Todos acabaremos teniendo razón en tantas cosas y en otras tantas no tanto, ninguna incluso. Nos asustaríamos si llegásemos a ser conscientes de que dichas afirmaciones conviven en el mismo piso compartido. Al final sólo quedaremos nosotros y nadie tendrá razón porque todos la habremos tenido. Es por ello que lo importante aquí no debería tratarse de un «¿Y al final?».&lt;/p>
&lt;p>Como si de contradicciones necesarias, de las que esta vida está llena, se tratara. Esta noche escribimos sin intención de inventar nada nuevo. No aprenderemos más de nosotros que como forasteros de nuestro propio yo, aprendiendo a escuchar y a leer con especial atención todo aquello que realmente deseemos con nuestra persona para finalmente sacar algo en claro de todo esto y prepararnos para cualquier posible último final.&lt;/p>
&lt;hr />
&lt;h2 id="haber-perdido">Haber perdido&lt;/h2>
&lt;p>Sentir haber perdido alguna parte de esa esencia que nos hacía, de aquella sincera forma, sentir. Notar que las mismas notas suenan diferentes a como no hace tanto de forma altruista sonaban.&lt;/p>
&lt;p>Ceñir el entrecejo en la duda de y con uno mismo. Pues percatarnos de un ligero desconcierto psicológico en nuestras bases, que en su día fueron pilares fundamentales, nos causará temor y atisbo en consecuencia.&lt;/p>
&lt;p>Encontrar los problemas y solucionarlos era nuestra mayor recompensa, pues ahora, como aquellos cobardes a los que tanto criticábamos, nosotros nos vemos reflejados: asustados en nuestro desconcierto. Los problemas hay que solucionarlos, no basta con simples parches que simulen su corrección o escondan la raíz de aquellos malestares.&lt;/p>
&lt;p>¿Qué tan lejos aún nos queda todo? ¿Qué tan grande nos podrá quedar el abismo en el que esta vida, con sus emociones tan dispares, puede llegar a convertirse? ¿Qué tan poco podremos conocer del conocimiento en sí mismo en nuestro intento?&lt;/p>
&lt;p>Quizá haya sido eso: preocupaciones innecesarias. Quizá haya sido en sus pequeñas dosis acumuladas como una bola de nieve que crece conforme cede por la colina.&lt;/p>
&lt;p>La conformidad, la falta de motivación, la carencia de la sonrisa sin motivo. La ausencia desmesurada de afecto desinteresado. No es el miedo el culpable de nada, sino el síntoma de la falta de motivación frente a la realidad con la que nos toca encararnos día tras día.&lt;/p>
&lt;p>Quizá no haya sido nada. Quizá aún nos quede tanto por lo que pelear sin temor alguno, por lograr conseguir lo que realmente deseamos. Pues, ¿qué podríamos anhelar más que disponer de esa motivación para alcanzar aquellos sueños predispuestos de forma altruista?&lt;/p>
&lt;p>Quizá quede menos simplemente de esta reflexión diaria que últimamente nos tortura, una reflexión que parece algunos días haber perdido el control.&lt;/p>
&lt;p>¿Qué es acaso haber perdido algo?&lt;/p>
&lt;hr />
&lt;h2 id="somos-realmente">¿Somos realmente?&lt;/h2>
&lt;p>¿Qué es lo que somos realmente? ¿Qué podríamos considerar como nuestro verdadero Yo? ¿Cuál es esa identidad que podría diferenciarnos frente al resto? ¿Somos acaso la misma persona en esencia que hace algunos años atrás? ¿Y si cambiáramos el tiempo de la anterior pregunta?&lt;/p>
&lt;p>¿Somos distintas personas cada día? ¿Qué es eso que nos identifica como seres individuales ante al resto? ¿Qué es aquello que nos distingue frente a nuestro entorno y por lo que él mismo nos reconoce? ¿Qué es esa esencia que nos distingue frente a esta paradoja repleta de cuestiones aleatorias y leyes dictadas aparentemente desde el más absoluto sin sentido?&lt;/p>
&lt;p>Aquello que nos identificará, que nos hará ser realmente, que nos representará ante el mundo exterior. Aquello que nos define y caracteriza, pero sobre todo nos individualiza y nos distingue frente al resto del enorme conjunto: es nuestro pasado directamente ligado con lo que nosotros de él hayamos aprendido.&lt;/p>
&lt;p>La importancia de nuestra experiencia y perspectiva, de nuestra proyección y confianza, de la inversión que hayamos querido haber hecho de nuestro tiempo.&lt;/p>
&lt;p>La diferencia del querer ser al ser realmente no es tan abismal como podría llegar a parecer o como algunos nos quisieron pintar. En la proyección del éxito se encuentra el mismo.&lt;/p>
&lt;p>Nuestro pasado es nuestro Yo más puro: cuando muramos no habrá más identidad nuestra que la que nosotros hayamos querido reflejar.&lt;/p>
&lt;p>Será, por tanto, nuestra representación presente el fruto de nuestro entendimiento pasado ligado a nuestra inquebrantable y veraz comprensión que no dejará de ponernos a prueba una y tantas veces hasta que nuestro respirar descanse sin permiso y sin retorno.&lt;/p>
&lt;hr />
&lt;h2 id="la-historia">La historia&lt;/h2>
&lt;p>La historia como el libro abierto de nuestras vidas, plasmadas para el recuerdo y su aprendizaje, que apenas unos pocos se atreven a leer. Destinándonos a repetir las mismas situaciones, los mismos errores que otros ya pudieron haber cometido y que, sin embargo, parece que estaba en nuestra naturaleza el cometerlos.&lt;/p>
&lt;p>¿Qué son los errores más que aquellos propósitos llevados a cabo que nos hacen sentir al final equivocados, que nos transmiten esa cierta angustia inequívoca desinteresada? Rabia… por aquellos necios que no supieron ni quisieron leer a tiempo las señales para saber cuándo pisar los frenos.&lt;/p>
&lt;p>Como un libro lleno de errores y de aciertos donde la batalla entre los mismos parece equilibrada por más que pasen los días. Como si no hubiera tendencia a la existencia de un final con un claro vencedor. Como si nuestra disposición se inclinase hacia la repetición hasta lo absurdo, pues en ocasiones no es que seamos ciegos, sino que somos nosotros mismos los que no queremos apreciar. Y es entonces cuando el valor de la historia en sí misma asusta porque no hay más ciego que el que no quiere ver.&lt;/p>
&lt;p>Podríamos seguir escribiendo sobre este tema, pero ya estamos cansados, furiosos e incluso quizá asqueados de pensar que pueda existir gente que no quiera pensar.&lt;/p>
&lt;p>¡Reflexionemos pues sobre nuestra historia!, especialmente la ya vivida, proyectándola sobre la que queremos para nuestro porvenir.&lt;/p>
&lt;hr />
&lt;h2 id="numeros">Números&lt;/h2>
&lt;p>Cuarenta y nueve, como número que representa este día: 25 de mayo.&lt;/p>
&lt;p>Treinta y siete, como el efímero recuerdo desconsolado por excelencia.&lt;/p>
&lt;p>Once, como aquél que sin buscarlo hoy se dirige a sí mismo en tercera persona.&lt;/p>
&lt;p>Nueve, como los que quedaron y se vieron obligados, sin más opciones posibles, a aprender como fuera de aquella situación, para todos inesperada.&lt;/p>
&lt;p>2004, como el año más humano y desalmado.&lt;/p>
&lt;p>Cero, como oportunidades de despedidas posibles tras su marcha. No recordar tan siquiera cómo lucía el día anterior, pero sí su pelo rizado y su amable sonrisa… Y sólo alcanzar en nuestra memoria su reflejo tras el marco de la puerta a oscuras horas de la noche, sin tiempo tan siquiera para despedirse. Pues nadie habría podido adivinar lo que estaba por suceder pocas semanas después de su partida; su imposible regreso involuntario.&lt;/p>
&lt;p>Cientos de noches han pasado ya desde entonces y apenas podemos encontrar momentos de intimidad en estas cartas que, ambos sabemos, no podrás jamás leer. No podremos conocernos, pero estoy seguro de que sí podríamos reconocernos…, y tengamos claro que no habrá nunca mayor deseo que una sonrisa tuya de regreso hacia nuestra mirada en tu busca.&lt;/p>
&lt;p>No recuerdo cuándo fue la última vez que dije «mamá», y creo que eso es algo que mi primera persona no podrá olvidar nunca.&lt;/p>
&lt;p>Es bastante duro y complejo. El precio más caro que jamás podríamos experimentar. Una de las experiencias más dolorosas que podríamos tener y que sin duda todos, sin excepción, antes o después, acabaremos teniendo. Y comprenderemos, quizá con otros ojos, a quien se escribe hoy en tercera persona de nuevo.&lt;/p>
&lt;hr />
&lt;h2 id="tratando-de-entendernos">Tratando de entendernos&lt;/h2>
&lt;p>En esta recta final en la que nos disponemos a escasos días del cambio de hora interno. Con té hirviendo como suplemento de aquellos pensamientos tristes que podrían incurrir en nuestra mente a estas horas sin pretenderlo.&lt;/p>
&lt;p>Y es que nos damos cuenta de la falta de interés real que en ocasiones nos hace tanta falta. Pues lo que no hace tanto tiempo nos parecía obvio en su normalidad, hoy en día nos cuesta algo más llevarlo a la práctica. Somos cambiantes para bien como para mal.&lt;/p>
&lt;p>La teoría nunca pudo ser más fácil que el hecho de ser escrita en sí misma. Sin embargo, llevar cualquier teoría a la práctica supone de un esfuerzo mayor que su propio y simple entendimiento: supone hacer de dicha teoría una realidad, pues no hay mayor verdad teórica que aquélla que se pueda demostrar.&lt;/p>
&lt;p>Con té hirviendo en la mano, nos damos cuenta de que estamos en la recta final, a pocas semanas de quién sabe qué realmente. Y con esto nos estamos refiriendo no a vivir dejados, sino todo lo contrario, ¡a vivir enamorados hasta que nos consumamos en ello! Enamorados de lo que hagamos, de lo que sintamos, de lo que deseemos realmente para y con nosotros. Más allá de simples ideas vanas o conceptos desconocidos, ¡conozcámonos en profundidad!, ¡sintámonos como nos queremos realmente sentir!, ¡despertémonos con esas ansias devoradoras de arrasar con el día que tanto soñábamos! ¿¡A qué diablos estamos esperando!?&lt;/p>
&lt;p>Ya lo hicimos una vez, muestra suficiente para darnos cuenta de que es posible, de que la palabra «imposible» está equivocada cuando a nosotros se pudiera referir.&lt;/p>
&lt;p>Pues no somos más que posibilidades que aún esperan para ser despertadas sin miedo alguno, impacientes por ver el sol naciente hasta acostarnos en nuestro merecido descanso. Acompañados, al menos, por nuestra idea y visión global del día vencido; y vaya si vencido, pues nosotros seremos los que habremos ganado. Deberíamos, por tanto, concebir los días como logrados y no como pasados o perdidos.&lt;/p>
&lt;p>Contemplar y aprender a discernir, ¿qué es lo que realmente nos gustaría cambiar?, ¿qué es lo que realmente nos gustaría mejorar?, ¿qué es lo que realmente querríamos para nosotros? Soñemos con estas cuestiones. Que se queden en un sueño teórico o práctico será pura y únicamente cuestión de nuestra recompensa.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/15.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Código Limpio</title><subtitle>Manual de artesanía ágil de software</subtitle><category term="clean-code" scheme="https://chemaclass.com/tags/clean-code/" label="Clean Code"/><category term="software-design" scheme="https://chemaclass.com/tags/software-design/" label="Software Design"/><category term="testing" scheme="https://chemaclass.com/tags/testing/" label="Testing"/><category term="tdd" scheme="https://chemaclass.com/tags/tdd/" label="Tdd"/><category term="refactoring" scheme="https://chemaclass.com/tags/refactoring/" label="Refactoring"/><published>2016-05-01T00:00:00+00:00</published><updated>2016-05-01T00:00:00+00:00</updated><author><name>
Robert C. Martin</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/readings/clean-code/"/><id>https://chemaclass.com/es/readings/clean-code/</id><summary type="html">El código malo funciona, pero puede hundir a una empresa. Cada año se pierden horas y recursos por código mal escrito. Este libro te enseña a evitarlo.</summary><content type="html">&lt;p>El código malo puede funcionar, pero si no está limpio, puede hundir a una empresa. Cada año se pierden horas y recursos por culpa de código mal escrito. No tiene por qué ser así.&lt;/p>
&lt;span id="continue-reading">&lt;/span>
&lt;hr />
&lt;h2 id="resumen">Resumen&lt;/h2>
&lt;h3 id="capitulo-1-que-es-el-codigo-limpio">Capítulo 1: ¿Qué es el código limpio?&lt;/h3>
&lt;ul>
&lt;li>El código se puede medir como “bueno” o “malo” en una revisión, o por cuánto tiempo tardas en explicarlo.&lt;/li>
&lt;li>El código limpio es elegante, eficiente, legible, simple, sin duplicaciones y bien escrito.&lt;/li>
&lt;li>Tu código debe añadir valor al negocio.&lt;/li>
&lt;li>Al abrir un archivo fuente, el código limpio transmite calidad y se entiende fácilmente.&lt;/li>
&lt;li>Haz tu código limpio y legible para que cualquiera pueda entenderlo rápido. No hagas perder tiempo a otros.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-2-nombres-significativos">Capítulo 2: Nombres significativos&lt;/h3>
&lt;ul>
&lt;li>Los nombres de las clases, variables y métodos deben ser significativos e indicar claramente lo que hace un método o lo que es un atributo.&lt;/li>
&lt;li>Crea nombres pronunciables para facilitar la comunicación.&lt;/li>
&lt;li>Evita acrónimos y nombres confusos, que pueden llevar a conclusiones erróneas a cualquiera que lea el código.&lt;/li>
&lt;li>Usa nombres que reflejen el dominio del sistema, el contexto y los problemas que deben resolverse.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-3-funciones">Capítulo 3: Funciones&lt;/h3>
&lt;ul>
&lt;li>Los métodos deben ser fáciles de leer y entender.&lt;/li>
&lt;li>Deben transmitir su intención.&lt;/li>
&lt;li>Deben ser pequeños: hasta 20 líneas.&lt;/li>
&lt;li>Deben hacer solo una cosa.&lt;/li>
&lt;li>Usa nombres que digan claramente qué hace el método.&lt;/li>
&lt;li>El número ideal de parámetros es cero, luego uno, luego dos.&lt;/li>
&lt;li>Evita tres parámetros; si los usas, justifícalo.&lt;/li>
&lt;li>Un &lt;code>Boolean&lt;/code> como parámetro indica que el método hace más de una cosa.&lt;/li>
&lt;li>Evita la duplicación.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-4-comentarios">Capítulo 4: Comentarios&lt;/h3>
&lt;ul>
&lt;li>Cuando necesitas comentarios suele ser porque el código es malo.&lt;/li>
&lt;li>Si piensas escribir un comentario, mejor refactoriza el código.&lt;/li>
&lt;li>Los comentarios no salvan el código malo.&lt;/li>
&lt;li>El código debe explicarse por sí mismo.&lt;/li>
&lt;li>A veces los comentarios son útiles en ciertos lugares específicos.&lt;/li>
&lt;li>No expliques el código con comentarios. Usa nombres descriptivos de variables y métodos.&lt;/li>
&lt;li>Los comentarios pueden destacar la importancia de ciertos puntos.&lt;/li>
&lt;li>No escribas comentarios redundantes, inútiles o falsos.&lt;/li>
&lt;li>Para saber quién cambió qué y por qué, usa control de versiones.&lt;/li>
&lt;li>No comentes código sin usar. Elimínalo.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-5-formato">Capítulo 5: Formato&lt;/h3>
&lt;ul>
&lt;li>El formato es una forma de comunicación entre desarrolladores.&lt;/li>
&lt;li>El código desordenado es difícil de leer.&lt;/li>
&lt;li>La legibilidad afecta a todos los cambios futuros.&lt;/li>
&lt;li>Las clases pequeñas son más fáciles de entender.&lt;/li>
&lt;li>Pon un límite de caracteres por línea (por ejemplo, 120).&lt;/li>
&lt;li>Mantén los conceptos relacionados cerca verticalmente para crear un flujo natural.&lt;/li>
&lt;li>Usa espacios entre operadores, parámetros y comas.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-6-objetos-y-estructuras-de-datos">Capítulo 6: Objetos y estructuras de datos&lt;/h3>
&lt;ul>
&lt;li>Sigue la &lt;a rel="external" href="https://en.wikipedia.org/wiki/Law_of_Demeter">Ley de Demeter&lt;/a>:
&lt;ul>
&lt;li>Cada unidad debe tener solo conocimiento limitado sobre otras unidades: solo unidades “estrechamente” relacionadas con la unidad actual.&lt;/li>
&lt;li>Cada unidad solo debe hablar con sus amigos; no hables con extraños.&lt;/li>
&lt;li>Solo habla con tus amigos inmediatos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>No hagas objetos tontos.&lt;/li>
&lt;li>Los objetos ocultan la abstracción de datos y exponen métodos que operan los datos.&lt;/li>
&lt;li>Las estructuras de datos exponen sus datos y no tienen métodos significativos.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-7-manejo-de-errores">Capítulo 7: Manejo de errores&lt;/h3>
&lt;ul>
&lt;li>Planifica el manejo de errores con cuidado.&lt;/li>
&lt;li>Cuando algo falla, hay que hacer que el sistema responda correctamente.&lt;/li>
&lt;li>Lanza excepciones en lugar de ocultarlas.&lt;/li>
&lt;li>Crea mensajes de error informativos: qué falló, dónde y, si es posible, por qué.&lt;/li>
&lt;li>Separa las reglas de negocio del manejo de errores.&lt;/li>
&lt;li>Evita devolver &lt;code>NULL&lt;/code>; devuelve un objeto vacío.&lt;/li>
&lt;li>Evita pasar &lt;code>NULL&lt;/code> a los métodos; puede causar &lt;code>NullPointerExceptions&lt;/code>.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-8-limites">Capítulo 8: Límites&lt;/h3>
&lt;ul>
&lt;li>Al usar código de terceros, encapsula las APIs para no exponer objetos externos.&lt;/li>
&lt;li>Haz tests de las APIs de terceros.&lt;/li>
&lt;li>Estudia la documentación y prueba la API antes de usarla.&lt;/li>
&lt;li>Conoce bien las características que vas a usar.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-9-tests-unitarios">Capítulo 9: Tests unitarios&lt;/h3>
&lt;ul>
&lt;li>Asegúrate de que cada pieza de código hace lo que esperas.&lt;/li>
&lt;li>Sigue las &lt;a rel="external" href="https://en.wikipedia.org/wiki/Test-driven_development">leyes de TDD&lt;/a>:
&lt;ul>
&lt;li>No escribas código sin tener primero un test que falle.&lt;/li>
&lt;li>No escribas más tests de los necesarios para fallar.&lt;/li>
&lt;li>No escribas más código del necesario para pasar el test.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Mantén tus tests limpios.&lt;/li>
&lt;li>Los tests evolucionan junto con el código.&lt;/li>
&lt;li>Código sucio = tests difíciles de mantener.&lt;/li>
&lt;li>Usa la regla F.I.R.S.T:
&lt;ul>
&lt;li>&lt;strong>F&lt;/strong>ast: ejecución rápida.&lt;/li>
&lt;li>&lt;strong>I&lt;/strong>ndependent: independientes entre sí.&lt;/li>
&lt;li>&lt;strong>R&lt;/strong>epeatable: repetibles en cualquier entorno.&lt;/li>
&lt;li>&lt;strong>S&lt;/strong>elf-validating: auto-validantes.&lt;/li>
&lt;li>&lt;strong>T&lt;/strong>imely: escritos a tiempo.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>Los tests son tan importantes como el código de producción.&lt;/li>
&lt;/ul>
&lt;h3 id="capitulo-10-clases">Capítulo 10: Clases&lt;/h3>
&lt;ul>
&lt;li>Organiza las clases así:
&lt;ul>
&lt;li>Constantes públicas estáticas.&lt;/li>
&lt;li>Variables privadas estáticas.&lt;/li>
&lt;li>Variables de instancia privadas.&lt;/li>
&lt;li>Luego los métodos.&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>El nombre de la clase debe reflejar su responsabilidad.&lt;/li>
&lt;li>Cada clase debe tener &lt;a rel="external" href="https://en.wikipedia.org/wiki/Single-responsibility_principle">una sola responsabilidad&lt;/a>: una razón para cambiar.&lt;/li>
&lt;li>Intenta describir la clase en una frase breve.&lt;/li>
&lt;li>Los métodos deben ser pequeños y con una sola responsabilidad.&lt;/li>
&lt;/ul>
&lt;hr />
&lt;p>Esta entrevista se basa en el libro de Uncle Bob “Código Limpio”. Repasan algunas guías que te ayudarán a ser mejor programador y exploran cómo los libros y tendencias actuales están moldeando el mundo del software.&lt;/p>
&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/QnmRpHFoYLk"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div></content></entry><entry xml:lang="es"><title>Capítulo 14: Abril, 2016</title><published>2016-04-01T00:00:00+00:00</published><updated>2016-04-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-abril/"/><id>https://chemaclass.com/es/books/oeur/2016-abril/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/XG2JJ4uf5lA"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="aparentar-o-ser">Aparentar o ser&lt;/h2>
&lt;p>Podremos aparentar tantas cosas y actuar de tantas formas posibles…, hasta el punto, quizá, de nublar el verdadero ser. ¿Pues cuál es este ser realmente sino el mar de sus continuas apariencias? Podremos aparentar en todo momento, pero ¿acaso podríamos ser realmente aquello que aparentamos?&lt;/p>
&lt;p>El problema de la identidad nace cuando nuestra apariencia confronta nuestro sentimiento del ser. Es entonces cuando surge nuestro principal conflicto interior. ¿Somos acaso más que constantes apariencias en evolución?, donde la adaptación quedaría ligada a la supervivencia… ¿Qué somos realmente sino el simple sentimiento que nos diferencia frente a lo que nos rodea?, refiriéndonos a otros seres.&lt;/p>
&lt;p>¿Acaso tenemos mayor derecho a considerarnos especiales o algo más que simples seres vivos? ¿Quién nos puede asegurar cada mañana al despertar que no somos un simple fruto de algún experimento?, donde por realidad y recuerdo no tenemos más que alguna memoria previamente programada y lista para observar nuestro comportamiento.&lt;/p>
&lt;p>En ocasiones tendremos dudas de tan siquiera quiénes somos, de qué buscamos o simplemente de qué esperamos encontrar. ¿Podrían ser las dudas en sí mismas sus propias respuestas?&lt;/p>
&lt;hr />
&lt;h2 id="tantas">Tantas&lt;/h2>
&lt;p>Tantas cosas por hacer, tantos deseos por cumplir. Tantos suspiros que aún quedan en la espera de su momento mientras nos turnamos con nuestra inquietud, siendo ella misma la que nos ayudará a tomar los caminos que acabaremos modelando.&lt;/p>
&lt;p>Tantas prisas, tantas alegrías no empleadas, tantos lloros no merecidos y otros cuentos olvidados.&lt;/p>
&lt;p>Y es que nuestra percepción de la realidad es tan distinta y tan dependiente de nosotros mismos, que no podríamos ser conscientes tan siquiera de la cantidad de variedades que existen ni de sus diferentes cualidades tan distintas entre sí.&lt;/p>
&lt;p>Sensación abrasadora que nos desconcierta cuando bajamos la guardia. Emoción alarmante que nos acompaña en su conformidad desvelada. Intuición que no deja pista alguna de su paso. Alivio añorado, así como extrañado, en tiempos complicados.&lt;/p>
&lt;p>Tantas metas, tanto futuro, tantos cuentos…, que podríamos incluso acabar olvidando de dónde venimos y hacia dónde vamos. Sentir el deseo de una pausa. Sentir el desconcierto del no saber qué hay que saber ahora, confundidos en estos momentos de realidad enredada.&lt;/p>
&lt;p>Queda aún tanto por contar y por vivir, tanto por saber y por querer, tanto… que esperemos que todo llegue a buen puerto cuando tenga que llegar.&lt;/p>
&lt;hr />
&lt;h2 id="constantes">Constantes&lt;/h2>
&lt;p>Somos una constante muda de ideas. Constante dependiente, en mayor medida, de aquello que no deseamos pero que hayamos sufrido de algún modo. No desear no es lo mismo que no haber deseado, del mismo modo que no querer haber sufrido no implica no haberlo hecho.&lt;/p>
&lt;p>El tiempo es sin duda la mayor incógnita en su verdad: el relativismo extremo, el cambio de etapas… Encontrarnos para perdernos momentos después. Tenernos y temer aquello que pudiéramos extrañar de nuevo.&lt;/p>
&lt;p>Sentir como el todo y su predilección tienden a la abstracción más pura y arbitraria. Experimentar cómo nuestros pensamientos no son más que frutos inmaduros y que, llegado el día, cualquier temporal imprevisto podría arrancarlos sin remordimiento alguno.&lt;/p>
&lt;p>Acordarnos de aquella etapa donde la esperanza dirigía y nos guiaba como madre preocupada por sus hijos, pero ¿qué sabemos nosotros de esto al fin y al cabo…?&lt;/p>
&lt;p>Recordar no más que la ilusión añorada, quizá su mera nostalgia, quizá años y años desnudos como el tiempo que no hacían más que acompañarnos sin reales intenciones. Propósitos color azabache que descansan sobre el más puro anhelo de sinceridad hacia y con nosotros. Por nosotros, eternas constantes destinadas a la continua transformación junto a nuestro cambio.&lt;/p>
&lt;hr />
&lt;h2 id="hablemos-de-nuevo">Hablemos de nuevo&lt;/h2>
&lt;p>Percatarnos de aquello que nos impedía sentir más allá del sufrimiento, en la duda continua de no saber qué dirección tomar. Flaquear una y otra vez hasta el posible cansancio ya olvidado. Desear sinceramente terminar con esta sensación incómoda de desconcierto anónimo.&lt;/p>
&lt;p>Acariciar el despido, no ser capaces de prever el caos y su perturbación avecinada hacia nuestra persona. Necia impotencia.&lt;/p>
&lt;p>Aleccionarnos una y otra vez, tantas veces incluso de lo mismo. Tropezar y caer con y sin vergüenza, como si fuéramos en busca de nuestros propios límites que creímos en su día inexistentes; vaya cuán equivocados estábamos.&lt;/p>
&lt;p>Hay tantas cosas ciertas y otras tantas no tan claras… Pero lo que creo que aprendimos fue a discernir, al menos, aquello que realmente nos superó: el descontrol de la situación, no saber qué hacer ni cómo reaccionar tras flaquear en todos nuestros fallidos intentos por no lograr aquello que se nos encomendó.&lt;/p>
&lt;p>La simple idea de la duda hacia nuestras dudas será la culminante si la dejamos brotar. ¿No podría todo volver a ser? Será, por supuesto que será. Volvamos a ser de nuevo.&lt;/p>
&lt;hr />
&lt;h2 id="es-tiempo-de">Es tiempo de&lt;/h2>
&lt;p>Es tiempo de decir «adiós» a tantas cosas. Sintiéndonos nómadas en nuestra vida en busca de aquella sensación de plenitud donde los sentidos desean por encima de ellos mismos y se sienten parte del todo junto a sus prójimos.&lt;/p>
&lt;p>Es tiempo de empezar a decir «adiós» a tantas cosas. En nuestra superación crecimos y no quisimos ni queremos permitir sentir ese descontrol que nos pudiera hacer perder la cabeza, encontrándonos en disconformidad continua por más tiempo del que pudiéramos desear.&lt;/p>
&lt;p>Es tiempo de ser conscientes de que deberíamos empezar a decir «adiós» a tantas cosas. No en vano quedará todo lo aprendido, pues permanecerá escrito desde ahora hasta entonces que un día resolvimos y crecimos escogiendo ser.&lt;/p>
&lt;p>Es tiempo de decidir cambios para y con nosotros, siendo la finalidad de los mismos el motivo de su creación. Sentir no poder soportar tanto nos hace al final capaces de tolerar en un mayor margen, pero no era esa nuestra intención primera. No debiera ser el sentimiento hacia lo externo de mayor grado frente al interno, pues nuestra traza y aspecto dependerán, de forma directamente condicionada, de nuestra más íntima persona.&lt;/p>
&lt;p>Llegará el tiempo en el que las decisiones tomadas cursarán con tan alto grado de importancia, pudiendo incluso cambiar el rumbo de aquello que en meses pasados establecimos para los próximos venideros. Y es que nos queda tanto por equivocarnos y por cambiar…&lt;/p>
&lt;p>Es bien cierto, así como debiera ser ya sobradamente conocido, que en la abstracción pura de los errores, así como de los aciertos, existen en común las decisiones que tomamos, en la medida de nuestras mejores posibilidades. No habrá mejor actitud que la que con nuestros ojos miremos.&lt;/p>
&lt;p>No debiéramos hacer tantas cosas y hacer otras tantas que tanto deberíamos, que será tiempo pues de decidir a qué responsabilidades queremos realmente rendir cuentas y a qué precio, pero sobre todo qué nivel y qué metas seremos capaces de alcanzar.&lt;/p>
&lt;p>Es tiempo de dar la bienvenida a tantas otras, de empezar a ser conscientes de los cambios a estos niveles que a primera vista pudieran sobrepasar cualquier joven perspectiva.&lt;/p>
&lt;hr />
&lt;h2 id="que-podria-ser">¿Qué podría ser?&lt;/h2>
&lt;p>¿Qué podría ser que aún no haya sido? Dejarnos llevar por las emociones, dejarnos hacer sin mayores intenciones… Experimentar ese cosquilleo, esas mariposas ansiosas de protagonismo. Ocho meses han pasado desde que nos vimos por última vez en persona. Es lo que tiene vivir en el extranjero.&lt;/p>
&lt;p>Mañana despertaremos de nuevo en Berlín, pero dormiremos en nuestra tierra cálida donde nacimos. Donde la familia aguarda por el que será el ansiado momento de un nuevo reencuentro compartido después de tanto tiempo.&lt;/p>
&lt;p>¿Qué podría ser que aún no haya sido? Tras experimentar verdaderamente de todo, me atrevería también a decir «renacido», habiendo sido incluso en cualquier modo. No quisiera pensar en estos momentos demasiado, sino soltar simplemente aquellas palabras que, momentos previos de conciliar el sueño antes de este breve viaje de retorno, por mi mente ocurran. Y es que siento la necesidad imperiosa de escribir a escasas horas de partir hacia este vuelo. Será toda una semana cargada de tantas emociones que espero que no nos traicionen los nervios y que seamos capaces de canalizarlas poco a poco.&lt;/p>
&lt;p>Conociéndome, y en lo poco que me conozco todavía, estoy seguro de que será una semana inolvidable. Una de tantas semanas que aún nos quedan por viajar y por contar…&lt;/p>
&lt;p>Tengo ganas de ver a mis tíos, a mi padre, a mis primos, a todos ellos: a mi familia en general. Pero en especial tengo ganas de ver y abrazar a mis hermanos y hermanas, los cuales extraño tanto cada día. Sólo espero que sepan comprender algún día el significado de todo esto, que entiendan esta motivación y que la apliquen no sólo de forma teórica.&lt;/p>
&lt;p>No quisiera entrar hoy en más detalle. Es tiempo de descansar, pues mañana será un gran día: el comienzo de una semana inolvidable.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/14.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 13: Marzo, 2016</title><published>2016-03-01T00:00:00+00:00</published><updated>2016-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-marzo/"/><id>https://chemaclass.com/es/books/oeur/2016-marzo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/HTMSHx6D7NE"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="se-hace-mas-notorio">Se hace más notorio&lt;/h2>
&lt;p>El valor de nuestro tiempo que, junto al recuerdo de la muerte, nos evoca esa nostalgia que grita sin cesar, deseando abrirse paso en este camino lleno de incertidumbres y, en ocasiones, desconsuelos.&lt;/p>
&lt;p>Se hace, simplemente, más notorio el olor de aquellas aladas almas de las rosas cuando no están. Cuando falta aquella esencia que nos permite revivir con entusiasmo, es precisamente cuando se hace más notorio. ¿Acordarse de qué? ¿De qué teníamos que acordarnos?&lt;/p>
&lt;p>Sentir cómo nos quitaron las ruedas de apoyo como cuando aprendíamos a montar en bicicleta, aquéllas que nos aseguraban confianza, pero sobre todo sentirlo hoy en día con la misma realidad. Sentir cómo la presión de las distintas situaciones puede ser, en ocasiones, un verdadero enigma para nada agradable.&lt;/p>
&lt;p>Empaparnos de experiencias que no pensábamos encontrar en un principio y que, sin embargo, fueran ellas las que nos acabaran encontrando; no saber cómo responder.&lt;/p>
&lt;p>El tiempo nos arrastra sin piedad y sin miedo. Nos obliga con serenidad, haciéndose más notorio cuando él mismo nos recuerda quiénes somos, pero sobre todo quién es él.&lt;/p>
&lt;p>Ser los nuevos en este juego sin reglas más allá de las que nosotros inventemos o queramos concebir. Más allá de nuestro sincero entendimiento, donde por razón y verdad despreciamos a aquéllos que utilizan distintos prismas para observar.&lt;/p>
&lt;p>Querer existir como eternos principiantes es como agua que fluye por la corriente, teniendo por destino la inmensidad del océano junto a su abandonado olvido. La despreocupación ligada al desinterés por el todo es nuestro mayor riesgo. Pues vivir con la excusa del mañana incierto, combinado con la misma indiferencia de nuestra persona, sólo puede acabar en un vacío infinito y carente de toda posibilidad, así como oportunidad.&lt;/p>
&lt;p>Marchitándonos poco a poco, vemos pasar el valor de nuestro tiempo frente a nuestros ojos.&lt;/p>
&lt;hr />
&lt;h2 id="es-cuando">Es cuando&lt;/h2>
&lt;p>Cuanto más cueste creerlo posible, cuando los lienzos vacíos aún sigan blancos, cuando aquel pensamiento maduro se sienta algo marchitado por culpa de quién sabrá qué ni cómo…&lt;/p>
&lt;p>Entrelazamientos de ideas no más allá de nuestros meros y subjetivos pensamientos, y que quizá ya no merecen mucho más… «Claridad» es la palabra con la que, en su ausencia, todo oscurece.&lt;/p>
&lt;p>Tanto de forma simple como compleja, es como nuestras ideas pueden llegar a convivir junto a esta práctica que entendemos por vida, donde la finalidad, más allá del aprendizaje, se escapa a nuestro conocimiento, pues otra idea no podríamos concebir. Comprensión motriz, así como audaz, es nuestra experiencia, viéndose más reflejada cuanto más hondo hayamos decidido intimar. Causante de la causa en su consecuencia que a veces nos impide sonreír.&lt;/p>
&lt;p>Movimiento sin retorno destinado a la duda y a la continuidad de su carencia. Pues no todo será ciencia, y mucho menos alguna innecesaria creencia.&lt;/p>
&lt;p>El tiempo y su no descanso que incansable nos persigue… Nadie nació preparado. En pañales frente a toda pregunta que algún día nos tocará enfrentar; será entonces cuando nos demos cuenta de lo que realmente valdremos.&lt;/p>
&lt;p>En nuestra sinceridad tendríamos que admitir que, por lo menos, deberíamos ser; de lo contrario, no estaríamos desempeñando nuestro cometido, pues si de algo somos responsables, es de estar seguros de aquello por lo que nos gustaría haber vivido.&lt;/p>
&lt;p>Tendemos a la confusión y a la mezcla entre causas y consecuencias, donde las preguntas pretenden ser respondidas antes siquiera de ser formuladas. ¿Cuál es pues nuestra tarea sino aquélla que ya debería ser más que evidente?&lt;/p>
&lt;p>Y no escribo para ti que nos oyes, sino para ti que nos escuchas.&lt;/p>
&lt;hr />
&lt;h2 id="en-la-montana">En la montaña&lt;/h2>
&lt;p>Temblor. Temor. Fracaso. Sufrimiento. Desaliento…&lt;/p>
&lt;p>Temer al fracaso y su horror, sufriendo con temblores en nuestra desesperación por no vernos capaces de alcanzar mayores hazañas en los días venideros.&lt;/p>
&lt;p>¿Dónde quedamos? ¿Cuándo será el momento perfecto para concluir de una vez por todas? Impotencia en un abismo garantizado por sobredosis de falta de sentido. Reloj de manilla oxidado a punto de dar su última vuelta. Traición traicionada… ¿Acaso perdonada por tratarse de nosotros mismos? ¿Quién podría vivir sin su perdón al fin y al cabo?&lt;/p>
&lt;p>Montaña rocosa, años atrás, junto a unos tragos de desaliento que buscaban menos desconcierto en aquel caos sin nombre pero con apellidos.&lt;/p>
&lt;p>Al acecho de la admisión, del propósito equívoco en una desilusión que resultaba estar fuera de control. Acompañados por el engaño y por la soledad, pero sobre todo por nuestra falta de sentimiento constante de pertenencia a una falsa realidad, especialmente de puertas para adentro.&lt;/p>
&lt;p>Lástima por aquél que apunto estuvo… Nuestra propia alevosía a nuestra traición nos salvó de aquella montaña y su disimulado frío nocturno que asalta por las noches.&lt;/p>
&lt;p>Ojos de aquel entonces cegados cruelmente debido a la carencia de su comprensión, así como a la presión en todas las direcciones posibles. Recordando con cada trago en la cima de la montaña mientras la música sonaba y las lágrimas nacían para sucumbir a escasos segundos después, durante la espera…&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Memorias que sentían su desvanecimiento,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>tristeza real y profunda sin aliento.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Confusión servida en cada sentimiento.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>En aquella montaña pudimos volar, avergonzados además por la innecesaria complicación en la que introdujimos a tantos terceros. Pero no es vergüenza ya lo que sentimos, sino tristeza por el hecho de que ello hubiera sido posible y por las tantísimas probabilidades de diferentes finales que, por suerte más que por desgracia, nunca llegamos a conocer.&lt;/p>
&lt;p>Parece que aquel monte nos guardaba una sorpresa inesperada. O, más bien, fuimos nosotros los que inventamos dicha sorpresa descontrolada con un final bastante diferente —así como gratificante— de lo que nosotros, en aquel equivocado día, nos propusimos. Motivo suficiente de alegría desde aquel día hasta nuestro entonces.&lt;/p>
&lt;hr />
&lt;h2 id="saborear">Saborear&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Saborear la dulzura de aquel momento&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>cuando con piel de gallina escribimos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Sentirnos vivos, protagonistas de este cuento;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>pareciera que en su día lo escogimos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>No vernos como algo definido por completo,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>por sentir cómo nos queda aún tanto.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Vistiendo junto al temporal no inquieto&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>que día y noche nos reprocha cuánto.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Amanezca la luna despejada,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>con extraño miedo a haber vivido.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nazca de nuevo aventurada,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>en vela quede hasta su olvido.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Cuantiosa dicha persevera agraciada,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>a veces angustiada por el viento.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>En su sencillez junto a su mirada,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>disfrutaba y esperaba en su asiento.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Degustar la amargura junto al placer;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nos sirva de una vez como escarmiento.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Teniendo por único temor a la realidad, que en ocasiones puede comportarse como si no existieran siquiera simples reglas de conducta. Realidad donde los colores, con sus grises, pierden incluso todo el sentido que en su día pudieron haber tenido.&lt;/p>
&lt;p>A aquellas manos que dibujaban y hoy escriben con tanto gusto. A aquéllas que nos recuerdan cómo es posible plasmar, reflejar, hacer realidad meras ideas sin que siquiera éstas aún existan. A aquéllas con las que crecimos y nos hicieron crecer. A aquella idea que miedosa nació y que quiso entrenar y entrenó para dejar de ser cobarde. A aquélla cuya finalidad se encontraba en su intimidad, pues era, es y será en sí misma su propósito.&lt;/p>
&lt;p>A la profundidad del desconcierto, del mar y sus océanos, y del abismo infinito y su caos interior. ¿Temor? ¿A quién deberíamos temer realmente más que a nosotros mismos?
Querríamos hablar desde otra perspectiva, pero se nos hace complicado a estas alturas girar la cabeza y mirar hacia otro lado; no como en su día nos hicieron en más de una ocasión, donde aún recordamos nombre y apellidos.&lt;/p>
&lt;p>¿Quizá deberíamos escribir con algún orden predefinido? ¿Quién podría esperar acaso más de nosotros que nosotros mismos? Aquí nadie ha escrito nada.&lt;/p>
&lt;p>El sabor de la carencia es sin duda el plato por excelencia que tanto nos enseñará y tan poco nos dejará. Plato donde la prudencia y el desorden parecen intentar lo mismo, disputándose entre ellos el timón de la sospecha.&lt;/p>
&lt;p>Saborear a veces momentos cuerdos, pareciendo en ocasiones auténticos disparates…, pero sobre todo degustar la incertidumbre de las líneas que aún están por escribirse, habiéndolas agradables y no tan dulces. Momentos cuerdos donde las emociones disparan sin temor por quien puedan herir, reviviéndonos en nuestra inquietud de resoluciones.&lt;/p>
&lt;hr />
&lt;h2 id="odio-a-dios">Odio a Dios&lt;/h2>
&lt;p>Nuestro más sincero rechazo a la figura de ese Dios todopoderoso y omnipresente que tanta gente nos intenta persuadir. A aquella figura superior a nosotros que nos vigila o nos protege en las medidas de quién sabe qué posibilidades.&lt;/p>
&lt;p>Nuestro más sincero odio y rechazo a la idea de ese Dios bondadoso, así como aniquilador, donde las contradicciones no dejan de ser constantes; constantes e interesadas por aquéllos que nos lo intentan vender.&lt;/p>
&lt;p>Nuestro más sincero repudio, odio y rechazo a la putrefacta idea de aquella figura superior a nosotros. A aquel Dios y profeta que dijo en su día venir en nombre de quién sabrá quién. A aquél que dijo ser quien, cobardemente, hoy día muchos aún confían en su necedad.&lt;/p>
&lt;p>Nuestro mayor asco, repudio, odio y rechazo hacia la misma, tan siquiera, idea de la existencia de Dios como algo superior a nosotros. A aquél que dice amarnos y, sin embargo, es permisivo con todo aquello que no es amor. A aquéllo que esconde los intereses egocéntricos de una idea carente de todo, especialmente de falta de humanidad.&lt;/p>
&lt;p>Nuestro mayor y más sincero desprecio, asco, repudio, odio y rechazo hacia Dios y todo lo que su idea en sí misma representa siempre y cuando no seamos nosotros. Pues no existirá mayor falacia posible que la de negar haber nacido para ser nuestros propios dioses.&lt;/p>
&lt;p>Nuestra más sincera lástima a aquellos cobardes que tras su falta de interés se esconden. A aquéllos que hoy en día creen tan siquiera ciegamente en alguna de las palabras nacidas de algún cuento, ya sea por tradición o por simple carencia de lógica o intelecto.&lt;/p>
&lt;p>Nuestra mayor intolerancia a todo aquél que dice de predicar la verdad por su boca y por sus acciones se contradice, excusándose en que «la carne es débil» o «el demonio nos engañó». Malditos seáis vosotros también, insensatos e hipócritas. ¡El mal sois vosotros!&lt;/p>
&lt;p>Incluso tener más lógica que la misma idea de Dios, que nos intentan inculcar por medio de religiones en nuestra juventud, no es para nada complicado. ¿Quién puede odiarnos más que la idea de Dios en sí misma?, una idea llena de lucros humanos, mentiras y engaños. Una idea rica en falsedades y menosprecios, pero sobre todo en incertidumbres dentro del abismo en el que puede llegar a convertirse todo esto si no somos capaces de decir «¡basta!».&lt;/p>
&lt;hr />
&lt;h2 id="y-no-bastara">Y no bastará&lt;/h2>
&lt;p>Y no bastará con que deseemos que todo termine, que toda esta preocupación se diluya de una vez por todas.&lt;/p>
&lt;p>Hacer de un posible grano de arroz una montaña repleta de incógnitas y temeridades. Desear terminar con toda esta presión que por sorpresa nos abdujo. El temor de la incertidumbre y su desconcierto es lo que más nos abruma.&lt;/p>
&lt;p>Y no bastará con creer ser, incluso siendo en ocasiones en las medidas de nuestras posibilidades. Pues hablar de la intención no es siempre lo acertado ni lo correcto, y tampoco será lo suficiente como para evitarnos ciertos temores o ayudarnos a despejar simples dudas.&lt;/p>
&lt;p>Y no bastará con ser sin serlo, pues ser es y será por siempre nuestro principal cometido. Donde la misma idea del vacío y su despropósito podrá visitarnos en tantas ocasiones sin permiso.&lt;/p>
&lt;p>¡Y no podremos permitir no sentirnos! Aunque extrañarnos podrá ser, en ocasiones, también algo inevitable. ¿Qué estamos haciendo ahora? ¿Y con nuestra vida? ¡«No bastará pues», os decimos! A lástimas y caídas hemos sobrevivido: basta de una vez por todas de dicha idea pobre y carente de sentido, pues sobrevivir no es vivir.&lt;/p>
&lt;p>¡Y no bastará con que nos digan! ¡Seremos nosotros los que a nosotros mismos nos digamos…! Que todo está bien y que así seguirá estando.&lt;/p>
&lt;hr />
&lt;h2 id="la-complejidad-de-la-obligacion">La complejidad de la obligación&lt;/h2>
&lt;p>Cuando nos olvidamos de quiénes somos es cuando tendemos, en mayor grado, a la angustia nacida del desconcierto. Aquella incógnita que nos asusta y nos hace sentir incómodos. Aquello que a priori podría parecer innecesario, pero seguro debería derivar en una conclusión obligatoria: educarnos en la materia.&lt;/p>
&lt;p>Cuando nos olvidamos de quiénes somos es cuando más deberíamos recordarnos. A toda prisa… En una carrera donde el tiempo se ve obligado a no detenerse ni un segundo. Donde las decisiones con mente fría se tornan complicadas, pero especialmente donde la identidad que nos debiera pertenecer se siente abrumada y escasa de esencia.&lt;/p>
&lt;p>Todo gira en una repleta aura de conjeturas, vértigos y miedos ligados. Pues olvidarnos de nuestro principio, de nuestra personalidad, está inequívocamente en la dirección incorrecta de lo que realmente quisiéramos.&lt;/p>
&lt;p>Cómo nos gustaría, en ciertas ocasiones, simplemente evitar aquellas situaciones o conocimientos que quisiéramos eludir, así como hacer, aprender o saber con antelación otras tantas que podríamos olvidar o no interpretar correctamente a tiempo.&lt;/p>
&lt;p>¿Hasta qué punto estamos dispuestos a llegar? ¿Hasta qué punto realmente estamos dispuestos a renunciar a ciertas cosas por otras tantas? ¿Qué es esto sino un intercambio de decisiones y prioridades?&lt;/p>
&lt;p>Es por ello que la inquietud nos persigue cuando erramos, con mayor o menor culpa, en nuestro compromiso porque se trata del sentimiento de proximidad de nosotros hacia nosotros. Nuestra plenitud no debería ser más que nuestro propio entendimiento con nosotros mismos.&lt;/p>
&lt;p>La complejidad de la obligación reside en la responsabilidad de la misma, siendo ésta proporcional al peso que estemos dispuestos a cargar, el cual nunca debería ser impuesto, sino deseado en todo caso.&lt;/p>
&lt;p>Deseando complejidades aquí nos vemos, pues no habrá complejidad mayor que no podamos solventar.&lt;/p>
&lt;hr />
&lt;h2 id="echaremos-de-menos">Echaremos de menos&lt;/h2>
&lt;p>Cuando todo pase y nada quede nos acordaremos con posible nostalgia de aquellos momentos que ocurrieron, especialmente de aquéllos que nos hicieron sentir. Echaremos en falta el deseo de escribir, pues todo acabará terminando como el fuego consumido por la falta de oxígeno.&lt;/p>
&lt;p>Extrañaremos esos deseos de locura por el aprendizaje, quizá incluso de aquélla misma superación, quizá incluso de identidad… Quién sabe cuánto podremos echar de menos. Pues ya extrañamos, y no es extraño, un poco cada día. Hacernos mayores nos obliga a ser más conscientes de nuestro pulso, de nuestro respirar, así como de su propósito encadenado.&lt;/p>
&lt;p>Echaremos de menos el agua correr, el sol despertándonos por las mañanas y pasar las horas reflexionando sobre qué echaremos de menos…&lt;/p>
&lt;p>Pero no será hoy.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/13.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 12: Febrero, 2016</title><published>2016-02-01T00:00:00+00:00</published><updated>2016-02-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-febrero/"/><id>https://chemaclass.com/es/books/oeur/2016-febrero/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/eY03KCZue6s"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="viajar-a-nuestro-encuentro">Viajar a nuestro encuentro&lt;/h2>
&lt;p>Un vacío continuo y cambiante. Repleto de todos y de nadas, y de confluencias, así como de carencias y, de vez en cuando, de esencias ordenadas.&lt;/p>
&lt;p>Viajar nos ha enseñado, entre otras cosas, a comprender mejor que la vida es tan diferente a como estábamos acostumbrados a pensarla… Abrirnos nuevas puertas día tras día con apenas descansos entre medias, donde el sosiego estaba ya contado.&lt;/p>
&lt;p>Los mínimos exigibles evolucionan y los máximos posibles desaparecen. No queda rastro del límite impuesto en nuestra juventud sobre lo que somos capaces o no de conseguir. ¿Límites? Qué expresión era esa…&lt;/p>
&lt;p>Fronteras que no hacían más que aturdir nuestra visión, impedirnos ver más allá y no dejarnos sentir aquello que de otra forma posiblemente jamás pudiéramos haber accedido.&lt;/p>
&lt;p>Viajar nos ha abierto la mente más de lo que jamás pudimos pensar. Estudiar nos ha dado la llave para abrir las puertas que soñamos y soñaremos. Ser nosotros mismos nos ha permitido estar con quienes realmente quisimos y querremos. Soñar nos ha concedido vivir y vivir nos está permitiendo soñar.&lt;/p>
&lt;hr />
&lt;h2 id="juventud-imperdonable">Juventud imperdonable&lt;/h2>
&lt;p>Aquella juventud imperdonable que nos consume junto a nuestro tiempo en un aparente sentido subjetivo que nosotros mismamente decidimos crear.&lt;/p>
&lt;p>El paso de los días, de los años…, del tiempo en general. ¡Cuidado!, no nos durmamos más de lo previsto o nos pasaremos de listos, equivocándonos una vez más.&lt;/p>
&lt;p>¿Cuándo es el momento? ¿Cuándo debería serlo? El problema no es que ese momento no haya llegado o que parezca no llegar; el problema es no estar despiertos y no salir a buscar aquello que queremos encontrar. Ello quiere decir no estar durmiendo, sino atentos en estas aguas que en cualquier momento nos pueden tragar. No estar dormidos significa aprender a descansar cuando estemos realmente cansados. Significa aprender a nadar, a no dejarnos llevar por la corriente sin razón aparente. Significa aprender a respirar incluso debajo del mismo mar. Significa caminar junto y contra el viento, aprendiendo de él y de su libertad de movimiento.&lt;/p>
&lt;p>Una juventud que no perdona es aquélla que, cobarde, se esconde delegando sus responsabilidades al tiempo, a que éste las lleve a cabo sin mayor intención en su entendimiento de unanimidad propia. Carente de sentido, nuestra juventud no perdona. Enfrentándonos a nuestra adolescencia con real sufrimiento ligado, pues quedará en nuestra conciencia todo aquello que para nuestro futuro aún no hayamos superado.
¿Quién decidió ser mayor? ¿Acaso la misma juventud huyó desconsolada? ¿Quién decidió ser aquello o lo otro?&lt;/p>
&lt;p>¿Cuándo nos hicimos mayores? ¿Cuándo dejamos de ser aquello que no recordamos? Deberíamos estar satisfechos con nuestras decisiones, especialmente si no hubieron otras intenciones que las de ser; respirando en consecuencia y, como resultado futuro, indultando nuestro pasado, efecto irreversible de nuestro presente en nuestra realidad consecuente.&lt;/p>
&lt;hr />
&lt;h2 id="religion">Religión&lt;/h2>
&lt;p>Debemos entender la religión como algo natural, propio de una raza frágil que tiende a la mediocridad y donde las mentiras y los engaños pasean sin nuestro permiso, siendo, por tanto, algo intrínseco en nuestra humanidad. Podríamos pensar con todo el derecho: «Pobre aquél que quiera ser de este mundo», pero más pobre será aquél que no lo quiera.&lt;/p>
&lt;p>La religión nació fruto de nuestra cobardía, de nuestra incomprensión y de nuestra falta de compromiso, pero sobre todo de nuestra falta de sentido y sentimiento como especie divina.&lt;/p>
&lt;p>¿Es acaso la religión un error en sí misma? No lo creo. Creo que la religión es simplemente fruto de otro reflejo más, síntoma que aún nos queda mucho por evolucionar.&lt;/p>
&lt;p>La creencia en algo superior a nosotros no es más que un reflejo de nuestra falta de fuerzas en nuestro mundo: nuestra vida. La religión no es más que la consecuencia de la grandísima carencia que existía años atrás. El simple hecho de que hoy en día aún se mantenga y se practique con siquiera algo de euforia lo dice todo: una imagen vale más que mil palabras.&lt;/p>
&lt;p>La fe en una u otra religión, sin distinción, revela la falta de confianza, así como de sentido personal e individual. No estamos aquí buscando o señalando culpables. Todos somos parte de nuestro ecosistema, todos somos parte de lo mismo al fin y al cabo.&lt;/p>
&lt;p>La religión no es más que una falsa e innecesaria autosugestión de la existencia de una autoridad superior. Hablamos aquí de «innecesaria» desde un punto de vista por encima de la norma: como especie que no entiende que superior a ella misma no existe nada.&lt;/p>
&lt;p>¿Entender la religión de otra manera es posible? Por supuesto, no hay más que fijarse en la gente que, aún atrasada y cobarde, entiende este tema. Decimos «atrasada y cobarde» refiriéndonos a que no se atreven a ser por encima de ellos mismos. Por tanto, están atrasados en su potencial respecto a los que sí se atreven a vivir en su merecida grandeza. Muchos simplemente se excusan en que la religión es buena y ayuda; ¡maldita sea la religión! ¡No fue ella, sino nosotros!&lt;/p>
&lt;p>La religión es la creencia de que nosotros ni fuimos ni somos. ¡Menudo disparate! Nosotros fuimos, somos y seremos. Fuimos nosotros los que aniquilamos en nombre de la religión. Fuimos nosotros los que ayudamos en nombre de la misma. ¡Somos nosotros y no Dios ni ningún hijo ni profeta suyo los que lo hacemos todo!&lt;/p>
&lt;p>¡No seáis miedosos! El mundo puede ser tan maravilloso como nosotros decidamos con nuestra actitud ante la vida, pues no hay mayor secreto que el conocernos, así como ser conscientes de nuestro poder y sabiduría. El uso que le demos será determinante para delimitar nuestros éxitos y fracasos y, por tanto, la calidad y el sentido de nuestra existencia.&lt;/p>
&lt;p>¿Cuál es la diferencia entre creer en un Dios y creernos los dioses de nuestras vidas? Es muy sencilla: la autodeterminación, así como la responsabilidad, que ello conlleva. No estamos aquí intentando desmontar ninguna falsedad ni certeza alguna. Todo está en nuestra mente; el rumbo que decidamos será el reflejo de nuestra madurez.&lt;/p>
&lt;p>No existirá, por tanto, Dios ni destino alguno que nos pueda dirigir hacia la correcta conducta o verdad absoluta. Dentro de nuestras lógicas limitaciones somos seres ilimitados. Por encima de cualquier creencia estará siempre nuestra libertad, que dirigirá el rumbo de nuestro camino. Por encima de cualquier fatalidad, donde se hace presente la fugacidad de nuestras metas. Por encima de cualquier divinidad o creencia, estaremos nosotros como lo que realmente fuimos, dejando algún día de ser y descansando de tanto trastorno.&lt;/p>
&lt;hr />
&lt;h2 id="definitivamente">Definitivamente&lt;/h2>
&lt;p>Definitivamente, no somos superhombres, mas no debería ser ése problema alguno, sino nuestro sentimiento sincero hacia su tendencia. Definitivamente, no lo somos, pero creerlo por momentos nos podría acercar a ello.&lt;/p>
&lt;p>Destinados de por vida a vivir hasta morir. Destinados hasta nuestros últimos días a una vida incansable de cansancios. Destinados a un destino inmaduro y carente de sentido donde ni él mismo sabría reconocerse.&lt;/p>
&lt;p>Definitivamente, deberíamos aprender que el cansancio puede ser en ocasiones inevitable, que nuestra comprensión lectora de la vida puede y debe evolucionar, que podremos ser tanto como podamos imaginar pero, sobre todo, que seremos tanto como demostremos.&lt;/p>
&lt;p>Definitivamente, las palabras se las llevará el viento tan y tan lejos… hasta que éstas queden en su abrigado olvido, quedando pues nulo recuerdo y abundante ausencia de las mismas.&lt;/p>
&lt;p>Deberíamos decidir escribir un libro, nuestro libro. Escribirlo poco a poco, saborear cada una de sus palabras como nunca antes pudimos haber disfrutado, imaginar cada párrafo como el último que pudiéramos escribir, y llevarlo a cabo como si de ello nuestra vida dependiera.&lt;/p>
&lt;p>No somos superhombres y, definitivamente, creer serlo tampoco nos convertiría en ello. Es, por tanto, de donde nace esta sencilla, lógica y absurdamente obvia sentencia: no es la creencia de que algo sea o exista, una prueba siquiera mínimamente concluyente de su veracidad. Creerlo sería ridículamente insensato.&lt;/p>
&lt;p>Es cuestión de un sincero sentimiento hacia lo que realmente decimos o pensamos, es decir, de lo que somos. Pues no decir ni pensar conlleva, inequívocamente, al no ser.&lt;/p>
&lt;hr />
&lt;h2 id="vueltas-y-mas-vueltas">Vueltas y más vueltas&lt;/h2>
&lt;p>Ideas que sin hostal nos inundan y nos acompañan sin percatarnos, sin tan siquiera avisarnos de su llegada. Las mismas que rondarán en nuestras mentes sin fecha advertida de su final instancia.&lt;/p>
&lt;p>Sensación desmesurada de preguntas sin respuestas. Inquietud recelosa, envuelta en papel y desconfiada. Enamorada de sí misma pero, de igual modo, de su opuesta, pues no quedará al final nada.&lt;/p>
&lt;p>Cálidas emociones sin aviso que infieren en nuestra mente sin permiso y alarmando nuestro ser más prudente, invadiendo así el curso y todo lo que con nosotros llevamos en mente.&lt;/p>
&lt;p>Desconfiados por ideas externas que nos atraviesan y nos desvelan en un manantial de incógnitas que no dejan de voltear entre ellas mismas ni de jugar al despiste, así como invitarnos a la locura. Mundo donde los cuerdos parecen ser aquéllos que no conocen o aman el desconocer.&lt;/p>
&lt;p>Donde las ideas juegan sin reglas y desordenadas, y arregladas y gobernadas por aquello que aún desconocemos. Todo un mundo de posibilidades que cada día nos sorprende. Nos inunda en su sabiduría y nos acerca a nuestra idea del ser. Nos transforma y nos compone con el molde que nosotros en antaño comenzamos a tallar.&lt;/p>
&lt;p>Sospechas certeras que apuntan a más. Opiniones esbozadas que sólo desean nacer para brillar como merecen y morir como debieron.&lt;/p>
&lt;p>Advertirnos de qué sucede. Tantos nervios sin nombre aparente que, por supuesto, adrede lo esconden. Debemos figurar y avisar a nuestro Yo, pues se trata de una simple alarma donde la causa se esconde tras un posible desaliento.&lt;/p>
&lt;p>Reparar nuestro respirar de nuevo… Imaginar que todas estas vueltas de algún lado nacieron.&lt;/p>
&lt;p>Todo está en su sitio, cada cual en su medida ordenada. Las preocupaciones aparentes no tienen por qué ser evidentes ni tan siquiera existentes más allá de nuestras mentes. Dejemos pues de creer aquello o en lo otro sin razón alarmante, pues la única urgencia es saber que en nuestro poder al final todo se encuentra.&lt;/p>
&lt;p>Pero bien cierto es que la claridad puede tardar en hacerse presente y que, hasta entonces, es más que comprensible el sentirnos incomprendidos, alterados e incluso asustados. Sintámonos libres de sentirlo, de sentirnos como tales. Pero no olvidemos quiénes somos, por favor; escribamos si es preciso.&lt;/p>
&lt;hr />
&lt;h2 id="tan-facil">Tan fácil&lt;/h2>
&lt;p>Es tan fácil perderse cuando todo parece estar conseguido… Cuando todo aparenta estabilidad asegurada y nosotros así lo creemos, es cuando realmente todo tiende a la inestabilidad. ¿Dónde quedaron nuestras ganas de prosperar y mejorar cuando todo no estaba ganado? Creo que simplemente nos dormimos o, dicho de otra manera, nos dejamos dormir.&lt;/p>
&lt;p>No deberíamos creer que esto es algo negativo, en absoluto. Nuestro primer cometido es el de aprender, especialmente de aquellas situaciones o momentos que no querríamos volver a experimentar. Aprender que las apariencias tienden a engañar a primera vista, pero sobre todo aprender que debemos ser más audaces con nuestra realidad.&lt;/p>
&lt;p>Parece que tendemos al descuido si nos dormimos o si tan siquiera dejamos el piloto automático activado porque creemos que ya está todo hecho. No podríamos estar más equivocados. La inactividad es lo que nos acabará destruyendo y formando en aquello que tan alejado queda de la idea del superhombre.&lt;/p>
&lt;p>La falta de acción por nuestra parte como personas nos desmorona y nos quita el sentido con todo el derecho. Y es que es tan fácil terminar dormidos sin ambiciones que nos desvelen… Pues tendemos a la mediocridad.&lt;/p>
&lt;p>Es tan difícil, aparentemente, mantenernos despiertos en esta realidad donde el sonambulismo predomina…, donde los temas principales parecen carecer de lucidez en su perspectiva y donde la normalidad sugiere haber encontrado un sitio donde hospedarse sin verse obligada a pagar por su estancia.&lt;/p>
&lt;p>Las dificultades que encontramos en nuestra realidad no podrían ser más interesantes desde el punto de vista del que las visualice o las sufra, convirtiéndose automáticamente en logros a conseguir y superar. Pues bien es cierto que existen obstáculos e inconvenientes que hacen de esta vida, en ocasiones, una continua tortura donde no podemos evitar desear la evasión hasta que todo pase.&lt;/p>
&lt;p>El verdadero problema no son los problemas en sí mismos. La vida está llena de tragedias, de acertijos, de incógnitas por descubrir… El verdadero problema es no hacer frente a aquello que nos produce estas sensaciones incómodas, no encarar nuestras dificultades por miedo a desatar otro conflicto posiblemente interno contra nosotros, pues ¿quién podría contrariarse a sí mismo?&lt;/p>
&lt;p>Es tan fácil dormirse deseando evadirnos de todo…, especialmente cuando la vida no parece estar con intenciones de tendernos la mano. Mantenernos vivos es, en ocasiones, tan difícil que cuesta de creer, pues allá donde miremos veremos comúnmente almas apagadas, sin rumbo, que no saben siquiera por dónde van ni hacia dónde se dirigen.&lt;/p>
&lt;p>Creo, por tanto, que éstas son y deberían ser siempre nuestras principales cuestiones. Dormir es sano, por supuesto, pero «dormirnos la vida» nos costará la misma. En este contexto, deberíamos permanecer despiertos, pero no es fácil. ¿Quién dijo acaso que lo fuera a ser?&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/12.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 11: Enero, 2016</title><published>2016-01-01T00:00:00+00:00</published><updated>2016-01-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2016-enero/"/><id>https://chemaclass.com/es/books/oeur/2016-enero/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/fg4miI0raeM"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="ambicion-en-un-sueno">Ambición en un sueño&lt;/h2>
&lt;p>Ambición es querer más y mejor; es no rendirse, y mucho menos por cualquier cosa.&lt;/p>
&lt;p>Ambición por cambiar, aprender y disfrutar creciendo, rompiendo continuos esquemas de verdades a medias. Incluso enteras. Verdades espejismo. Verdades…, ¿cuáles de ellas? ¿Somos acaso nosotros verdad? ¿Cuánto de verdad hay en nosotros?&lt;/p>
&lt;p>Ambición por reír y sonreír cada día. Por todo…, por cualquier cosa. Aprendiendo a disfrutar de cada momento, sea salado o dulce, amargo o picante; todos tienen cabida. Al fin y al cabo, todo es cuestión de gustos y entendimiento. Entendimiento y razón, donde la ambición se hace más presente. Donde los versos pueden converger sin tanto miedo como a veces nosotros podríamos temer a la misma vida.&lt;/p>
&lt;p>Ambición a la vida, nuestro más preciado regalo, y a nuestro sueño. Nuestra capacidad lógica que nos permite discernir la ilusión de la verdad, la vida de un sueño y los sueños de la verdadera realidad.&lt;/p>
&lt;p>Ambición por vivir, por crecer, por reír, por soñar, por hacer, por unir, por crear… Ésta debería ser nuestra verdadera realidad, nuestro proyecto como mortales, pues, al fin y al cabo, sólo quedará aquello que hayamos sido.&lt;/p>
&lt;hr />
&lt;h2 id="renuncio-a-dios">Renuncio a Dios&lt;/h2>
&lt;p>¿Existe Dios? ¿Cómo puedes atreverte a afirmar la existencia de un Dios? Yo lo sé: la ilusión de la ignorancia. La ilusión del desconocimiento y del sentimiento por encima de la razón.&lt;/p>
&lt;p>Sin prueba real alguna más allá de las ilusiones individuales, de la necesidad de crear un Dios «por nuestro bien» para acentuar los límites del bien y del mal, pues los cobardes no se atreven a delimitarlos por ellos mismos. Necesitan apoyarse en una idea divina superior a ellos. Se caerían de lo contrario, pues son débiles, además de miedosos, en su realidad.&lt;/p>
&lt;p>¡Muéstrame una prueba real! Demuestra al mundo dónde está tu dichoso Dios, demuéstramelo a mí. No he visto más que palabrerías al respecto. No he escuchado más que creencias en vano y experiencias personales sin valor objetivo, especialmente sin posibilidad de ser demostradas. Más allá de aquél que quiera tener creencia en algo inexistente.&lt;/p>
&lt;p>Tener fe es querer desconocer. No atreverse a pensar con causa y conocimiento. No atreverse a ser Dios es lo que les induce al fracaso en su creencia y al miedo a su responsabilidad, así como libertad.&lt;/p>
&lt;p>Denuncio al falso único Dios y a todo aquél que lo alimente en su cobardía, pues somos nosotros los dioses de nuestra vida. La prueba es bien sencilla: abre los ojos y mira a tu alrededor. ¿Qué puedes ver? Mírate las manos. Atrévete a ser consciente de tu poder, de tu sabiduría, de tu pasado…&lt;/p>
&lt;p>Piensa en tu futuro, en lo que está por venir, en todo lo que tienes por delante. Sueña estos segundos con tu tiempo, respira despacio y disfruta de ello porque estás siendo realmente Dios. Lo más grande que existe en tu vida: simplemente tú.&lt;/p>
&lt;p>Renuncio al único Dios que nos venden, ya que no hay más Dios de uno que uno mismo.
Mírate frente a un espejo por unos instantes, ¿qué puedes ver? ¡Ahí está Dios! ¡Necio! ¡Somos nosotros! ¡Pues nosotros existimos!&lt;/p>
&lt;hr />
&lt;h2 id="mis-propositos">Mis propósitos&lt;/h2>
&lt;p>Está sobradamente generalizado que en los comienzos de cada año se presenten ciertas propuestas para realizar en este nuevo entrante. Sin ir más lejos, hoy es el octavo día de este nuevo año y, desde hace varias semanas, uno de los temas principales de los que hablar son las «propuestas» para este año nuevo.&lt;/p>
&lt;p>Por supuesto que es un tema importante, donde animarnos a fijar metas a corto y medio plazo se hace más notable, pero creo que deberíamos hacer algo distinto. Creo que podríamos hacerlo diferente: mirar desde otro ángulo para resaltar el verdadero propósito de nuestras sinceras intenciones.&lt;/p>
&lt;p>Nuestras principales resoluciones tienden a ser poco originales. Repetitivas, año tras año. La imaginación se aburre si no juega y no crea, pero sobre todo si no se divierte. ¿Por qué nuestras resoluciones son tan efímeras? ¿Realmente conseguimos alcanzar nuestras metas fijadas estos días del año tan tempranos?&lt;/p>
&lt;p>Visualicemos esta misma situación desde otra perspectiva, juguemos con nuestra realidad. Está genial fijar nuevas metas a alcanzar en este año entrante, pero yo prefiero pensar en dónde estaremos el siguiente. Plantearme unos propósitos en un largo plazo. Pensar dónde queremos estar realmente de aquí a dos, tres o incluso cuatro años. Las resoluciones de este año que acaba de comenzar son demasiado sencillas: simplemente disfrutar de él mientras luchamos por convertirnos en nuestra mejor versión.&lt;/p>
&lt;p>Nos referimos al proyectar de nuestro futuro, a hacer de cada despertar un propósito en sí mismo, a focalizarnos y mentalizarnos en aquello que realmente tanto ansiamos.&lt;/p>
&lt;p>Cambiar los efímeros días a increíbles experiencias. Llenos de vitalidad, fuerza y energía en la búsqueda de nuestro verdadero Yo. A disfrutar en nuestro camino y a encontrar la forma de sentirnos correspondidos, especialmente con nosotros mismos.&lt;/p>
&lt;hr />
&lt;h2 id="a-veces">A veces&lt;/h2>
&lt;p>A veces la vida puede parecer extraña, especialmente cuando todo ocurre de distinta forma a como teníamos planeado o pensado.&lt;/p>
&lt;p>A veces podemos sentir que no seremos suficientemente fuertes, como si hubiéramos perdido toda nuestra fuerza, o que simplemente ya no queremos continuar más en este juego, el cuál parece que no tiene ningún sentido.&lt;/p>
&lt;p>A veces podemos sentirnos realmente mal. Todo lo que hicimos no fue lo que realmente queríamos hacer o el futuro que nos espera parece no tener mejores opciones.&lt;/p>
&lt;p>A veces podríamos preguntarnos: «Pero… ¿para qué? Cada día es lo mismo y va a peor. No puedo hacer nada. Esto no funciona, esto está mal…, yo sobro aquí. Nadie podría entenderme». Es normal. Todos hemos pensado estas cosas al menos una vez, especialmente en nuestra infancia.&lt;/p>
&lt;p>A veces podemos equivocarnos. ¡Equivocarnos he dicho, por supuesto! ¡Despierta! Somos humanos, ¿qué te pensabas? Podemos llegar a ser increíbles, especialmente porque podemos llegar a demostrarlo. Y no es ciertamente complicado: lo único que necesitamos es paciencia con nosotros. El resto vendrá por sí mismo. Necesitamos simplemente tiempo.&lt;/p>
&lt;p>¡Disfruta de tu vida haciéndola única!&lt;/p>
&lt;hr />
&lt;h2 id="ojos-en-un-recuerdo">Ojos en un recuerdo&lt;/h2>
&lt;p>Sentir cómo crecen y maduran nuestras ideas, con ansias de lectura y aprendizaje. Sentir el cansancio fruto de una vida activa y llena de vitalidad y energía como se merece. Sentirnos como parte vital de un conjunto, así como parte individual de un todo.&lt;/p>
&lt;p>Lleno de emociones y de ideas alocadas que suspiran por nacer. De noches en vela en las que el no soñar está prohibido, donde ellas son las protagonistas de nuestra historia. Si en cualquier momento nos vemos sin ellas, es cuando deberíamos asustarnos y corregirnos rápidamente.&lt;/p>
&lt;p>Extrañar un joven fugaz y soñador, pero carente de valentía. Extrañar no haber estado ahí para haberle dicho lo equivocado que estaba y lo mucho que valía. Que era importante y que por momentos lo sería aún más. Que cada día de su vida sería un antes y un después en sí mismo.&lt;/p>
&lt;p>Añorar una tierra más cálida que fría, pero tampoco demasiado, y no por la tierra en sí misma, sino por lo que en ella había. Desear ver con otros ojos nuestros recuerdos, nuestra familia, nuestro pasado, nuestro hogar, a nosotros en aquella época tan disparatada…, para poder hoy afirmar estar tan satisfechos…&lt;/p>
&lt;p>Viajar. Vivir alejados de todo lo que siempre teníamos a nuestro alrededor nos ha hecho más conscientes de todo aquello que hoy en día tenemos presente, de lo efímero que es todo en general y de lo valioso que pueden llegar a convertirse las pequeñas cosas en particular, y no me refiero simplemente a meros detalles: grandes amistades en la distancia, hermanos pequeños que aún necesitan ayuda para no acabar perdidos, donde la risa aún se alcanza y la esperanza en todo éxito florece en cada consuelo y experiencia.&lt;/p>
&lt;p>Recuerdos en un futuro incierto pero certero. Sueños en la inmensidad de los deseos, donde cada pasaje puede brillar sin miedo alguno hasta su plena transformación, dejando por siempre de lado la ficción para convertirse en plena realidad.&lt;/p>
&lt;p>Comenzar a plasmar, a crear de donde antes no había nada. Reutilizar, reinventar nuestras ideas y pensamientos, improvisar con todo aquello que no se deje. Romper con las ideas vanas de inferioridad, pero, sobre todo, con el «tú no podrás».&lt;/p>
&lt;p>Hermoso detalle el que tuvieron y tuvimos con nosotros hace unos años aprendiendo a ajustar la vela de nuestro barco al viento para que no acabe rompiéndose por mucho que éste sople… Por muy difícil que algo pueda parecer, nada será imposible de guardar por nuestros ojos en un recuerdo.&lt;/p>
&lt;hr />
&lt;h2 id="donde-comienza-el-exito">Donde comienza el éxito&lt;/h2>
&lt;p>El éxito comienza en uno mismo, en creer haberlo alcanzado antes incluso de haberlo hecho. No por falsas esperanzas, sino porque todo debería apuntar a que así será.&lt;/p>
&lt;p>Por supuesto que existen probabilidades de que aquello fijado no se alcance en su totalidad, pero no debería ser por nuestra culpa. Nosotros deberíamos haber apostado y trabajado dura y plenamente en ello.&lt;/p>
&lt;p>El éxito es, en parte, matemático: cuestión de probabilidad. Como las calificaciones en un control cuando éramos jóvenes: las puntuaciones de los mismos no medían las capacidades reales respecto al resto de compañeros. Lo que medían eran las probabilidades que existían de nuestro éxito: cuanto más se estudiaba, más probabilidades teníamos de alcanzar una mayor calificación.&lt;/p>
&lt;p>Con el éxito en la vida es lo mismo: que luchemos más por obtener una mayor nota, por conseguir aquello que más deseamos o por lograr alcanzar nuestras metas no quiere decir a ciencia cierta ni nos puede asegurar en su totalidad que lo alcanzaremos; pero sí que aumentaremos las probabilidades de que ello ocurra. Siendo posible incluso aprender a controlar ciertas probabilidades, haciendo que éstas tiendan al máximo.&lt;/p>
&lt;p>La vida es demasiado compleja como para jugar a su juego. Es demasiado complicada como para hacerle caso. Buscar la felicidad en las dificultades de la misma sin esforzarnos es excesivamente difícil. Por ello debemos crear y aplicar nuestras normas, en su simplicidad, para alcanzar el éxito y, por tanto, nuestra felicidad.&lt;/p>
&lt;hr />
&lt;h2 id="harto">Harto&lt;/h2>
&lt;p>Sin duda alguna, creo que si preguntáramos a personas cercanas a mí, todos coincidirían en un adjetivo, al menos, común para describirme: paciente. Me considero una persona con una importante paciencia. De hecho, es, sin duda, una de mis principales virtudes: saber que el tiempo no se detiene y que todo acaba siendo alcanzado por el mismo.&lt;/p>
&lt;p>¿Por qué soy así? Simple. Estoy harto de escuchar lo poco que valemos o lo poco que somos. Años y años escuchando los mismos sin sentidos. Palabras y situaciones ridículas, demasiado obvias a mi parecer actual, que en su día creí como un ignorante engañando cuando aún no éramos conscientes siquiera de quiénes éramos ni dónde estábamos.&lt;/p>
&lt;p>Primero en una iglesia, en unas creencias anormales más que paranormales, típicas de enfermos y carentes de sentido. Miedosos, pero sobre todo engañados a sí mismos. Donde la hipocresía, los celos y todo aquello de lo que tanto se quejan estos cobardes acaban siendo los primeros rasgos en ser desmentidos. «Por sus actos los conoceréis», dijo un personaje que a más de uno le resultará popular; y no le faltaba ahí razón alguna, pues no hace falta fe ninguna para ser feliz. En absoluto. Lo que hace falta es una buena educación donde unos buenos valores de convivencia y respeto mutuo, así como superación personal, estén presentes, y no confesionalidades estúpidas donde todo lo malo y lo incorrecto —según el libro que estemos leyendo— queda previamente establecido, como si de un juego de rol se tratase.&lt;/p>
&lt;p>Y segundo en un «castillo», donde el punto anterior primero resalta, destaca y brilla tanto… que llega a abrasar más que diez soles juntos. Donde aprender a sobrevivir se convirtió en el pan de cada día. Donde los recuerdos quieren desaparecer. Donde empecé a descubrir el valor de mi verdadera familia, así como de mis vecinos y de la gente que, día a día, me rodeaba.&lt;/p>
&lt;p>Acabé harto de escuchar tantas idioteces sin sentido juntas… que tuve que aprender a ser paciente por obligación impuesta a mi mismo. Como necesidad. Acabé harto de que no se valorase aquello que realmente lo merecía.&lt;/p>
&lt;p>—¿Y quién o qué es aquello que realmente merece ser valorado? ¿Todo el mundo, acaso? Pero, sobre todo, ¿en qué medida?&lt;/p>
&lt;p>Claro. Evidentemente, todo el mundo merece ser valorado, pero no todo el mundo por igual. Unos valen más que otros. No somos iguales. Todos somos diferentes, ahí está la gracia y parte de nuestro sentido. Es parte de nuestra historia y de nuestro futuro. La monotonía nunca fue nuestro propósito final ni tan siquiera primero.&lt;/p>
&lt;p>Estoy harto de que no se valore aquello como realmente merece serlo. Y medir dicha valoración es bien sencilla, así como personal. La respuesta a la anterior pregunta la podremos obtener fácilmente, además de ser apta para todos los públicos. Lo único que necesitamos es tiempo, esfuerzo y una sincera autocrítica. El resto es simplemente paciencia.&lt;/p>
&lt;hr />
&lt;h2 id="ironias-de-la-vida">Ironías de la vida&lt;/h2>
&lt;p>Morder la mano que nos da de comer.&lt;/p>
&lt;p>Ironías de la vida es que, gracias a «oír, ver y callar», se aprenda a desear gritar a los cuatro vientos y a pensar con mayor claridad. Desear que todo fuera un sueño del cual querer despertar, para acabar añorando toda una infancia que jamás volverá.&lt;/p>
&lt;p>Ironías de la vida es aprender a trabajar, largarse de casa y querer de nuevo comenzar. Desear cursar de cero buscando otra oportunidad mientras se extraña todo un tiempo que jamás regresará.&lt;/p>
&lt;p>Pertenecer sin querer.&lt;/p>
&lt;p>Ironías de la vida es obligarse a ser mayor, a despojarse de una niñez que jamás existió; desear en ocasiones no haber nacido para acabar amando aquello que tanto se odió; acabar amando la vida, demostrando al mundo lo equivocado que se vivió.&lt;/p>
&lt;p>Ironías de la vida es acabar luchando a muerte, enfrentándonos sin miedo a todo aquello que pudiéramos temer; desear que todo terminase de una vez por todas; nadar contracorriente y contra todo pronóstico, malamente predispuesto por unas autoridades equívocas; no poder cuestionar sin previo permiso.&lt;/p>
&lt;p>Ironías de la vida es subir unas escaleras prohibidas bajo las autoridades más malvadas, erróneas y ruines jamás encontradas. Serpiente mala, miserable y bellaca; su ironía será su condena durante su espera. Que disfrute cuanto pueda, indiferencia es lo que para ella simplemente por mi parte queda.&lt;/p>
&lt;p>Ironías de la vida es nuestro arte, tanto efímero en un instante como temporal en un recuerdo. En mi reserva quedará todo aquello que no escriba. Interprétese como se quiera. Nada será para ti sino mi olvido.&lt;/p>
&lt;p>Ironías fuiste tú y todo lo que fue contigo. Gracias, ahora te digo, por haber sido testigo y participado en la creación más bella que jamás pudimos realizar: a nosotros, por supuesto, me refiero, tanto a mí como a mi Yo. Pues no habrá mayor ironía en esta vida que el mero hecho de sentirnos mínimamente agradecidos por alguien tan poco merecido como pudiste en su día haber sido.&lt;/p>
&lt;p>Gracias. A tu ironía, le digo.&lt;/p>
&lt;hr />
&lt;h2 id="que-no-morir">Que no morir&lt;/h2>
&lt;p>Jugar con la muerte, que no morir. Somos la personificación de nuestra experiencia, de lo que nos intentaron enseñar y de lo que realmente aprendimos.&lt;/p>
&lt;p>No es nuestro miedo a crear, sino a ver destruido aquello que creamos, ya sea por el simple paso del tiempo, por el transcurso de la temporada o por nuestro fin existencial como personas.&lt;/p>
&lt;p>Jugar a ser nosotros mismos, que no morir. Huir de lo aburrido, ya sea simple o complejo. Tentar a la suerte en su justa medida. En nuestra naturaleza está escrito: «Nuestro tiempo no regresará. Jamás».&lt;/p>
&lt;p>Somos perfectas abstracciones de nuestra única realidad. Desde nuestra más sincera complejidad hasta nuestra más absurda sencillez. Realidad donde la nada y el todo podrían converger sin recelos. Donde nadie es nada y todos somos todo al mismo tiempo.&lt;/p>
&lt;p>Sería tan aburrido hablar siempre de lo mismo, hacer siempre cosas semejantes o no pensar en nada nuevo… Debemos evolucionar, mejorar nuestros pensamientos y nunca dejar de creer en nuestra persona; como Dioses de nuestra única realidad que somos.&lt;/p>
&lt;p>Jugar con la muerte, que no morir. Plantar cara a la vida sin miedo a nuestra evolución, a nuestro poder, a nuestro verdadero ser: a nuestro Yo.&lt;/p>
&lt;p>No seremos aptos para el mundo si no estamos predispuestos a estarlo. Somos tanto y tan poco al mismo tiempo como decidamos. En nuestra valentía se esconde nuestro verdadero poder: el poder de cambiar el mundo, nuestro mundo. La cobardía no es más que un síntoma nacido de la falta de confianza. Un síntoma que revela la ausencia de voluntad de poder cuando se debe y se tiene, y la carencia de su conocimiento en sí mismo.&lt;/p>
&lt;p>Nos referimos a una cobardía personal e individual. Cobardía en no atrevernos a ser, en no decirnos la verdad por miedo a tener que afrontarla. A veces es nuestro miedo al mismo miedo lo que no nos deja vivir. ¡No podríamos estar más equivocados en nuestro temor!&lt;/p>
&lt;p>¡Miedo a morir sin haber vivido, que no a morir!&lt;/p>
&lt;hr />
&lt;h2 id="cansado">Cansado&lt;/h2>
&lt;p>A veces estamos cansados. No es normal en nosotros, pero hay que entendernos. No es algo malo, en absoluto. Se trata simplemente de un síntoma de necesidad de pausa, de sosiego acompañado de reflexión como el que estamos teniendo ahora.&lt;/p>
&lt;p>Acostémonos. Leamos un par de horas hasta que no podamos más y durmamos en un sueño profundo. De esta manera ayudaremos a nuestro cuerpo, así como a nuestra voluntad, a reponer todas las fuerzas que necesitamos para que, cuando despertemos, sonriamos como de costumbre.&lt;/p>
&lt;hr />
&lt;h2 id="se-me-eriza-la-piel">Se me eriza la piel&lt;/h2>
&lt;p>Se me eriza la piel cuando en nosotros pienso. En la inmensidad dentro de nuestra inquietud. En ese momento único que parece inmortal cada segundo que dejamos pasar frente a nuestra mirada.&lt;/p>
&lt;p>Se me eriza la piel cuando en nuestro futuro pienso. En nuestra vida por delante, en cada segundo, en cada instante que, junto a nuestra persona traviesa, dejamos reposar. Disfrutando de ese instante compartido que a nuestros ojos nace únicamente para ser vivido.&lt;/p>
&lt;p>Se me eriza la piel cuando con nosotros sueño. En nuestros momentos vividos y aún esperados. En los momentos compartidos, así como dejados; que nunca son divididos aunque puedan ser anhelados.&lt;/p>
&lt;p>Se me eriza la piel cuando para nosotros escribo.
Con tendencias poéticas en la misma me refiero.
Buscando rimas de la nada hasta que genero,
y el resultado en mi mente en ocasiones concibo.&lt;/p>
&lt;p>Se me eriza la piel cuando con nuestro pasado juego.
A veces en nuestro idioma procuro,
más no soy nadie si no maduro,
aventurándome incluso con fuego.&lt;/p>
&lt;p>Se me eriza la piel cuando con nuestros sueños pretendo.
Sin envidiar ciertamente ser nadie,
pues seré yo el único que irradie
hasta que quede finalmente durmiendo.&lt;/p>
&lt;p>Se me eriza la piel cuando termino, cuando empiezo o cuando adivino en cada instante de este tiempo, del que procuro no arruinar. Lo que sí es verdaderamente apasionante es que, a estas horas de la madrugada, sigamos nosotros aquí delante.&lt;/p>
&lt;p>Se me eriza la piel cuando en nosotros pienso, cuando contigo sueño, cuando para ti escribo o, simplemente, a tu lado juego.&lt;/p>
&lt;hr />
&lt;h2 id="inseguridad-necesaria">Inseguridad necesaria&lt;/h2>
&lt;p>Nos referimos a una inseguridad innecesaria, fruto de un árbol mal alimentado. Donde la tierra ha sido abonada con continuo desorden en un área de escasa vida y de abundantes ironías.&lt;/p>
&lt;p>Donde las metáforas florecían por sí mismas sin que nada ni nadie pareciera regarlas, junto a una continua lluvia de desesperación y desconcierto. Donde el término de identidad se desvanecía día tras día y nuestras raíces deseaban ser arrancadas de cualquier forma para migrar a otro lugar.&lt;/p>
&lt;p>Sin importar el modo ni la fecha, pues la noción del tiempo se perdía entre horas e incluso días, esperando a que algo cambiara implicando alguna mejora, pues peor riego y abono que el que tomábamos sería todo un reto en su dificultad.&lt;/p>
&lt;p>La cosecha obtenida de un mal riego tiende a ser mal fruto.&lt;/p>
&lt;p>Pero lo gracioso en este juego de palabras es precisamente que pudimos aprender a ser regados por nosotros mismos. Aprendimos, al menos, a cambiar de abono. Regarnos con distinta agua cada día, experimentar y probar; quitarnos las vendas de los ojos que tanto nos impedían ver.&lt;/p>
&lt;p>Aprendimos a aprender.&lt;/p>
&lt;hr />
&lt;h2 id="no-basta">No basta&lt;/h2>
&lt;p>La vida no basta con ser vivida. Debemos encararla y no dejar que se nos escape. Cada instante de nuestro respirar no es que no regrese, es que desaparecerá como una mota de polvo en el cosmos para no volver jamás.&lt;/p>
&lt;p>Nadar contra corriente, contra nosotros mismos porque, créeme, hará falta. Esto debería ser una batalla. El mayor encuentro personal de nuestra vida, pues no habrá contienda más importante para nuestra persona que la que contra nosotros despleguemos.&lt;/p>
&lt;p>Con tacto y comprensión, así como con furia y con pasión. Alcémonos con todo nuestro valor, superemos nuestra pequeñez de una vez por todas, ¡aprendamos a combatir contra nuestra inferioridad como individuos! ¡No basta con simplemente estar ni mucho menos sobrevivir!&lt;/p>
&lt;p>Ninguna estrella brillará por sí sola; menos aún si no tiene nada para iluminar. La luz que irradiamos de nada serviría si no es para inspirar ni encender aquéllas que aún están apagadas.&lt;/p>
&lt;p>No bastará con un «podría…» o un «quizá algún día…». No debemos permitir caer en la simplicidad de una tenue vida donde la rutina nos domine y no nos deje crear. Inventar un superhombre, empujarnos hacia el continuo éxito, elegir lo que realmente queremos y no cesar en nuestro propósito.&lt;/p>
&lt;p>¡Pues no basta la vida con vivirla! Será sinónimo de no vivir si no nos modelamos porque para vivir hará falta algo más que respirar…, y eso es sentir y no dejar de perseguir hasta conseguir ser quien realmente deseamos. Y si antes nunca en nuestro futuro soñamos, es que aún no hemos nacido.&lt;/p>
&lt;p>De lo que sí estoy completamente convencido es de que marchitar sin antes siquiera haber florecido será sin duda el mayor error al que nos habremos conducido.&lt;/p>
&lt;p>¡No bastará, por tanto, ser sin serlo! ¡Seamos!&lt;/p>
&lt;hr />
&lt;h2 id="no-soy">No soy&lt;/h2>
&lt;p>No soy escritor y es ése uno de los motivos por los que me encanta escribir. No me considero tampoco músico aunque pueda hacer sonar de forma agradable un instrumento. Son ya bastantes los años que con la música me comunico, especialmente porque desde siempre me hizo sentir todo tipo de emociones. Recuerdo que también tuve varias épocas en las que componía canciones, pero ello no me hacía compositor.&lt;/p>
&lt;p>Precisamente el no ser escritor es una de las cosas que más me gustan: no dependo de nadie ni nadie de mí. No hay razón alguna para tenerle miedo a las palabras, dejando así mismo que jueguen libremente entre ellas, tanto juntas como separadas. Donde el único responsable es el que las lee y las disfruta en su medida y no el que las pudiera pensar o escribir. Es cierto que el autor de las mismas es culpable, ya que fue fruto propio de su cosecha, pero no le temo a nada de lo que escriba. Quizá en un tiempo futuro, cuando mire atrás y me percate de que no fui escritor. Entonces, seguramente, me entenderé.&lt;/p>
&lt;p>Me encanta escribir por el simple hecho de no ser escritor, de encontrar aquí un lugar donde poder expresar, sin miedo al qué pudiera ocurrir, lo que desde hace tantísimo tiempo deseaba manifestar. Pude en un pasado experimentar una vida que nadie en su sano juicio elegiría: tantas locuras en tan poco tiempo…, tantas emociones dispares e insanas…, que al borde del caos pude verme. Estaba simplemente aprendiendo a leer y escribir al mismo tiempo. Donde el perdón y la misericordia parecían jugar al escondite cada día. Donde los juegos y sus recuerdos no dibujaban más que una infancia inexistente.&lt;/p>
&lt;p>Se me hace complicado hablar en pasado utilizando la primera persona del singular, pues no fui nunca nada o así al menos lo creí; en ocasiones quizá demasiado. Es posible que, al no ser escritor, pueda temblar sin miedo al escribir. O quizá, al no ser escritor, pueda escribir sin miedo al temblor.&lt;/p>
&lt;p>No soy escritor y es mismamente el no serlo lo que me da más fuerzas para demostrarme lo equivocado que aún estoy; pero, sobre todo, para demostrarme que aún me falta mucho por conocerme.&lt;/p>
&lt;hr />
&lt;h2 id="a-otro-nivel">A otro nivel&lt;/h2>
&lt;p>A otro nivel jugamos, donde las miradas giran en torno a un claro entendimiento. Donde la tristeza quedó en una mera ilusión que no consigue hacer sombra a nuestra confianza. Entramos en este mundo sin permiso, donde la claridad no destaca por su presencia. Todo es más bien falto de esencia y tampoco estaría mal algo más de aviso.&lt;/p>
&lt;p>Fruto de la memoria, del recuerdo y del olvido. Fruto de nuestra tercera persona y de aquel suceso introvertido. Inesperadamente, a otro nivel pudimos vernos, bajo un precio que se hizo imposible no pagar. Al parecer, predestinados, podríamos pensar, pero el destino es lento y, en ocasiones, realmente esperpéntico. No es siquiera cercano, pero aún así estaremos obligados a ir de por vida con él siempre de la mano.&lt;/p>
&lt;p>A otro nivel frente al destino, frente al mundo, frente al camino que algunos escogen ciegamente en su atrevida ignorancia. A otro nivel frente a la misma vida que en nuestro humilde entendimiento aprendimos a discernir de su propia paradoja.&lt;/p>
&lt;p>¿Qué es nuestro respirar sino un vaivén de sensaciones no rogadas y un cúmulo de todos y de nadas? ¿A qué nivel estará cada conocimiento sino al que, a nuestro juicio, le otorguemos? A otro nivel entenderemos, mas nunca agradecidos por un final no citado, pero inequívocamente destinados.&lt;/p>
&lt;p>A otro nivel, simplemente. Donde las gentes y las mentes vagan en busca de consuelo. Dejó hace tiempo de ser secreto gracias a nuestra real y valerosa sospecha mientras muchos, encerrados en su cosecha, quisieron no darse cuenta de lo obsoleto. De sus errores más que de sus aciertos, donde los recuerdos con preferencias son escasos. Y las calidades de sus estancias quedaron contadas en breves momentos.&lt;/p>
&lt;p>Como si nuestro objetivo fuera convertirnos, por encima de todo, en unos profesionales de la vida pasionales, así como racionales; cada cual en su justa medida. Debemos decir ahora sin miedo alguno: «A otro nivel jugamos»; pues somos fruto de la memoria frente al destino en nuestro respirar con otras mentes.&lt;/p>
&lt;hr />
&lt;h2 id="precisamente">Precisamente&lt;/h2>
&lt;p>Hay ciertas cosas que aún están mal vistas. Especialmente, temas tabú en un entorno cercano; familiar incluso. Temas delicados a los que nos vemos obligados a tratar con pinzas si no queremos explotar una burbuja que no deja de crecer día tras día en su propia estupidez y sin sentido.&lt;/p>
&lt;p>Temas que nacieron sin que, al parecer, nadie se diera cuenta y que al final serán precisamente aquéllos que nos harán cuestionar: «¿Cómo diablos hemos llegado a esto?». Siendo ya demasiado tarde como para deshacer el esperpento, el sin sentido y el caos en lo que ello ha degenerado.&lt;/p>
&lt;p>Precisamente por ser un tema tabú es por lo que afecta a nuestro Yo interior. Precisamente porque no somos ni seremos hasta que nos liberemos de todo aquello de lo que queremos ser liberados. Precisamente porque somos nuestros verdaderos dioses y deberíamos amar nuestra vida, así como su continua mejora. Aprendimos a no callar cuando en la normalidad la gente calla; a procurar no limitarnos por los temas tabúes, especialmente por los más delicados.&lt;/p>
&lt;p>Y es que en nuestra pasión tendemos a ser creativos, a buscar los límites de nuestras creaciones y, cómo no, a ser nosotros mismos. Es precisamente por ello por lo que escribimos no sólo sobre nuestros pensamientos, sino con ellos, dejando nuestra mente libre en su total albedrío.&lt;/p>
&lt;p>Podríamos estar más o menos acertados en algún tema y, por supuesto, equivocados en otros. Como ya deberíamos saber, nuestra mente no es ninguna caja de verdades absolutas. Más bien, debería estar repleta de auténticas y sinceras realidades donde el conocimiento rebose en un mar inquieto y esté sostenido por los pilares del viento y la marea. Donde la objetividad no tenga por qué despegarse del ánimo, ni nuestra existencia del deseo. Donde nuestros argumentos sean tan amplios que cuesten de creer, pero no por falta de argumentos, sino por su increíble conexión entre ellos mismos.&lt;/p>
&lt;p>Es precisamente por todo esto: porque podemos y debemos equivocarnos. Nacimos sin aviso y sin permiso. Vivamos justamente aquello que de verdad quisimos y queremos. Muramos pues sin miedo a haber vivido.&lt;/p>
&lt;hr />
&lt;h2 id="dice-mucho-de-ti">Dice mucho de ti&lt;/h2>
&lt;p>Quizá estéis en lo cierto, quizá estéis equivocados. Quizá todo lo que creáis sea acertado o quizá todo sea más bien falso sin distinción alguna de cuentos. Lo que sí será siempre evidente es que dirá mucho sobre vosotros todo lo que a fe ciega practiquéis.&lt;/p>
&lt;p>Más allá de ser pragmático, de ser realista y de concebir nuestra realidad como algo tangible donde el disfrute y el éxito en conocernos estén ligados en la misma. Más allá de ser nosotros, de ser pensadores y de saborear nuestro sentido como lo más importante en nuestra vida, donde el placer resida principalmente en las acciones, así como en las decisiones que tomemos.&lt;/p>
&lt;p>Dirá mucho de vosotros, los que, asustados por miedo a vuestra persona, os escondéis. Miedo a lo desconocido: a vosotros mismos me refiero.&lt;/p>
&lt;p>¿De qué os sirve ocultaros esperando tener razón alguna en aquello que no es evidente? ¿De qué os sirve creer ciegamente en aquello que no os alza como superhombres, sino que más bien os empequeñece y os insulta en vuestra grandeza?&lt;/p>
&lt;p>¡Despertad, os digo! Aquéllos que aún dormís o que dormiréis no entraréis en la grandeza de la sabiduría, no mereceréis vuestro sentido y no seréis dichosos. A aquéllos que dormisteis, pero despertasteis, yo os os doy mi enhorabuena porque vosotros conoceréis vuestro verdadero sentido y disfrutaréis de él, de ser vosotros realmente, todo cuanto merezcáis.&lt;/p>
&lt;p>Quizá sea cierto, quizá no. Quizá estemos equivocados, quizá no. Las normas de nuestro juego no deben quedar dictadas más que por nosotros y nuestra experiencia.&lt;/p>
&lt;p>A aquéllos que estáis despiertos, a vosotros os escribo. Nunca olvidéis que seréis lo que digáis y diréis todo cuanto seáis. ¡Sed sin miedo!&lt;/p>
&lt;hr />
&lt;h2 id="caprichoso-destino">Caprichoso destino&lt;/h2>
&lt;p>Me encanta vestir con distintas prendas a los folios aún vírgenes, donde no hay cabida para el miedo y el coraje se vuelve todavía más atrevido. Jugando a ser nosotros mismos, a sentirnos vivos y conscientes de nuestro propio ser y de nuestro Yo, así como de nuestra sonrisa.&lt;/p>
&lt;p>Disfrutar cada mañana como si fuera la última. Crecer cada minuto imaginando nuestra insistente evolución, aferrada a nuestra persona y donde los instantes se vuelven efímeras experiencias para acabar transformándose en un todo lleno de sensaciones.&lt;/p>
&lt;p>Intuir en cada momento, quietos y en movimiento, lo que al azar le cuesta en ocasiones reconocer: sus instantes en el tiempo. El azar no es más que la probabilidad de que algo posible suceda, haciéndonos partícipes de ello en la medida que nosotros hayamos fijado.&lt;/p>
&lt;p>Me encanta la diversidad, así como el coraje que tiene el destino inexistente de hacerse presente cuando menos lo esperamos. En nuestra inmensidad como en nuestra persona. No ser más que fugaces experiencias en el tiempo que marchitarán tarde o temprano.&lt;/p>
&lt;p>En nuestra pequeñez se encuentra nuestra grandeza: el poder de nuestra evolución y de nuestro propio cambio, así como de adaptación. Eso es lo que verdaderamente nos debería apasionar de todo esto: nuestra constante en la vida junto al caprichoso e inexistente destino.&lt;/p>
&lt;p>La trayectoria de nuestra suerte será en sí misma una paradoja donde el tiempo será el único juez que a todos, sin distinción, nos iguale.&lt;/p>
&lt;p>No vivamos aspirando a soñar con que algún día alcanzaremos la vida que nos pertenece; vivamos la vida que en antaño soñamos, sin miedo al ausente, ocurrente e inexistente destino.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/11.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 10: Diciembre, 2015</title><published>2015-12-01T00:00:00+00:00</published><updated>2015-12-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-diciembre/"/><id>https://chemaclass.com/es/books/oeur/2015-diciembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/q5BdYH_zAfQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="el-arte-de-la-adaptacion">El arte de la adaptación&lt;/h2>
&lt;p>Tener miedo a la rutina y a la repetición.&lt;/p>
&lt;p>Sentado en el metro deseando llegar a casa para pensar con tranquilidad, y disfrutar de ello con una buena música de fondo. Tengo miedo de no poder terminar lo que empecé, de dejar a medias todo aquello que me gustaría completar o, al menos, relegar en una versión estable.&lt;/p>
&lt;p>¿Qué es la filosofía, sino preguntas sobre preguntas o ideas sobre ideas? ¿Hasta qué punto las obviedades son obvias? ¿Quién podría regular o decidir su grado?&lt;/p>
&lt;p>Si bien tuviera que escoger una palabra para definirme, sería «improvisación», como el arte de la adaptación.&lt;/p>
&lt;p>¿Quién podría asegurarnos que despertaremos mañana? El mañana no existe sin nosotros. Sólo el hoy y el hacia dónde nos dirijamos sin una última meta decidida.&lt;/p>
&lt;p>Pensar que el mañana es incierto nos debería obligar a vivir siendo realmente nosotros y no a desvivirnos sin hacer nada, como si nada tuviera importancia. No hay día que no piense en ello, por lo que el hacer del hoy el mejor día de nuestra vida no debería ser una opción. Hagamos del hoy el mejor día de nuestra vida.&lt;/p>
&lt;p>Me siento triste con las noticias que sangran, así como alegre en compañía de aquéllos que me hacen disfrutar sintiéndome realmente vivo. Todo es tan complejo… A veces tan hermoso, a veces simplemente nostálgico y melancólico. De la noche a la mañana todo puede volverse frío o cálido en un instante de tiempo.&lt;/p>
&lt;p>Estamos ligados a nuestro pasado y vamos destinados a estarlo de por vida a nuestro futuro: de ahí la importancia de nuestras decisiones y sus consecuencias. Sentir, reflejar, aprender, improvisar… Simplemente poco a poco, con mucha paciencia. Sorprenderemos al mundo, especialmente a nosotros mismos.&lt;/p>
&lt;p>No sabemos cuándo será la última vez que estaremos, que soñaremos, que respiraremos o que desearemos. Hagamos que nos pertenezca cada momento sin excusas, sin posibles mañanas que nunca lleguen, sin «ya habrá otros momentos» o «no estoy seguro». Es la seguridad en uno mismo nuestra principal llave a la felicidad y a nuestra confianza, así como a su continua búsqueda.&lt;/p>
&lt;p>No consiste en encontrar una felicidad intocable e infinita, sino en construirnos para acabar siendo aquello que realmente deseamos en este lugar que nadie decidió y, al parecer, todos nos encontramos, bajo la dicha de un devastador pero dulce tiempo.&lt;/p>
&lt;p>No me fue posible sonreír hasta que decidí improvisar conmigo. Y ahora todo es posible.&lt;/p>
&lt;hr />
&lt;h2 id="moriremos">Moriremos&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Moriré. Todos moriremos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Llantos, recuerdos y anhelo,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>como efímeros sentimientos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>en un olvidado consuelo.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Morirás. Será sin retorno.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nada quedará tras tu estela&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>si tú así lo decidiste.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Tu pasado así lo revela.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Deberemos ser más pacientes&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>porque en breves no estaremos…&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Dará igual si no lo sientes.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Juntos y solos lloraremos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>¿A qué precio sale todo esto?&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>¿Cuál es el coste de este juego?&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nadie puso normas, es cierto…&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nunca habrá otro «hasta luego».&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>La memoria nos podrá fallar,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>el recuerdo quedará olvidado.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Y toda persona como individuo,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>toda quedará a su lado.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Al lado de su olvido, junto a su muerte;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>en nuestro futuro a nuestra suerte.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>No podremos de nuevo verte&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>ni tenerte para leerte.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>La muerte como verdad absoluta.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>El tiempo como igualador divino.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Nosotros… como simples mortales.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Y luego yo. Es decir, tú.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;hr />
&lt;h2 id="emociones-repentinas">Emociones repentinas&lt;/h2>
&lt;p>Como un juego que nunca acaba. Como un ciclo en el que nos vemos inmersos sin darnos cuenta. Como un continuo perder y ganar sin retorno.&lt;/p>
&lt;p>Como un vaivén de emociones. Como un frío verano y caluroso invierno al mismo tiempo. Como un sin parar de impresiones.&lt;/p>
&lt;p>Como ninguno podíamos imaginar. Como todos sospechábamos… y como ocurre al final en todos los capítulos de la vida.&lt;/p>
&lt;p>Simplemente, a la espera de que algo suceda, pues nada tiene por qué estar donde nosotros, en principio, así creímos. No es ninguna estupidez pensar en ello: en nada en particular y en todo en general.&lt;/p>
&lt;p>Tanto por hacer y por querer, tanto… que a veces simplemente no nos quedan fuerzas de la gran sorpresa que algunos días nos podemos llevar. Y es que no hay que rechazar aquello desconocido por el simple hecho de serlo. Especialmente, en cuanto a emociones se pudiera referir, sin referirme a ninguna en concreto. Pues son tantas y tan distintas entre sí… que para evitar olvidarnos de alguna, simplemente hablaremos desde esta perspectiva abstracta donde todos nos entendemos.&lt;/p>
&lt;p>Sin motivo alguno aparente, y es que, ciertamente, no lo tiene. Pues todo está en nuestras ideas y expectativas, en una espera que nadie prometió, sumergido aquí y allá.&lt;/p>
&lt;p>Como un sueño al que pudiéramos aspirar, sueño donde una imagen vale más que mil palabras, donde la pasión y la razón van cogidas de la mano, donde nosotros somos los verdaderos protagonistas más allá de innecesarios recelos.&lt;/p>
&lt;p>Sintiendo escalofríos en quién sabe cuántos pensamientos que, como pájaros, simplemente desean salir de su jaula para poder volar libremente donde su instinto les guíe y el viento les deje.&lt;/p>
&lt;p>Como un juego que algún día terminará. Como un continuo ciclo de toma de decisiones en el que nos veremos involucrados sin quererlo. Como todos pudimos algún día imaginar y sólo unos pocos sospechábamos. Y, como ocurre con los capítulos, todas las etapas acaban terminando. Pero no todos de la misma manera. Aquí radica la principal diferencia entre unos y otros.&lt;/p>
&lt;p>Cada uno de nosotros desprenderá diferentes emociones. Hará vibrar de una u otra forma a su alrededor. Emociones que dependerán del todo, del día y la hora, del quién y el cómo.&lt;/p>
&lt;p>Somos tan únicos y valiosos, especialmente en nuestra diversidad de emociones repentinas.&lt;/p>
&lt;hr />
&lt;h2 id="no-es-vida">No es vida&lt;/h2>
&lt;p>No tiene por qué decidirse todo ahora. No se trata de eso, pero sí de tener una meta gratificante donde realmente nos gustaría estar. Algo que realmente nos gustaría obtener tras un esfuerzo llevado a cabo. Algo en lo que pensar que nos motive a trabajar en nuestro día a día, a levantarnos y estudiar con más ganas. A pensar más allá de una rutina, donde las cosas simplemente suceden sin que aparentemente nadie tenga por qué variarlas porque, al fin y al cabo, dan la impresión de haber sido siempre así.&lt;/p>
&lt;p>Se trata de motivarnos, incentivarnos, cultivarnos y no dejarnos llevar por una vida sin respuestas ni preguntas, sin aprendizajes reales ni nuevas experiencias más allá de la monotonía de lo aburrido.&lt;/p>
&lt;p>Y es que está en nuestra mano, en nuestro poder y en nuestra voluntad cambiar para bien o para mal todo esto. Somos nuestro propio Dios, nuestro guía. Somos nuestra última palabra.&lt;/p>
&lt;p>De nada sirve una vida si en ella no hay pasión por ser vivida.&lt;/p>
&lt;hr />
&lt;h2 id="el-problema-de-la-navidad">El problema de la Navidad&lt;/h2>
&lt;p>El problema de la Navidad se esconde tras sus falsos valores de perdón, amor y reunión familiar sincero. Estoy deseando que llegue el día de ver esto desde otra perspectiva, de veras, pero hoy en día me es algo imposible, al menos, en mi caso, y no es precisamente algo que dependa de mí.&lt;/p>
&lt;p>El problema de la religión es, de nuevo, todos los valores simulados que tras ella se esconden. Ilusiones en bonitas palabras que humanamente luego quedan en un olvido interesado.&lt;/p>
&lt;p>Máscaras que constantemente juegan sin permiso. Dobles morales no invitadas. Y tú sin querer saber qué ocurre exactamente de tanto intentarlo sin recompensa. «Oír, ver y callar».&lt;/p>
&lt;p>Todo viene de mucho más atrás: años y años de error sin corrección y sin una esperanza en el futuro más allá de un exceso de confianza en una irresponsabilidad, en un inexistente y estúpido Dios. Miserable.&lt;/p>
&lt;p>Pero más culpable que Dios y su inexistencia es la carencia que tienen algunos por su excesiva creencia. Más culpable que Dios son los humanos que abusan de él y lo utilizan: modifican a su antojo su significado y lo intentan inculcar como verdad absoluta a sus prójimos. Incompetentes y necios, encerrados en su maldita «fe» hipócrita y desleal. El contexto de nuestras palabras puede variar tanto nuestra intención real…&lt;/p>
&lt;p>El problema no es la Navidad en sí misma ni mucho menos su festividad ni la idea de una especial reunión familiar. Es el que engaña y el que se deja engañar. El problema no son las herramientas ni lo que disponemos, sino el uso que con ello hacemos, especialmente, a todos los que nos importan.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/10.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 09: Noviembre, 2015</title><published>2015-11-01T00:00:00+00:00</published><updated>2015-11-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-noviembre/"/><id>https://chemaclass.com/es/books/oeur/2015-noviembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/TO_mYtRJIFQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="al-motivo">Al motivo&lt;/h2>
&lt;p>Siempre hubo una finalidad. Siempre la habrá. Algo que tener en mente. Causa y motivación para nuestros escritos. Nuestras acciones, así como decisiones, regidas e inspiradas en un motivo.&lt;/p>
&lt;p>La motivación como base fundamental. Vital, incluso me atrevería a decir, pues sin motivación no se podría vivir, y no hablo de un simple respirar. Ella es quien nos inspira en el crear, a sonreír y a luchar contracorriente si hiciera falta. Nuestra motivación es nuestra inspiración, nuestra musa, la que nos da aliento, la que nos recuerda el valor de lo que estemos llevando a cabo, la que sueña a nuestro lado.&lt;/p>
&lt;p>Ideas, ilusiones, tristezas, anhelos… Todo ello nacido de nuestra persona más emocional, que desea sentirse realizada siempre en la medida de sus posibilidades. Para el motivo y por él mismo. Causa y causante de su existencia. Por su elegancia, a ella le escribo: a la motivación.&lt;/p>
&lt;p>¿Quién es, si no, la que me inspira a escribirte? Te escribo a ti, que me sugieres y me das motivos de sobra para expresar todo esto que tanto anhelo sacar. De mi motivación para ella misma. Por saber más que ninguna qué desear y en qué medida. Por ser mía. Por cuestionarme y ayudarme. Por ser yo.&lt;/p>
&lt;p>Para mi motivo, mi motivación.&lt;/p>
&lt;hr />
&lt;h2 id="mi-proyecto-nuestro-proyecto">Mi proyecto, nuestro proyecto&lt;/h2>
&lt;p>Nuestro proyecto no tiene por qué ser común ni tan siquiera compartido, pero estoy seguro de que a ambos nos gustaría una misma meta: alcanzarlo. Y es que no hay nada más satisfactorio que lograr nuestros objetivos, desde los que nos propusimos en antaño hasta los que nacieron hace escasos segundos. No importa el tiempo cuando se trata de crearse a uno mismo.&lt;/p>
&lt;p>Cambiemos, respiremos y evolucionemos sin perder nuestra esencia, siendo nosotros los que decidamos. No habrá rezo ni credo alguno que nos dirija. Disfrutemos de nosotros y de nuestras decisiones, así como de nuestras equivocaciones; pero sobre todo aprendamos de ellas —¡de nuestras decisiones!—. No nos detengamos, sigamos avanzando. Conseguiremos sorprendernos, no quepa la menor duda.&lt;/p>
&lt;p>La madurez no se alcanza con los años, sino con la experiencia.&lt;/p>
&lt;hr />
&lt;h2 id="a-la-mediocridad-necesaria">A la mediocridad necesaria&lt;/h2>
&lt;p>A la mediocridad necesaria. El antes y un después.&lt;/p>
&lt;p>¿En qué medida y con qué certeza podemos jugar a desmentirnos? A pensar de forma inversa creyendo que realmente nos estamos engañando.&lt;/p>
&lt;p>¿Cómo podemos no estar tristes ni deprimidos con todo nuestro pasado? Es nuestro foco el único que tendrá la última palabra sobre nuestra actitud y persona. ¿Cómo podríamos sonreír hoy? Pensando en todo lo que aprendimos y estamos llevando a cabo ahora.&lt;/p>
&lt;p>El aprendizaje como anticipación. Anticiparse al error, pero sin miedo de que éste último ocurra, y de ocurrir, plantémosle cara sin miedo, pues no será más que una emoción e ilusión; y no habrá ninguna que no podamos controlar.&lt;/p>
&lt;hr />
&lt;h2 id="tu-ultimo-dia">Tu último día&lt;/h2>
&lt;p>¿Quién nos puede asegurar que nos levantaremos al día siguiente? ¿Con qué certeza podemos confirmar que mañana despertaremos para continuar con nuestra rutina? ¿Quién se atrevería a ser tan inconsciente como para obviar estas cuestiones?&lt;/p>
&lt;p>¿Cómo te gustaría terminar tu último día? ¿A quién querrías tener presente?&lt;/p>
&lt;p>Pensemos en ese día por un instante. Miremos hacia atrás. ¿Qué podemos ver? ¿Cómo de satisfechos nos encontramos realmente? ¿Qué nos gustaría haber cambiado? ¿Qué nos gustaría haber mejorado? ¿Qué nos gustaría haber hecho realmente en vez de aquello otro que hicimos?&lt;/p>
&lt;p>Sobran las palabras por la grandísima obviedad que a continuación escribiré, pero me temo que debo reflejarlo: esas preguntas deberíamos hacérnoslas todas las noches antes de dormir. Hablarnos, reírnos, expresarnos y escucharnos, pero sobre todo entendernos. Somos como somos, pero, por encima de todo, tenemos que ser quienes realmente queremos ser.&lt;/p>
&lt;p>Nadie puede asegurarnos que nos levantaremos al día siguiente. Nadie puede asegurarnos un mañana, salvo nosotros, nuestro esfuerzo y nuestra voluntad de poder. Nuestro último aliento estará determinado por nuestras acciones.&lt;/p>
&lt;p>Todo el mundo puede tener ideas. Más o menos geniales. Brillantes, incluso. Pero sólo los pocos que se atrevan a convertir esas ideas en realidad serán los que marcarán la diferencia.&lt;/p>
&lt;p>Conocer nuestros deberes, realizarlos y entenderlos para sentirnos realizados.&lt;/p>
&lt;p>¡Transcendamos!&lt;/p>
&lt;hr />
&lt;h2 id="dejar-huella">Dejar huella&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>No bastará con que deseemos&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>y dejemos en días pasados.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Quedará solo si queremos,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>así sigamos muy cansados.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Sin fecha póstuma y a la espera,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>sin demora… nos mantenemos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Todo llegará siempre a su hora.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Calma, pues nosotros seremos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Un poco más, no te retires,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>recuerda esos días soleados.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Basta tan solo con que mires:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>no más recuerdos borrados.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Busca nuevos retos por hacer.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>A altas horas, sin demora.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Debes buscar de nuevo nacer;&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>que ese momento sea ahora.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Siente, crece, muere de risa.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Vive cada día soñando.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por favor, no tengas prisa,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>con tiempo todo irá cambiando.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Es el tiempo quien nos mantiene&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>una cuenta atrás que perdura&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>hasta que nuestro día llegue.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Y nuestra palabra madura.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Concluiré como dijo un maestro:&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>«El futuro es algo inevitable.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Cuanto antes lo hagamos nuestro,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>antes se volverá amable».&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>&lt;img src="/images/books/oeur/09.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 08: Octubre, 2015</title><published>2015-10-01T00:00:00+00:00</published><updated>2015-10-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-octubre/"/><id>https://chemaclass.com/es/books/oeur/2015-octubre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/psZ8Q1UoypQ"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="por-encima-del-bien-y-del-mal">Por encima del bien y del mal&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Por encima de todo lo posible y lo imposible.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de lo real y lo fantástico.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de los sueños, de la vida y de la muerte.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de nosotros mismos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de tus frustraciones y recelos.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de todo aquello que un día soñaste y que soñarás.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de tus sueños y objetivos a lograr.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del bien y del mal.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de las emociones, del éxito y del fracaso.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de la tristeza y de la alegría.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del llanto y de la sonrisa.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del cansancio y de la euforia.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del tiempo, que nos consume a todos por igual.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del aprendizaje, que, ligado a la superación, &lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> nos impulsa a seguir creciendo.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima del bien y del mal.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de cualquier pronóstico.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de cualquier pensamiento, igual o distinto.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de cualquier diferencia.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Por encima de nosotros mismos, del bien y del mal. &lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span> Allí estaré yo, y tú, si quieres, conmigo.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;hr />
&lt;h2 id="que-somos">¿Qué somos?&lt;/h2>
&lt;p>Déjame este momento para recordar… ¿Qué queremos ser?, ¿una mera ilusión de un recuerdo olvidado?, ¿o más bien queremos convertirnos en una realidad transcendental?&lt;/p>
&lt;p>¿Qué es nuestra vida sino un recuerdo de los momentos vividos, de nuestras experiencias que, junto a nuestras expectativas, nos inducen a una constante ilusión de deseo: de desear y de ser deseados? ¿De qué sirve nuestra memoria si no podemos recordar? ¿De qué serviría nuestra mente si no pudiera procesar? Enseñémonos a pensar. ¡Creemos recuerdos!&lt;/p>
&lt;p>De nada sirve una vida si no es vivida; nadie vivirá por nosotros. Deberemos aprender, por tanto, a utilizar nuestro sentido común, a vivir usando la mente y la razón.&lt;/p>
&lt;p>¡Equivoquémonos! ¡Equivoquémonos mucho!, pero no en lo mismo. Tropecemos con tantas piedras como deseemos, pero no repitamos y, de repetir, hagámoslo con cabeza porque, de lo contrario, quedaremos en una ilusión. Una ilusión que un día estuvo, pero nunca más. Y no quedará anhelo alguno ni deseo por aquél que un día fue sin serlo; es más: nadie lo echará en falta.&lt;/p>
&lt;p>Somos decisiones, responsabilidades, así como resultados finales. Todo importa aunque existan siempre diferentes situaciones, cada una con su distinto grado de importancia, nuestra obligación será concluir con una media por encima de sí misma. Nuestro compromiso irá ligado a nuestra experiencia; nuestro deber, sólo a nosotros. Es también cierto que le debemos todo a todos, pero, especialmente, a nosotros por nuestras decisiones, por ser quienes somos y quienes quisimos ser.&lt;/p>
&lt;p>Somos el resultado final sin final… hasta que lo haya. Y entonces, ¿qué habremos sido?&lt;/p>
&lt;hr />
&lt;h2 id="memorias-de-un-recuerdo-olvidado">Memorias de un recuerdo olvidado&lt;/h2>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Apenas tengo recuerdos de mi infancia.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Memorias que desvanecieron con el tiempo.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Mención a momentos puntuales con nostalgia.&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>Deseo de superar aquello llamado ego.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Empecemos por el final: estoy mejor que nunca.&lt;/p>
&lt;p>No quisiera que sintiéramos lástima por aquellos días de un pasado que no perdonaba, pero ello no quita que sienta remordimientos, pena por una juventud perdida y, sobre todo, por la cantidad de deseos que perecieron durante el camino.&lt;/p>
&lt;p>En aquellos días aprendí mucho. Aprendí como nadie debería aprender. Aprendí cómo no se deberían hacer las cosas. Aprendí que existen siempre distintas versiones de una misma situación. No lo llamaría puntos de vista, sino, más bien, realidades.&lt;/p>
&lt;p>¿Qué es la realidad sino nuestra ilusión de entendimiento? ¿Por qué una situación debería ser más real que otra igual de verdadera? La realidad no es más que nuestra percepción. Nuestra verdad, sí, la que creemos única y real, no es más que otra concepción del mundo.&lt;/p>
&lt;p>Y es que fueron unos años que, por suerte, desaparecieron. Se desvanecieron en la medida de lo posible, dando paso a un nuevo hoy en el que ahora me asiento, pues mi mente es más sabia que yo y aprendió a olvidar todo eso sin mi permiso. Es gracioso, ya que, en parte, me siento cuidado por mí mismo, y eso me alegra y me alivia.&lt;/p>
&lt;p>Después de mis once vino una tragedia que no supe entender, pero tampoco podía prever. Y para cuando quise darme cuenta, ya estaba en mis trece en un sótano donde todo era demasiado tarde: unos pestillos que impedían nuestro movimiento y unas escaleras que no hacían más que bajar… hacia la desesperación. Un día tras otro lleno de incertidumbres, desconsuelo y añoranza. Añoranza por una realidad más allá de promesas y tiempo en vano. Nada parecía real. Las apariencias engañaban.&lt;/p>
&lt;p>Un vacío constante y diario. Esperando a que todo cambiara, a ver algún brote verde, daba igual dónde… Todo era insignificante y así consiguió hacerme sentir.&lt;/p>
&lt;p>«Las personas no cambian», así como otras poco agradables sentencias que aún, «por suerte», recuerdo.&lt;/p>
&lt;p>El mundo está lleno de personas de todo tipo. En aquel momento no podía sonreír, pues con tanta presión a las espaldas a veces es difícil discernir. Tengamos en cuenta que hablamos del periodo entre mis catorce y mis diecisiete años, aproximadamente. No recuerdo apenas nada. Como ya dije, mi mente es más sabia que yo. Ojalá no tuviéramos que leer esto jamás.&lt;/p>
&lt;p>Terminemos por el principio: hoy estoy mejor que nunca.&lt;/p>
&lt;hr />
&lt;h2 id="creo-que-pienso-demasiado">Creo que pienso demasiado&lt;/h2>
&lt;p>Pienso a cada momento. Creo, incluso, pensar a veces demasiado. Entiendo tantas obviedades como naturales que me extraño cuando percibo que no todos tenemos el mismo entendimiento de lo que es natural.&lt;/p>
&lt;p>Pienso tanto que creo no haber pensado nada. No al menos lo suficiente como para decir haber pensado algo, pues aún me queda mucho que pensar. Ejemplificar, razonar, demostrar, enseñar. Todo en lo poco puede ser mucho.&lt;/p>
&lt;p>No serás tú el último en leerme ni el primero, pero habrás tenido la suerte de haberlo hecho, y eso es lo que verdaderamente importa. ¿Quién soy yo para escribirte y tú para leerme?&lt;/p>
&lt;p>No existe nada eterno, especialmente cuando aquello no es más que un fruto de nuestra ilusión, como nuestros sueños o esperanzas, así como anhelos en nuestros deseos.&lt;/p>
&lt;p>Desde temprana edad quise conocer alguna verdad que no se pudiera desmentir ni desmontar. Harto de tanta palabrería… Ahora simplemente sonrío en mi felicidad por haber encontrado una de las verdades más bellas.&lt;/p>
&lt;p>Pienso disfrutar de esta verdad absoluta: la inexistencia de lo eterno. Así como disfrutar de todo aquello que exista, pues no hay nada más placentero que el aprender a disfrutar con todo, así como con nada.&lt;/p>
&lt;p>No creo en nada por encima del hombre, no creo en nada ni nadie por encima de nosotros. Que nadie tenga miedo a su libertad. Somos individuales y, a la vez, colectivos. Podemos ser todo y, con más facilidad incluso, ser nada. Todo queda a nuestra última elección y yo tengo claro cuál es la mía.&lt;/p>
&lt;pre class="giallo" style="color-scheme: light dark; color: light-dark(#24292E, #E1E4E8); background-color: light-dark(#FFFFFF, #24292E);">&lt;code data-lang="plain">&lt;span class="giallo-l">&lt;span>Adoro el anochecer temprano&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>y su amanecer tardío,&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>exaltado en sueño sin memoria&lt;/span>&lt;/span>
&lt;span class="giallo-l">&lt;span>como un recuerdo vacío.&lt;/span>&lt;/span>&lt;/code>&lt;/pre>
&lt;p>Me gustaría mucho ser leído, ¿por qué, si no, escribiría? Quizá por el simple disfrute del pensar. Quizá por la dicha propia en uno mismo.&lt;/p>
&lt;p>Con nuestros sueños y en un sueño. Pensador como ninguno, mortal como todos.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/08.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 07: Septiembre, 2015</title><published>2015-09-01T00:00:00+00:00</published><updated>2015-09-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-septiembre/"/><id>https://chemaclass.com/es/books/oeur/2015-septiembre/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/f6fkaLqE8pI"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="dios-existe-soy-yo-y-tu-tambien">Dios existe: soy yo, y tú también&lt;/h2>
&lt;p>Yo soy un no muerto. Soy un vivo —y vaya si vivo: ¡más vivo que nunca!—. Soy una persona que le gusta tener las cosas claras. Carácter, justo.&lt;/p>
&lt;p>Soy una persona amante de la vida, del momento y del tiempo, así como de mis circunstancias. No querría jamás ser una persona idolatrada por masas que no son capaces de ver más allá de su realidad.&lt;/p>
&lt;p>No entraré en detalles de si es más o menos correcto ser fiel a una u otra creencia. Cada uno que haga lo que quiera —de ahí nuestra libertad—, pero la libertad va ligada a la responsabilidad. Cada uno pasa a ser responsable de sí mismo; cada cual, que vele por sus creencias, que yo velaré por las mías. Y por las mías significa no callarme cuando algo me moleste, cuando algo no sea correcto a mis ojos ni cuando crea que algo no tiene sentido. Entonces hablaré para intentar corregirlo.&lt;/p>
&lt;p>Nada de maldad, aquí nadie ha venido a hablar del bien y del mal. Eso ya… que se lo traiga cada uno de casa. Estoy en contra de toda religión que no defienda el valor humano individual por encima de todo, por encima de cualquier entidad divina.&lt;/p>
&lt;p>Defiendo que somos lo más grande. Pero ¡atención!, esto no es válido para todo aquél que reniega de su poder, de su voluntad y de su grandeza como humano: de su libertad. A todo aquél, simplemente desearle una estancia amena, pero nada más.&lt;/p>
&lt;p>Sin embargo, a toda persona que conozca o quiera conocer su grandeza real, a todos sin excepción, mi ánimo. Porque es la actitud que escogemos ante la vida la que realmente juega en nuestra vanguardia, y es precisamente aquí donde quería llegar: la actitud de cualquier Dios es la del seguimiento a la mediocridad, rechazando nuestro real valor y potencial humano.&lt;/p>
&lt;p>Para alcanzar el éxito debemos tener una actitud de superación personal, no de alzamiento en vida para, después de la muerte, tener un encuentro con un supuesto Dios.&lt;/p>
&lt;p>Dios existe: soy yo, y tú también lo serás si tu actitud así lo predispone. Porque Dios no es más que una idea, una filosofía, una actitud ante la vida. Creer en un Dios dice mucho de ti, dice mucho al mundo y dice mucho de tu actitud.&lt;/p>
&lt;p>Mis ánimos a toda aquella persona que quiera superarse. A toda aquella alma que quiera algún día superarse porque será todo vuestro, seréis Dios y la vida os pertenecerá realmente.&lt;/p>
&lt;hr />
&lt;h2 id="necesitaba-sonar">Necesitaba soñar&lt;/h2>
&lt;p>Porque nada es para siempre, excepto aquello que nos propongamos que así sea. No será cuestión entonces de tener o no razón, de nada sirve aquí. Se trata de proponernos metas por encima de nuestras posibilidades. Es impresionante la capacidad de superación que podemos llegar a demostrarnos aparentemente de la nada. Así como trabajar otra actitud, cuanto más ejercitemos nuestra voluntad, mayor y más precisa será ésta.&lt;/p>
&lt;p>¿Qué es la normalidad sino aquello previamente establecido por nuestro entorno y aceptado por la mayoría como norma? ¿Qué es la normalidad sino aquello que nos predispone a lo aún no acontecido? ¿Qué es la normalidad sino aquello que nos encasilla y nos limita como seres libres de voluntad?&lt;/p>
&lt;p>Necesitaba soñar… y soñé, así como sigo soñando cada día, esperando seguir haciéndolo hasta mi último aliento. Tuve un sueño: ser yo.&lt;/p>
&lt;p>Haremos un antes y un después. Quién sabe a quién le puede llegar esto. Lo mejor del sentido de la vida es que tendrá el sentido que tú elijas.&lt;/p>
&lt;hr />
&lt;h2 id="el-arte-del-pensamiento">El arte del pensamiento&lt;/h2>
&lt;p>La filosofía podríamos entenderla como la más pura y abstracta ciencia en base al subjetivismo que trata de, por encima de dar respuestas, encontrar las preguntas adecuadas. Filosofar es cuestionar.&lt;/p>
&lt;p>La finalidad de este arte no debe concluir en ser leída. La filosofía debería buscar ser escéptica y pragmática. Leer filosofía es saludable. Estudiarla incluso, si nos gusta o apasiona, puede llegar a aportarnos un rico nivel cultural, pero ése nunca debió ser su último fin. El arte del pensar no debió nacer para ser leído ni tampoco para ser escrito. Escribir filosofía es inútil si no aportamos ninguna cuestión. Leer filosofía es inútil si no nos hemos dispuesto de herramientas —nuevas o no— para seguir construyéndonos, pues la filosofía es inútil en sí misma: somos nosotros los que le daremos el valor que consideremos.&lt;/p>
&lt;p>No existe una verdad absoluta que regule la importancia y el valor de la misma, pues algo tan abstracto, ¿cómo podríamos cuantificarlo? El valor de la duda. ¡Ahí está su verdadero valor!: ¡es ella misma!&lt;/p>
&lt;p>Me atreveré a decir que, así como otras ramas fueron concebidas con el fin último de ser leídas, escritas y estudiadas, como, por ejemplo, ingenierías, la filosofía no nació para este mismo fin. La filosofía nació sobre todo para aprender y poner en práctica preguntas, para aprender a cuestionarnos si de verdad estamos haciendo las preguntas correctas.&lt;/p>
&lt;p>No nació la filosofía para quedar grabada en un papel o ser leída por otro. Nació de las necesidades básicas de nuestro ser más racional, de nuestra necesidad del saber. La filosofía no nació precisamente para ser contada, sino para ser vivida. ¡Sé tú el que la viva para después contarla!&lt;/p>
&lt;hr />
&lt;h2 id="tener-la-razon">Tener la razón&lt;/h2>
&lt;p>Tener la razón es tener argumentos que defiendan y demuestren nuestras convicciones y pensamientos. Tener la razón es ser capaz de acallar, de dejar sin palabras al orgullo por más que éste insista alzando la voz. Tener argumentos sólidos es sinónimo de mente clara, de mente ordenada en sus ideas firmes y sólidas.&lt;/p>
&lt;p>Pues la sinrazón tiene sus días contados. Una casa sin buenos cimientos está destinada a ser destruida por ella misma. Estar en lo correcto debe ir más allá de simples palabras o creencias, pues de nada sirven éstas si actuamos de otra manera.&lt;/p>
&lt;p>La complejidad del todo debe ser entendida desde la simplicidad para, poco a poco, aprender a entenderlo todo.&lt;/p>
&lt;p>Existen tantas variantes y parámetros posibles… que por más que conozcamos, nunca serán suficientes. De ahí la importancia de la demostración, de la razón más allá de simples conjeturas.&lt;/p>
&lt;p>Defendamos nuestros intereses, pero siempre con argumentos, y el día que éstos no sean verdaderos cimientos yo os propongo: destruirlos y volver a empezar. Pues edificar sobre algo podrido…, así quedará establecido.&lt;/p>
&lt;p>Una mente cerrada donde las ideas no pueden confluir es sinónimo de fracaso. Un lugar cerrado en el que las ideas no pueden converger está destinado al olvido.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/07.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 06: Agosto, 2015</title><published>2015-08-01T00:00:00+00:00</published><updated>2015-08-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-agosto/"/><id>https://chemaclass.com/es/books/oeur/2015-agosto/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/-5U0wvCMND8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="todo-son-etapas">Todo son etapas&lt;/h2>
&lt;p>Somos etapas y momentos, con sus altos y sus bajos, como todo en esta vida. Somos etapas y momentos. Dependerá de nuestro contexto entendernos para saber si pisar fuerte o delicadamente.&lt;/p>
&lt;p>Somos momentos. Sin ellos no podríamos ser, directamente. Somos nuestra descripción personificada. El cómo encaremos nuestras etapas, distintas entre sí, será lo que nos definirá no sólo para el hoy, sino para el mañana, quedando grabado en el ayer.&lt;/p>
&lt;p>Somos etapas en constante evolución cuyo principal deber es definir nuestra propia dirección. Nuestro sentido favorable al viento debemos elegirlo nosotros en este viaje tan lleno de sorpresas. En este viaje que da tanto que pensar. En este viaje que, al fin y al cabo, nos da tanto continuamente.&lt;/p>
&lt;p>Momentos y etapas tan distintas. Experiencias que merecerían ser plasmadas en una canción, un dibujo o una imagen para su recuerdo. Somos un viaje continuo en un mar donde la marea arbitraria ni perdona ni tiene preferencias. Ser creativos, flexibles, pasionales y racionales serán nuestros deberes.&lt;/p>
&lt;p>No podemos asegurar con total certeza con qué etapas podremos encontrarnos, pero sí podremos definir nuestro modo de entenderlas, empezando por nosotros mismos.&lt;/p>
&lt;p>Nuevas amistades por conocer, nuevos lugares por visitar, nuevas experiencias por vivir…, nuevos momentos por contar.&lt;/p>
&lt;hr />
&lt;h2 id="de-quien-es-el-mundo">¿De quién es el mundo?&lt;/h2>
&lt;p>¿A quién le pertenece el mundo? El mundo debería pertenecer solamente a aquéllos que lo reclaman, a aquéllos que luchan por él, a aquéllos que lo quieren realmente. Hay quienes están simplemente de paso. Que no esperan un futuro mejor porque piensan que no lo necesitan. Que no saben qué hacer con sus vidas o que no quieren saberlo. No les interesa el mundo, simplemente están. Tiene que haber de todo, pero el mundo no es de ellos, no mientras piensen de esta manera.&lt;/p>
&lt;p>El mundo debería ser para los luchadores, para los que no se dan por vencidos, para los que sueñan y no cesan hasta conseguir sus propósitos, y para los que, aún cansados, siguen en la arena por su superación. Debería ser para ellos por mejorarse a ellos mismos, así como a su entorno.&lt;/p>
&lt;p>¿Para quién es el mundo? Para los que tienen como objetivo buscar nuevos objetivos. Para las almas inquietas. Para los que consiguen encontrar una razón de éxito en su vida. Para los que, frente a todas las adversidades, consiguen salir hacia adelante. Para los que, a pesar de todas las dificultades, consiguen aprovechar cualquier momento para aprender algo nuevo. Para los que, en vez de pasarse todo el día quejándose, lo pasan buscando soluciones. Para los que no se dan por vencidos.&lt;/p>
&lt;p>Para aquellos que buscan cambiar el mundo. A ellos les pertenece. De todos ellos es el mundo.&lt;/p>
&lt;hr />
&lt;h2 id="tu-sentido">Tu sentido&lt;/h2>
&lt;p>«Seamos honestos: no somos nada. Somos lo más insignificante jamás existido. Somos mediocres por naturaleza. Simples humanos. A veces, incluso, crueles, a veces antinaturales.&lt;/p>
&lt;p>Seamos honestos, no somos nada. Perdemos el tiempo constantemente. No somos productivos ni queremos serlo. No hacemos nada por solucionar nuestros problemas, así como para evitar los futuros que nos puedan llegar.&lt;/p>
&lt;p>Viendo pasar el tiempo, siendo consumidos por él, y nosotros dejándolo pasar. Perdiendo día tras día sin hacer nada realmente productivo, tirando por la borda toda una vida, y nosotros tan tranquilos. Tenemos a nuestro alcance todo. Tenemos realmente de todo. Y nosotros, necios y estúpidos, no queremos cambiar. No nos atrevemos a actuar, a pensar ni a mejorar realmente como especie.&lt;/p>
&lt;p>Somos cobardes y, como tales, no llegaremos a ningún sitio el día de mañana. Nadie se acordará de nuestra existencia, de nuestro paso, así como de nuestro nombre. Seremos lo que hemos decidido: nada. Porque así lo hemos querido. En nuestra mano estaba cambiar nuestro destino día tras día, de forma progresiva, y ahora tenemos lo que merecemos.&lt;/p>
&lt;p>Somos nada y en nada nos quedaremos».&lt;/p>
&lt;p>Si te sentiste identificado por cualquiera de las anteriores afirmaciones, por favor, plantéate de nuevo el sentido, así como el motivo y el propósito, de tu vida; pues no hay nada más triste que la falta de sentido y nada más urgente que encontrarlo.&lt;/p>
&lt;hr />
&lt;h2 id="al-intento-le-digo">Al intento le digo&lt;/h2>
&lt;p>Cobarde, embustero, mediocre.&lt;/p>
&lt;p>¿Cómo esperas obtener resultados distintos si siempre utilizas las mismas pautas? ¿A quién pretendes engañar con tu intención? No engañas a nadie más que a ti. Deja de huír de ti mismo y enfréntate, deja de ser un mediocre más.&lt;/p>
&lt;p>Deja de engañarte haciéndote creer que lo intentaste y que no pudiste más, pues es falso y tú eres el primero en saberlo. Siempre pudiste, así como hasta tu último día podrás hacer más. Deja de lamentarte entre las sombras. ¡Sal y da la cara de una vez! Deja de culpar al mundo de tus problemas. ¡Sal y resuélvelos!&lt;/p>
&lt;p>Deja de esconderte entre lamentos, deja de vivir en la mediocridad. Sal de una vez de tu escondite, donde entraste hace tiempo y ahora no te atreves a salir. «¡Atrévete!», te digo. Pues eres tú el único que podrá hacerlo. Mis palabras quedarán escritas; tu vida quedará en el olvido.&lt;/p>
&lt;p>¡Sal! ¡Ahora! Levanta y deja de lamentarte. Conoces alternativas, ¡utilízalas y deja de ser un necio! ¡Insisto!&lt;/p>
&lt;p>A ti, a ti te estoy hablando. ¡Levántate y aprende a vivir de una maldita vez! No quiero más intenciones. ¡Quiero actos y demostraciones!&lt;/p>
&lt;p>A ti, que me estás leyendo. A ti te digo. A ti, que vienes con intenciones.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/06.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 05: Julio, 2015</title><published>2015-07-01T00:00:00+00:00</published><updated>2015-07-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-julio/"/><id>https://chemaclass.com/es/books/oeur/2015-julio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/DREAmQFYvO8"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="actos-y-palabras">Actos y palabras&lt;/h2>
&lt;p>Me atrevería a pensar que no existe mayor orden que el obrar de acuerdo con el propio y sincero pensamiento. Como si de una joven utopía para la sociedad se tratara. Lo que todos deseamos y sólo unos pocos conseguimos.&lt;/p>
&lt;p>Somos lo que hacemos y al final seremos quienes queramos ser. ¿Hay algo más hermoso que vivir la vida que soñamos? Sí, perseguirla.&lt;/p>
&lt;p>Estar de acuerdo consigo mismo en el camino, en esta aventura llamada vida, en este trascurso, al fin y al cabo, de etapas tan distintas. Seamos viento, seamos agua, seamos fuego… porque cuando seamos tierra no quedará más que polvo y todo aquello que hayamos marcado a nuestro paso, y será entonces cuando el cómo y el cuándo sonará más que nunca. Aquel cómo y aquel cuándo serán todo lo que quede de nosotros.&lt;/p>
&lt;p>Seamos viento: aprendamos a volar y a no limitar nuestra imaginación. Seamos agua: aprendamos a integrarnos, a amoldarnos a nuestro entorno, a estudiar nuestro ecosistema y su funcionamiento. Seamos fuego: ningún obstáculo podrá evitar que alcancemos nuestras metas. Seamos porque cuando dejemos de ser, seremos sólo tierra y recuerdos, y ya estará todo hecho por nuestra parte.&lt;/p>
&lt;p>La vida debería medirse en instantes. Hagamos pues que éstos pasen a formar parte de los recuerdos de aquéllos con los que compartimos esos momentos.&lt;/p>
&lt;hr />
&lt;h2 id="escuchar-desapercibido">Escuchar desapercibido&lt;/h2>
&lt;p>A veces lo único que necesitamos es escuchar. Pararnos, meditar y observar. Al igual que necesitamos que nos escuchen, necesitamos escuchar al mundo para poder comprenderlo y para demostrarle que estamos con él y él con nosotros.&lt;/p>
&lt;p>Me gusta de igual manera pasar desapercibido, pero sólo para el mundo, no para mí. No me gusta la idea de ser famoso o popular. Prefiero los héroes anónimos, así como aquéllos a los que tomaban en su época por locos equivocados por el simple hecho de ir en direcciones distintas.&lt;/p>
&lt;p>Me gusta la calma y la tranquilidad. Me gusta disfrutar de mis momentos de soledad, de reflexión, de orden interior. Me gusta entenderme cuando sólo me tengo a mí, pues estoy obligado a escucharme.&lt;/p>
&lt;hr />
&lt;h2 id="lo-que-esta-claro">Lo que está claro&lt;/h2>
&lt;p>Todos tenemos momentos de lucidez de vez en cuando. Me gustaría grabar éste para, cuando se me olvide, poder recordarlo o leerlo al menos, para nunca así perderlo de vista.&lt;/p>
&lt;p>Hay muchas cosas que aún no están claras, que aún deben madurar o que, simplemente, necesitan tiempo, pero hay una de ellas que tengo bastante clara: no querría trabajar nunca obligado.&lt;/p>
&lt;p>No me gusta la idea de un trabajo forzado, en el que por obligación me levante día tras día para hacer algo que no quiero hacer, hacer algo que no me motive ni me ilusione, que no me llene ni me aporte; algo que se quedará obsoleto de aquí a poco, algo que yo no elegí ni querré elegir.&lt;/p>
&lt;p>No quiero trabajar, no quiero un trabajo; quiero retos, quiero continuar una formación sin pausa. Quiero desarrollarme como arquitecto y artista en mi profesión. Quiero que cada mañana sea un nuevo reto. Quiero que cada línea que escriba sea inmejorable, así como querré mejorarla al día siguiente porque si otra cosa no, lo que se debería acabar aprendiendo con el tiempo es que, por muy bien que hagas algo, siempre se podrá hacer mejor. Y no es para nada algo negativo, todo lo contrario, ¡ahí está la verdadera mejora!&lt;/p>
&lt;p>No me gusta la monotonía, el conformismo ni mucho menos ambas juntas. Estoy enamorado del tiempo. Siempre que puedo intento estar con él. Procuro sacar un rato para disfrutar e innovar junto a él: crear proyectos, llevarlos a cabo, mejorarlos, darles una vuelta completamente, no dejar de pensar en ellos y utilizar un pensamiento lateral que, en ocasiones, los lleva a un éxito rotundo.&lt;/p>
&lt;p>Todo es cuestión de propuestas. Aprender tres cosas distintas cada día hará que sean veintiuna a la semana y unas noventa al mes. ¿No crees que merecería la pena intentarlo?&lt;/p>
&lt;p>La cuestión está clara: si alguien anterior a ti ha podido, ¿acaso tú no podrías? No te quepa la menor duda. Subiré la apuesta, ¿acaso el que nadie lo haya hecho aún significa que tú no podrás ser el primero en hacerlo?&lt;/p>
&lt;p>¿Acaso está todo inventado ya? Nosotros aún estamos en ello, ¿qué crees que hacemos cada día sino inventarnos? Reinventarnos, aclarar las ideas y ordenar el pensamiento. Si otra cosa no, lo que está claro es que quiero ser. Y voy a ser.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/05.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 04: Junio, 2015</title><published>2015-06-01T00:00:00+00:00</published><updated>2015-06-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-junio/"/><id>https://chemaclass.com/es/books/oeur/2015-junio/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/5ZSsAP63JUs"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="hermano-mayor">Hermano mayor&lt;/h2>
&lt;p>Tenemos que querer ser el hermano mayor que nos gustaría haber tenido. Tenemos que ser todo aquello que quisiéramos ayer haber sido para que el día de mañana podamos serlo. Necesitamos referencias; más aún cuando se trata de hacer camino. Quisiera haber tenido un hermano mayor para fijarme en él, para aprender de él, para ayudarme con él.&lt;/p>
&lt;p>Fue complicado…, pero de nada servía vivir escondido día tras día. Me vi obligado a salir, a observar, a crecer, a luchar. Me hubiera gustado mucho haberlo tenido, especialmente en esos momentos tan complejos y duros como pudieron llegar a ser. Éste es uno de mis principales motivos: ser aquello que tanto anhelé para que aquéllos que lo extrañen no se sientan insignificantes ni vacíos ni engañados ni faltos de vida.&lt;/p>
&lt;p>Querría llegar a ser algún día ese hermano mayor que me hubiera gustado haber tenido, ese ejemplo que quisiera seguir, ese al que admirar; sobre todo en tiempos complejos, ayudando así a evitar que ninguno de los míos sienta lo mismo, pues no sólo se trata de nosotros, sino de los que nos hacen ser. Ayudar a hacer camino, aprender a tender la mano.&lt;/p>
&lt;hr />
&lt;h2 id="terminando-los-22">Terminando los 22&lt;/h2>
&lt;p>Hoy es mi último día en mis veintidós; mañana comenzaré los veintitrés. Y es que hoy cumplo veintidós, veintidós años completos; a partir de mañana empezaré a vivir en mis veintitrés.&lt;/p>
&lt;p>La gente celebra en el día de su cumpleaños que empieza la etapa que justo acaba de terminar. En términos normales, debería celebrar que ya alcancé los veintidós, pero prefiero la idea de celebrar que llegué a la etapa siguiente y que aún la tengo toda para disfrutar. No mis veintidós, sino mis veintitrés. Mis veintidós ya han sido vividos. Ahora quiero más.&lt;/p>
&lt;p>Bien es cierto que ahora estaré viviendo con veintidós completos, motivo suficiente de alegría, pero me motiva más la idea del pensar que estoy aún, y eso es lo importante.&lt;/p>
&lt;p>Nunca me sentí tan vivo y tan joven como hasta ahora y espero que con el tiempo vaya a más. Más joven y más vivo. Siento que cumplir años es rejuvenecedor. Cumplir años es más que la idea y es todo lo que lleva consigo.&lt;/p>
&lt;p>Sea como fuere, hoy cumplo veintidós completos y mañana comenzaré mis veintitrés. Si estás leyendo esto, te agradezco de antemano y con una sonrisa la felicitación. Lo único que te pido a cambio será tu sonrisa de vuelta, así que hazlo porque nunca es tarde para sonreír.&lt;/p>
&lt;hr />
&lt;h2 id="solitario">Solitario&lt;/h2>
&lt;p>Disfruto de la compañía como el que más, pero también de su ausencia. Me encanta estar rodeado, pero también necesito un momento para mí. Cuando estoy siempre ocupado, incluso llego a echarme de menos. Esos momentos de soledad en los que dialogo conmigo sin darle explicaciones a nadie más que a mí. Esos momentos de orden, de reflexión, de escucha y de silencio. Normalmente, con música que me acompaña de fondo. Sonriente ella, como yo.&lt;/p>
&lt;p>Notas, así como ideas que gritan sin cesar, al ritmo de recuerdos, de anhelos, de deseos y de futuro. Esos momentos de análisis, de recreación y de incertidumbres, así como de inspiración. De ganas por hacerlo todo y ansias por llevarlo a cabo.&lt;/p>
&lt;p>Sueños y emociones que aún deben esperar. Disfrutar de una canción, así como de su significado. Sin letra; la letra la crearán todos esos pensamientos que ella nos hará recordar. Perder la noción del tiempo. Olvidarse de todo y acordarse de nada. Enfocar toda nuestra atención al ritmo de la música, evadiéndonos de todo aquello que podría preocuparnos.&lt;/p>
&lt;p>Jugar a escribir, desconectar y conectar de nuevo. Preocuparse y despreocuparse. Es nuestro minuto, démonos un respiro. Paciencia. Nada ocurrirá por sí solo, pero tampoco es un misterio de otro mundo. Simplemente hay que hacer que suceda. Esperar de brazos cruzados de nada sirve. Nunca sirvió. Por eso no se trata de querer ni de soñar, sino de hacer. Aquí estamos para hacer todo lo que esté en nuestra mano y, siempre, un poco más.&lt;/p>
&lt;p>Solitario… a veces, que no solo.&lt;/p>
&lt;hr />
&lt;h2 id="los-hay">Los hay&lt;/h2>
&lt;p>Los hay quienes se lamentan y quienes viven.&lt;/p>
&lt;p>Los hay quienes viven en un miedo constante a la vida y quienes tienen el valor de encararla.&lt;/p>
&lt;p>Los hay quienes solamente consumen su tiempo y quienes luchan en su realidad.&lt;/p>
&lt;p>Los hay quienes no se dan cuenta del verdadero valor que están tirando por la borda y quienes disfrutan de los pequeños detalles.&lt;/p>
&lt;p>Los hay quienes no se atreven a soñar y quienes sueñan.&lt;/p>
&lt;p>Los hay faltos de todo y los hay valerosos, sin complejos y llenos de vida.&lt;/p>
&lt;p>Los hay carentes de sentido, y no precisamente por culpa de aquéllos que sí lo tienen.&lt;/p>
&lt;p>Los hay que desperdician su potencial en excusas que ni ellos mismos llegan a creerse y los que, con voluntad de poder, aprovechan su potencial para cambiarse a sí mismos y cambiar así el mundo.&lt;/p>
&lt;p>Los hay y los habrá, pues deberá haber siempre de todo: así está en nuestra naturaleza. La única diferencia será: ¿quiénes seremos nosotros? ¿Quiénes querremos ser?&lt;/p>
&lt;p>Los hay a quienes les es imposible sonreír al despertar, así como quienes se acuestan con la sonrisa.&lt;/p>
&lt;p>Los hay a quienes deseamos no ver en todo el día y a quienes necesitamos tener al lado constantemente.&lt;/p>
&lt;p>Los hay quienes transmiten energía negativa simplemente con su mirada y quienes, al mirar, no puedes evitar sonreír inocentemente por la alegría que transmiten.&lt;/p>
&lt;p>Los hay y los habrá, pues está en nuestra naturaleza. Habrá siempre de todo, pero la cuestión será entonces; ¿quién serás tú?&lt;/p>
&lt;hr />
&lt;h2 id="crear">Crear&lt;/h2>
&lt;p>Una de las razones por las que más adoro mi trabajo es por el simple hecho de poder crear de la nada, y creo que será un sentimiento compartido en muchas otras profesiones.&lt;/p>
&lt;p>Me gusta lo que hago, sentirme libre en ello. Sentirse realizado es lo fundamental en nuestro día a día. Crear soluciones, resolver problemas, plantear nuevos retos y alcanzar nuestras metas: ése debería ser nuestro principal trabajo.&lt;/p>
&lt;p>Levantarse cada día con la ilusión de crear, de anotar cada idea, cada locura, cada posible solución…, cada intento, al fin y al cabo. Progresar creando y soñando despierto. Hacer realidad todas esas ideas que un día nacieron fruto de la ilusión.&lt;/p>
&lt;p>Proponernos nuevos retos, crear más y más. Demostrarnos el «sin límite» de nuestra imaginación, probando así nuestro enorme poder, como su responsabilidad. Aportar al mundo innovando, demostrando y no sólo hablando. Revelar todo lo que podemos llegar a crear. Prosperar en el mundo creando. Progresar nosotros en y con él. Éstas son las razones por las que deberíamos amar nuestro trabajo.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/04.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 03: Mayo, 2015</title><published>2015-05-01T00:00:00+00:00</published><updated>2015-05-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-mayo/"/><id>https://chemaclass.com/es/books/oeur/2015-mayo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/q49b6I80nD4"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="al-tiempo">Al tiempo&lt;/h2>
&lt;p>¿Hay algo más relativo que el tiempo? Un segundo, un minuto, una hora, un día, una pausa.&lt;/p>
&lt;p>Aquel momento… Como nuestra primera vez en aquello que tanto soñábamos, como aquel reencuentro después de tanto tiempo, como aquel resultado que, con tanta satisfacción, vemos florecer fruto de nuestro esfuerzo.&lt;/p>
&lt;p>¿Qué es el tiempo? Veo el tiempo como nuestro examinador. El determinante. El que enseña y corrige, aquel que nos involucra directamente en la vida. Podríamos verlo con frecuencia como enemigo o como embustero por su ausencia, pero prefiero verlo como regalo y como fruto de nuestra paciencia. No tendríamos por qué tenerlo y, sin embargo, ahí está, esperándonos.&lt;/p>
&lt;p>A veces deseamos que, simplemente, pase. Seamos nosotros los que encaremos al tiempo. En su contra y a su favor. Aprendamos, adaptemos nuestra vela a su viento.&lt;/p>
&lt;p>¿Cuánto tiempo nos llevará aprender a vivir? La respuesta es bien sencilla: toda una vida. Por eso no tengamos miedo de equivocarnos, de saborear cada pausa, cada momento, cada instante, cada recuerdo, cada palabra, cada segundo en el que seamos verdaderamente nosotros mismos; de luchar contra nuestro tiempo.&lt;/p>
&lt;hr />
&lt;h2 id="de-la-preocupacion">De la preocupación&lt;/h2>
&lt;p>Un nuevo día, una nueva reflexión. Para ella mis días, pero sobre todo mis noches.&lt;/p>
&lt;p>De nuevo, cansado, ¿acaso no deberíamos? Debemos, por supuesto. A veces se avecinan tormentas o, al menos, eso es lo que creemos. Nos acostumbramos a anticiparnos a los problemas creyendo que ya están aquí y, sin darnos cuenta, nos vemos con ellos antes de tiempo sin que realmente existan aún. Es entonces cuando empieza el juego que no debería comenzar.&lt;/p>
&lt;p>Anticiparse a la vida está bien, pero abusar de ello puede llevarnos al error, a una incorrecta interpretación de lo que está por venir porque, simplemente, de esto último nunca podremos estar absolutamente seguros. Debemos acercarnos, prepararnos para el porvenir, pero nunca poner la mano en el fuego por ello por el simple hecho de tener la certeza de que algo posible ocurrirá «inevitablemente». Menuda estupidez, ¡pueden ocurrir miles de situaciones hasta entonces! Eso sólo era algo posible, no lo olvidemos.&lt;/p>
&lt;p>Las vueltas que dio y dará la vida. La cantidad de variables que rigen nuestro entorno. La cantidad de parámetros, posibilidades, oportunidades… ¡Estas cantidades sí que son incontables!&lt;/p>
&lt;p>Existen y deben existir preocupaciones, por supuesto. Debemos aprender a tener responsabilidades y a preocuparnos por ellas. Por eso os digo: «¡No dejemos que unas ideas inexistentes nos arruinen ni un segundo!». Anticipémonos cuanto queramos, pero no nos dejemos llevar por nuestras emociones negativas, fruto de una preocupación por algo que aún no existe y que quizá ni llegue a existir. Ni un segundo malgastado en preocupaciones innecesarias. Suficiente tenemos ya con el trabajo que conlleva la vida, como para estar preocupándonos por situaciones o resultados posibles.&lt;/p>
&lt;p>Levanta y enfréntate; puedes ir a por todas. No permitas que un día se vea dañado por una falsa y triste ilusión. No tengamos prisa cuando no sea necesaria. La paciencia es una de las virtudes con más sabor, con más sabores. No nos preocupemos. Sólo necesitamos darnos un pequeño tiempo de reflexión. Todo saldrá bien.&lt;/p>
&lt;hr />
&lt;h2 id="cada-camino-distinto">Cada camino distinto&lt;/h2>
&lt;p>Crea, disfruta, imagina, piensa, sueña y llora de felicidad si es preciso. Exprésate y sé tú. Aprende a ser; eso es lo más hermoso: cada camino distinto, improvisar en y con la vida.&lt;/p>
&lt;p>¿Cuál es nuestra pasión? ¿A qué esperamos para hacer realidad nuestro día a día? ¿Hay algo más real que nosotros? No lo creo. ¿Cuántas alternativas tenemos?, ¿cuántas elecciones?, ¿cuántos caminos posibles? ¿Qué camino escogeremos para hoy? ¿Por qué te recordarán hoy? Hoy toca elegir. Salir y respirar todo lo que merecemos. Respirar como si no hubiera un mañana, disfrutar de cada aliento, de cada suspiro.&lt;/p>
&lt;p>Cada camino distinto está ahí como si fuera el último. Esa es una de las máximas de nuestra vida: la capacidad de elección. Crear y disfrutar creando nuestro camino. Andando hacia el todo. Hasta donde haga falta. Sin detenernos en nuestra travesía. ¡No te pierdas nada!&lt;/p>
&lt;p>Sueña y lucha por ello. Pensemos que el tiempo está en nuestra imaginación, como si se tratara de una ilusión… Esto es lo más hermoso. Escribir para uno mismo, escribir para nosotros. Estamos yendo a buen puerto, estoy seguro.&lt;/p>
&lt;p>Estamos aquí para demostrarnos lo que valemos. Ese es nuestro mayor deber: superarnos. Creemos nuestro propio camino, algo único que nadie jamás hubiera podido imaginar. ¿Puedes sentirlo? ¡Eres tú!&lt;/p>
&lt;hr />
&lt;h2 id="a-la-muerte">A la muerte&lt;/h2>
&lt;p>Si murieras mañana, ¿qué harías hoy? ¿Y si nadie lo supiera más que tú? ¿Acudirías a alguien? ¿A quién acudirías? ¿Qué harías el último día de tu vida? ¿De verdad crees que podrías hacer algo significante? ¿Escribir? ¿Salir? ¿Pensar? ¿Dormir hasta que todo pase?&lt;/p>
&lt;p>¿Y si el día de mañana nos encontráramos con un cáncer? ¿Cambiaría nuestra vida por completo? ¿Y si el día de mañana nos encontráramos sin madre? ¿Acaso no cambiaría igual?&lt;/p>
&lt;p>Solo temo a aquello que se nos escapa de las manos, a aquello que no depende de nosotros. No deberíamos temer a la muerte en sí misma, sino al hecho de no haber vivido la vida que quisimos vivir. Temamos lo necesario. No vivamos con temor, pero no olvidemos tampoco que ella siempre está al acecho.&lt;/p>
&lt;p>¿Qué hemos hecho en nuestra vida? ¿Por qué seremos recordados? ¿Seremos acaso recordados? Si muriéramos mañana, ¿crees realmente que hoy podríamos hacer algo significante? Estúpidos y necios si no hicimos nada en nuestra vida. Dejemos de lamentarnos por nuestra falta de voluntad, ¡salgamos y busquemos nuestra voluntad de poder! ¡Combatamos a la muerte si es preciso! Dejemos la necedad de una vez por todas, ¡dejemos de no creer en nosotros! Somos los únicos que podemos luchar contra nosotros mismos, ¡venzámonos! Tenemos todas las de ganar a nuestro favor, ¡no nos rindamos!&lt;/p>
&lt;p>Vamos a ganar, para eso estamos aquí. Todo saldrá bien, como no puede ser de otra manera. Haremos una vida sublime para que lo que menos nos preocupe sea nuestro último día. Y para cuando llegue ese día —y estemos seguros de que llegará—, será el menor de nuestros problemas. Ese día no deberá importar nada comparado con todos nuestros anteriores. Ese día será, simplemente, el fin de nuestra grandísima etapa como superhombres, de todo lo que hemos sido. Más allá de la simple mortalidad. Más que una idea o concepto. Habremos sido nosotros. Y será entonces cuando seremos más felices porque habremos vivido.&lt;/p>
&lt;p>Sintámonos orgullosos cuando, llegado el día, miremos atrás y veamos todo lo que hemos creado, pues no todo el mundo podrá decir lo mismo. Formemos parte de nuestra grandeza, de nosotros mismos y luchemos contra todo pronóstico por algún día llegar a ser &lt;a rel="external" href="https://es.wikipedia.org/wiki/%C3%9Cbermensch">superhombres&lt;/a>.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/03.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 02: Abril, 2015</title><published>2015-04-01T00:00:00+00:00</published><updated>2015-04-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-abril/"/><id>https://chemaclass.com/es/books/oeur/2015-abril/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/Jh9VNh58w6U"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="el-arte-de-escribir">El arte de escribir&lt;/h2>
&lt;p>Me gusta escribir sin pensar en nada. Escribir simplemente. Con el único fin de que, cuando termine, quiera volver a leerlo de nuevo. Me gustaría algún día volver a leerme: quizá me ayude a entenderme mejor…&lt;/p>
&lt;p>Escribo para leerme. ¿Puede haber algo más emocionante?, ¿más emocionante que hablar con uno mismo y estar de acuerdo? Estar de acuerdo no solo en lo bueno, sino en lo malo. Estar de acuerdo al fin y al cabo.&lt;/p>
&lt;p>La escritura como arte, como libertad absoluta, donde los únicos límites se podrían encontrar en nuestro propio idioma. ¿Y lo hermoso que sería poder escribir en otros idiomas? Espero poder hacerlo en algún año próximo. Todos estos años aprendiendo lenguajes para máquinas y jamás me planteé el hecho de estudiar otras lenguas para personas…, nunca fue mi punto fuerte. Y, sin embargo, ahora en otro país puedo asegurar que es una de las experiencias más maravillosas que le puede pasar a alguien. Empezar desde el principio a estudiar una nueva lengua, un nuevo idioma: entenderlo desde su raíz, disfrutarlo, saborearlo poco a poco: cada nueva palabra, cada nueva expresión.&lt;/p>
&lt;p>Complicado y emocionante. Como si se tratara de un juego para niños. La escritura forma parte de un idioma, la escritura es arte.&lt;/p>
&lt;p>Quiero leerme. Querría poder leerme con los ojos cerrados, así como puedo soñar con los ojos abiertos. Me gustaría entenderme mejor…, sólo necesito un poco más de tiempo.&lt;/p>
&lt;hr />
&lt;h2 id="de-un-sueno">De un sueño&lt;/h2>
&lt;p>Echo de menos a mi familia. Aunque los veré en menos de 30 días, estoy empezando a hacerme la idea de verlos dos veces al año. Y, la verdad, se hace complicado. Ser el mayor de toda una tropa hace que, sin pretenderlo, uno tenga que ser responsable. Necesitamos ser ejemplos.&lt;/p>
&lt;p>Tras un pasado tan turbio, me siento afortunado de no haber acabado en ningún otro camino que no sea éste: el mío. No es cuestión de qué habría sido más fácil. No importa aquí nada más que lo que hay: un joven alegre y soñador, nostálgico y apasionado.&lt;/p>
&lt;p>Aún espero con ansias ver más lluvia. Aquí, en el norte de Alemania, lo tengo más fácil… Quiero ver más agua correr.&lt;/p>
&lt;p>Cada día me despierto con ganas de seguir soñando, de vivir con pasión y de sonreír junto a mi nostalgia, esperando volver algún día y abrazar a mi familia, sin dejar de lado el sueño por el que estoy luchando.&lt;/p>
&lt;p>Deseo lograr mis propósitos: quiero seguir adelante. «Lo vamos a conseguir» es la frase que más me repito y con la que esbozo una sonrisa cada día. Soñar no lo es todo, pero es el principio de toda una vida. Aferrarnos a nuestros sueños es la clave del éxito. Siempre con los pies en la tierra.&lt;/p>
&lt;p>Tenemos que aprender a movernos, a pedir ayuda cuando sea necesario y a no dejar de intentarlo hasta conseguirlo. La vida nos debe enseñar a ser autodidactas. Debemos ser nuestros propios maestros; fijémonos sólo en los buenos ejemplos.&lt;/p>
&lt;hr />
&lt;h2 id="dudas">Dudas&lt;/h2>
&lt;p>Hay que crear dudas, preguntas e incertezas, pues sólo así se conseguirán respuestas. Debemos querer conocer, querer descubrir nuevos horizontes, retos, aventuras, metas, sueños… Como queramos llamarlo. No importa el nombre, sino lo que hagamos. Con o sin ayuda, pero hagámoslo. Preguntémonos cada día. No dejemos de hacerlo.&lt;/p>
&lt;p>No tengamos fe en nada más que en nosotros mismos. Por encima de un posible Dios y de cualquier otra forma de vida, está la nuestra propia. Por suerte o por desgracia, y hasta que no se demuestre lo contrario, nuestra vida es sólo una: ésta. No la desperdiciemos viviendo en una incerteza constante ni una vida en la que no encontremos alegrías suficientes.&lt;/p>
&lt;p>Cada duda está para ser resuelta. De la duda nace el verdadero conocimiento y la seguridad. De la duda naceremos nosotros. Dudémoslo todo, pero no vivamos en una duda constante. Dudar como filosofía, donde debemos aprender a cuestionar antes de afirmar. Dudar como método: no infalible, pero sí productivo.&lt;/p>
&lt;p>Duda para despejar disfrutando de nuestras elecciones. Equivoquémonos, ¡escojamos! Preguntemos al mundo, a nuestra familia…, a quien queramos, pero sobre todo a nosotros mismos. ¡Nunca dejemos de hacerlo! Cuestionémonos cada día como si nos fuera la vida en ello porque así será. Y seguido a la cuestión, démonos respuestas. Barajemos distintas alternativas, así como sus motivos. Todos los parámetros son importantes. Estudiemos el origen de cada una.&lt;/p>
&lt;p>Disfruta porque estarás aprendiendo a vivir. Equivócate, aprende, ¡vive!&lt;/p>
&lt;hr />
&lt;h2 id="en-la-vanguardia">En la vanguardia&lt;/h2>
&lt;p>Deberíamos vivir más en la vanguardia y no tanto en retaguardia. Reinventarnos, imaginarnos siendo aquello que imaginamos. Querernos como aquello que somos y que seremos.&lt;/p>
&lt;p>¿Quién dijo miedo? Miedo sólo deberíamos tener a la muerte, no a la vida. Temer a la muerte porque es algo que a todos nos llegará, por suerte o por desgracia. Será algo a lo que tarde o temprano tendremos que enfrentarnos una, dos y tantas veces… hasta que nos toque. Hasta entonces, ¿quién dijo miedo?&lt;/p>
&lt;p>«No somos nada», «somos algo insignificante»: qué frases tan equívocas. Somos lo más grande. Es nuestro deber serlo. Vivir en la vanguardia, en primera línea, descubriéndonos a nosotros mismos, así como lo que nos rodea, tan distinto de nosotros. Como si viviéramos en diferentes realidades.&lt;/p>
&lt;p>Somos lo más real jamás conocido. Somos únicos y reales. Somos la realidad en su máximo explendor. Cada unidad, así como su conjunto, hacen de uno mismo una obra de arte, una realidad única. Somos y eso es lo importante.&lt;/p>
&lt;p>Interpretar nuestra realidad, aprender a luchar en la vanguardia, querer progresar cada día más. Éste es nuestro fin: brillar. Basta con que escuchemos una canción, leamos un libro, estudiemos algo que nos apasione, salgamos a correr, pensemos en aquello que nos motive…, pero no vivamos tanto en la retaguardia.&lt;/p>
&lt;p>Riamos y crezcamos. Podemos dar mucho más de nosotros mismos y cada día es una nueva oportunidad para demostrarlo. ¡Vivamos en la vanguardia!&lt;/p>
&lt;p>Demostrémonos lo tan equivocados que estábamos no hace tantos años y luchemos en nuestra realidad por brillar cada día más. Brillar para el mundo. Brillar para nosotros.&lt;/p>
&lt;hr />
&lt;h2 id="a-aquello-inesperado-y-necesario">A aquello inesperado y necesario&lt;/h2>
&lt;p>Parece complicado. Y podrá así ser hasta que deje de serlo, para darnos cuenta de que aquello fue, simplemente, algo inesperado. Un hermoso viaje de experiencias y de emociones, de completos estrenos y no tan estrenos.&lt;/p>
&lt;p>Al principio puede parecer todo tan caótico, extraño y confuso… Pero no es más que algo inesperado. Realmente ha sido una rica experiencia. No nos quedemos solos en casa, la soledad no nos ayudará; salgamos a pasear, el aire fresco despejará nuestras mentes.&lt;/p>
&lt;p>El mundo está lleno de oportunidades inesperadas. Deberíamos contar la vida por momentos, por aquellos momentos repentinos que acaban siendo necesarios. La vida vale lo que sus momentos esperados, así como inesperados. Ambos tan necesarios.&lt;/p>
&lt;p>El solo hecho de pensar en ello me produce una sensación de dulzura, como si de un regalo se tratase sin motivo aparente. Merezcamos este regalo pues. Luchemos por merecer esto inesperado y necesario en nuestra vida. Hagámonos merecedores de cada regalo. Tomémonos nuestro tiempo, siempre. Pero no olvidemos que estos inesperados nunca dejarán de estar.&lt;/p>
&lt;p>Leámonos cuando no sepamos qué decirnos. Seamos nosotros: seamos aquello necesario.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/02.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Capítulo 01: Marzo, 2015</title><published>2015-03-01T00:00:00+00:00</published><updated>2015-03-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/2015-marzo/"/><id>https://chemaclass.com/es/books/oeur/2015-marzo/</id><content type="html">&lt;div style="position:relative;aspect-ratio:16/9;width:100%;">
&lt;iframe
src="https://www.youtube-nocookie.com/embed/JKaSlL5BxOs"
title="YouTube video"
width="560"
height="315"
loading="lazy"
allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture"
referrerpolicy="strict-origin-when-cross-origin"
style="position:absolute;inset:0;width:100%;height:100%;border:0;"
allowfullscreen>
&lt;/iframe>
&lt;/div>
&lt;h2 id="de-un-trago">De un trago&lt;/h2>
&lt;p>Es curioso ir con el tiempo de la mano sintiendo tantas cosas, tantas emociones distintas concentradas en un instante, y en dos…, sin referirme al mismo tipo de emociones.&lt;/p>
&lt;p>Procuro no caer, pero es imposible: antes o después, uno mismo acaba precipitándose; de una u otra forma, todos debemos caernos. Y no hablaré de levantarse. No esta vez. Hablaré de entender, entender los motivos; entendernos.&lt;/p>
&lt;p>Más allá de la superación está el entendimiento del motivo. ¿Qué es lo que ha podido fallar? No es cuestión de buscar culpables, sino soluciones. Y antes de buscarlas, buscar su razón de ser. ¿Crees que no la tiene?&lt;/p>
&lt;p>No creo en el destino. No creo en nada más que en el valor de cada persona.&lt;/p>
&lt;p>Es imposible conocerlo todo, mas no debemos quererlo. Debemos aprender a delegar responsabilidades sin olvidar nunca las nuestras. Debemos comprendernos, entendernos, ser realistas, no perdernos nunca de vista y no abusar del soñar. No abusar de nada al fin y al cabo.&lt;/p>
&lt;p>«No te pierdas nada. Disfruta. Pero no te bebas la vida de un trago». Fue este uno de los más valiosos consejos que me dieron mis tíos antes de partir en este viaje.&lt;/p>
&lt;p>Entendimiento, búsqueda, comprensión. Nunca viene mal hablar con uno mismo para ordenar las ideas y no dejar que éstas se deterioren.&lt;/p>
&lt;p>Todo debería nacer de la pasión y la cordura. Porque toda pasión tiene un mínimo de sinceridad, y la cordura es la que permite mantener viva la pasión.&lt;/p>
&lt;p>Todo debería nacer de la sinceridad y de la pasión del querer.&lt;/p>
&lt;hr />
&lt;h2 id="para-la-musica">Para la música&lt;/h2>
&lt;p>Frío… un poco, pero no el suficiente como para dejar de pensar.&lt;/p>
&lt;p>Reformas constantes, agitadas y divertidas. Como si se tratara de un juego, el más real que pudiéramos jugar. Subo el volumen, respiro y me dirijo la mirada. No me veo. Me busco, pero no soy yo quién me encuentra, sino ella. Subo el volumen.&lt;/p>
&lt;p>No me reconozco, ¿cuánto tiempo ha pasado?, ¿cuándo fue la última vez que jugamos en la calle sin preocupaciones? Ya no lo recuerdo…&lt;/p>
&lt;p>Para ella, la música, que me acompañó en los días de lluvia, de sol, de llanto y de alegrías. La banda sonora de la vida, de nuestra vida. ¿Cuándo fue la última vez que le agradecimos su compañía?&lt;/p>
&lt;p>Aquella que nos escucha y nos arropa, incluso en las noches más frías. Desnuda o vestida. En la cama o en un paseo. Toda ella. Escúchala y no podrás escapar de sus encantos. Hay que aprender a sonreír y a vivir enamorado, pero, sobre todo, tenemos que aprender a escuchar.&lt;/p>
&lt;p>Ella es quien escribe. Profunda, rebelde, furiosa, relajada… Todo es ella. En constante evolución, con afán incluso de superación. Podemos encontrarla ordenada, caótica, con una sonrisa, con los brazos extendidos y con la intención de abrazarnos y no dejarnos ir.&lt;/p>
&lt;p>Aprender a escuchar; aprender de ella y con ella.&lt;/p>
&lt;hr />
&lt;h2 id="el-arte-de-aprender">El arte de aprender&lt;/h2>
&lt;p>Soñando despierto. Recordando. Pensando en todo lo que ha cambiado, lo que cambiará y lo que se despierta cada día; en cada propuesta que nos hacemos, en cada suspiro.&lt;/p>
&lt;p>Enfermar y enfermar de vida. Pensar a escondidas. Imaginar un futuro de ensueño. Un futuro que incluso en nuestra infancia temíamos por el hecho de ser demasiado bueno, un futuro imposible.&lt;/p>
&lt;p>Sólo habla. Inténtalo lo mejor que puedas; nadie nace sabiendo hablar. Aprende a hablar. Conquístate. Levántate cada día como si fuera el último. Algunos días simplemente pasan y, cuando ocurren, no nos damos cuenta de que sucedieron. No lo permitas. Enamórate de tu vida: de tu futuro; mientras aprendes a discernir tu realidad, a ver y entender tu entorno y tu ecosistema.&lt;/p>
&lt;p>Escucha al sol, es motivo de alegría. Múdate, regálate unos minutos al día para ti. Juega con la vida. Disfruta en tu superación más y más. Rétate como nunca y demuéstrate lo tantísimo equivocado que estabas no hace muchos años. Compárate, contigo el primero, siempre. A todo di que sí, que sí puedes y podrás, pero sin olvidar a decir que no.&lt;/p>
&lt;p>¡Anímate! Anímate como nunca lo has hecho. Crece, sueña, vive, sé. Eres todo arte y tu forma de vida dependerá sólo de ti. Es tu actitud la que determina tu calidad de vida.&lt;/p>
&lt;p>Escribe si es necesario; si no, simplemente escucha tus pensamientos. Debemos organizarlos a menudo o se acabarán oxidando. Disfruta de ello. Disfruta de ti. Eres todo y lo más grande que tienes. Cuídalo como jamás te hubieras imaginado años atrás… Eres todo arte. Date forma, ten paciencia y, en cuanto menos te lo esperes, estarás hablando.&lt;/p>
&lt;p>¡Anímate como nunca lo has hecho! Atrévete a sonreír aprendiendo.&lt;/p>
&lt;hr />
&lt;h2 id="somos-un-reflejo">Somos un reflejo&lt;/h2>
&lt;p>¿Quiénes somos realmente? ¿Qué hacemos cada día? ¿Dónde está el eco de nuestros actos? ¿De qué sirve cada instante? De las más emocionantes preguntas que podemos hacernos a nosotros mismos y que en su día casi me hicieron perder la cabeza…&lt;/p>
&lt;p>Me siento afortunado. De todo lo que tengo y de lo que no. Porque aún podré disfrutar del tenerlo cuando de verdad lo necesite. Somos un reflejo de nosotros mismos. No podríamos ser más. Cada día es una nueva oportunidad para hacer todo aquello que aún no hicimos y para repetir todo aquello con lo que nos sentimos completos: nuestras ideas, locuras, metas: nuestro propio camino.&lt;/p>
&lt;p>Debemos transmitir al mundo todo aquello que queremos sentir de la vida. Somos nuestra esperanza y nuestra oportunidad. Lo que hacemos tendrá su eco no en la eternidad, sino en nuestro mañana. Cuando nos levantemos cada día y miremos al mundo a los ojos, con una mirada esperanzadora él nos responderá. Él será nuestro reflejo, pues nosotros somos el mundo.&lt;/p>
&lt;p>Cada instante es vital. Cada decisión tomada, cada mirada. Para nuestra vida. Para entender el sentido último. Para entendernos.&lt;/p>
&lt;p>De nada sirve sonreír sin motivo alguno, pero ¿acaso no tenemos motivos de sobra? Preocupémonos de ser nuestro propio motivo. Es nuestra más importante tarea: sonreír con motivos. Alcémonos alto como nunca, aprendamos a volar, a soñar, a no conformarnos.&lt;/p>
&lt;p>Regalémonos un reflejo, una mirada, un aliento, un «¡ánimo!».&lt;/p>
&lt;p>Reflejemos lo que queremos ser. Seamos únicos e imprescindibles para nosotros mismos. Diferentes, originales, imprevisibles. Seamos brillantes y nunca dejemos de brillar. Enamorémonos de nuestra imagen, pues somos su reflejo.&lt;/p>
&lt;p>&lt;img src="/images/books/oeur/01.jpg" alt="book-chapter" />&lt;/p></content></entry><entry xml:lang="es"><title>Prólogo</title><subtitle>Palabras del autor, su hermano Jesús y su amigo Francisco Javier</subtitle><published>2015-01-03T00:00:00+00:00</published><updated>2015-01-03T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/prologo/"/><id>https://chemaclass.com/es/books/oeur/prologo/</id><content type="html">&lt;h3 id="del-autor">Del Autor&lt;/h3>
&lt;p>Este libro es una recopilación de algunas de las breves reflexiones personales que conmigo comparto y que han estado siendo recopiladas durante el transcurso del comienzo de, podríamos decir sin miedo alguno, mi nueva vida emigrando al extranjero, concretamente a Alemania, sin conocer ni hablar en absoluto el idioma y con un nivel bastante limitado del inglés. Afortunadamente, las cosas han cambiado bastante desde entonces.&lt;/p>
&lt;p>Este libro nació por sí solo, no es un diario ni tampoco un manual. Es un recopilatorio donde experimentaremos juntos la mente de alguien inconformista que luchó por superarse.&lt;/p>
&lt;p>El orden de las reflexiones es por su fecha de escritura; por tanto, podremos apreciar la evolución de las mismas, así como de su prosa y sus distintas expresiones. Abordando diferentes y amplios temas. Es un libro con ideas personales en las que terceras personas ajenas al autor, el cual escribe estas líneas, no tienen por qué sentirse identificadas en modo alguno con el viaje que están a punto de concebir.&lt;/p>
&lt;p>Todo este camino no se ha hecho para agradar al lector, sino más bien al escritor. Siéntete, por tanto, invitado a, simplemente, conocerme más de cerca.&lt;/p>
&lt;h3 id="de-jesus-valera-reales">De Jesús Valera Reales&lt;/h3>
&lt;p>El libro que tiene en sus manos es el trabajo de dos años de una de las personas más capacitadas que he conocido y a la que pretendo aspirar más pronto que tarde: mi hermano José María.
El motivo real de haber tomado la decisión de escribir este prólogo no es otro que el de poner al lector en situación para que, cuando lea el libro, entienda el contexto de ciertos capítulos.&lt;/p>
&lt;p>En el año 2004 y a la edad de treinta y siete años, nuestra madre falleció debido a un derrame cerebral, viéndose mi padre envuelto a cargo de ocho personas —la mayor tenía trece años, José María once y la menor apenas dos meses de edad—. Todos tuvimos que cambiar de colegio y rehacer nuestras vidas.&lt;/p>
&lt;p>Tres años más tarde se casó con otra mujer, la cual nos hizo la vida imposible y, tras varias disputas contra nuestra hermana mayor por ver quién era la «mujer de la casa», la mandó a realizar sus estudios universitarios a otra provincia pudiendo haberlos realizado perfectamente en la nuestra. Por orden de edad, su siguiente «objetivo» fue José María.&lt;/p>
&lt;p>Con mi padre desbordado por lo que estaba ocurriendo, los enfrentamientos entre ella y nosotros eran cada vez mayores y acabamos relegados —los siete— al garaje del dúplex en el que «vivíamos», cual patio trasero de un castillo. Además, teníamos prohibido por orden y cerrojo subir a donde estaban las habitaciones principales (cocina, salón, baños y dormitorios), salvo cuando fuera la hora de comer o dormir, con todas las «necesidades humanas» que ello implica.&lt;/p>
&lt;p>Las discrepancias con ella fueron creciendo a medida que pasaba el tiempo hasta el punto en el que mi padre se vió forzado a tomar la decisión de volver al piso donde nos habíamos criado con nuestra madre: nuestra casa&lt;/p>
&lt;p>Tales fueron las secuelas en José María que poco tiempo después intentó sin éxito quitarse la vida en una montaña. Ese fue un punto de inflexión del que salió adelante para, con el paso del tiempo, ser aún más nuestro hermano mayor. Le debo mucho a él, ya que, aunque no pudimos aprender muchas cosas de nuestra madre, los hermanos siempre estuvimos juntos —con él a la cabeza— para apoyarnos y superar las dificultades.&lt;/p>
&lt;h3 id="de-francisco-javier">De Francisco Javier&lt;/h3>
&lt;p>Fue a comienzos de 2016 cuando conocí la idea de la publicación de este libro y cuando me vi en la «obligación» de poner de mi parte para que tal idea pasara a ser una realidad. En todo este tiempo, he intentado aportar todo lo que buenamente he podido ofreciendo sugerencias y correcciones a nivel gramatical y ortográfico.&lt;/p>
&lt;p>Han sido muchas horas de búsqueda, reflexión y conversación (con risas de cuando en cuando) por querer ayudar al autor a expresar sus ideas de una mejor forma. Y todo esto bajo el desinterés que hay detrás de estos dieciséis años de amistad.&lt;/p>
&lt;p>Complementando el prólogo anterior, una pregunta tan sencilla como impactante que me hizo José María una mañana de clase a los pocos días de regresar al lugar donde los ocho hermanos se criaron:
—¿Sabes qué es despertarte un fin de semana, ver que es de día y que está lloviendo, y poder quedarte en la cama?&lt;/p></content></entry><entry xml:lang="es"><title>Índice</title><subtitle>Índice completo con los 30 capítulos a lo largo de tres años</subtitle><published>2015-01-02T00:00:00+00:00</published><updated>2015-01-02T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/indice/"/><id>https://chemaclass.com/es/books/oeur/indice/</id><content type="html">&lt;ul>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/prologo/">Prólogo&lt;/a>
&lt;ul>
&lt;li>Del Autor&lt;/li>
&lt;li>De Jesús Valera Reales&lt;/li>
&lt;li>De Francisco Javier&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="2015">2015&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-marzo/">Capítulo 1: Marzo&lt;/a>
&lt;ul>
&lt;li>De un trago&lt;/li>
&lt;li>Para la música&lt;/li>
&lt;li>El arte de aprender&lt;/li>
&lt;li>Somos un reflejo&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-abril/">Capítulo 2: Abril&lt;/a>
&lt;ul>
&lt;li>El arte de escribir&lt;/li>
&lt;li>De un sueño&lt;/li>
&lt;li>Dudas&lt;/li>
&lt;li>En la vanguardia&lt;/li>
&lt;li>A aquello inesperado y necesario&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-mayo/">Capítulo 3: Mayo&lt;/a>
&lt;ul>
&lt;li>Al tiempo&lt;/li>
&lt;li>De la preocupación&lt;/li>
&lt;li>Cada camino distinto&lt;/li>
&lt;li>A la muerte&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-junio/">Capítulo 4: Junio&lt;/a>
&lt;ul>
&lt;li>Hermano mayor&lt;/li>
&lt;li>Terminando los 22&lt;/li>
&lt;li>Solitario&lt;/li>
&lt;li>Los hay&lt;/li>
&lt;li>Crear&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-julio/">Capítulo 5: Julio&lt;/a>
&lt;ul>
&lt;li>Actos y palabras&lt;/li>
&lt;li>Escuchar desapercibido&lt;/li>
&lt;li>Lo que está claro&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-agosto/">Capítulo 6: Agosto&lt;/a>
&lt;ul>
&lt;li>Todo son etapas&lt;/li>
&lt;li>¿De quién es el mundo?&lt;/li>
&lt;li>Tu sentido&lt;/li>
&lt;li>Al intento le digo&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-septiembre/">Capítulo 7: Septiembre&lt;/a>
&lt;ul>
&lt;li>Dios existe: soy yo, y tú también&lt;/li>
&lt;li>Necesitaba soñar&lt;/li>
&lt;li>El arte del pensamiento&lt;/li>
&lt;li>Tener la razón&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-octubre/">Capítulo 8: Octubre&lt;/a>
&lt;ul>
&lt;li>Por encima del bien y del mal&lt;/li>
&lt;li>¿Qué somos?&lt;/li>
&lt;li>Memorias de un recuerdo olvidado&lt;/li>
&lt;li>Creo que pienso demasiado&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-noviembre/">Capítulo 9: Noviembre&lt;/a>
&lt;ul>
&lt;li>Al motivo&lt;/li>
&lt;li>Mi proyecto, nuestro proyecto&lt;/li>
&lt;li>A la mediocridad necesaria&lt;/li>
&lt;li>Tu último día&lt;/li>
&lt;li>Dejar huella&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2015-diciembre/">Capítulo 10: Diciembre&lt;/a>
&lt;ul>
&lt;li>El arte de la adaptación&lt;/li>
&lt;li>Moriremos&lt;/li>
&lt;li>Emociones repentinas&lt;/li>
&lt;li>No es vida&lt;/li>
&lt;li>El problema de la Navidad&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="2016">2016&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-enero/">Capítulo 11: Enero&lt;/a>
&lt;ul>
&lt;li>Ambición en un sueño&lt;/li>
&lt;li>Renuncio a Dios&lt;/li>
&lt;li>Mis propósitos&lt;/li>
&lt;li>A veces&lt;/li>
&lt;li>Ojos en un recuerdo&lt;/li>
&lt;li>Donde comienza el éxito&lt;/li>
&lt;li>Harto&lt;/li>
&lt;li>Ironías de la vida&lt;/li>
&lt;li>Que no morir&lt;/li>
&lt;li>Cansado&lt;/li>
&lt;li>Se me eriza la piel&lt;/li>
&lt;li>Inseguridad necesaria&lt;/li>
&lt;li>No basta&lt;/li>
&lt;li>No soy&lt;/li>
&lt;li>A otro nivel&lt;/li>
&lt;li>Precisamente&lt;/li>
&lt;li>Dice mucho de ti&lt;/li>
&lt;li>Caprichoso destino&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-febrero/">Capítulo 12: Febrero&lt;/a>
&lt;ul>
&lt;li>Viajar a nuestro encuentro&lt;/li>
&lt;li>Juventud imperdonable&lt;/li>
&lt;li>Religión&lt;/li>
&lt;li>Definitivamente&lt;/li>
&lt;li>Vueltas y más vueltas&lt;/li>
&lt;li>Tan fácil&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-marzo/">Capítulo 13: Marzo&lt;/a>
&lt;ul>
&lt;li>Se hace más notorio&lt;/li>
&lt;li>Es cuando&lt;/li>
&lt;li>En la montaña&lt;/li>
&lt;li>Saborear&lt;/li>
&lt;li>Odio a Dios&lt;/li>
&lt;li>Y no bastará&lt;/li>
&lt;li>La complejidad de la obligación&lt;/li>
&lt;li>Echaremos de menos&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-abril/">Capítulo 14: Abril&lt;/a>
&lt;ul>
&lt;li>Aparentar o ser&lt;/li>
&lt;li>Tantas&lt;/li>
&lt;li>Constantes&lt;/li>
&lt;li>Hablemos de nuevo&lt;/li>
&lt;li>Es tiempo de&lt;/li>
&lt;li>¿Qué podría ser?&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-mayo/">Capítulo 15: Mayo&lt;/a>
&lt;ul>
&lt;li>Al final&lt;/li>
&lt;li>Haber perdido&lt;/li>
&lt;li>¿Somos realmente?&lt;/li>
&lt;li>La historia&lt;/li>
&lt;li>Números&lt;/li>
&lt;li>Tratando de entendernos&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-junio/">Capítulo 16: Junio&lt;/a>
&lt;ul>
&lt;li>¿Y si…?&lt;/li>
&lt;li>¿Quién nos recordará?&lt;/li>
&lt;li>Cuestión de tiempo&lt;/li>
&lt;li>Comenzando los 23&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-julio/">Capítulo 17: Julio&lt;/a>
&lt;ul>
&lt;li>Entendimiento&lt;/li>
&lt;li>Eterno retorno&lt;/li>
&lt;li>Disposición&lt;/li>
&lt;li>Mientras pasa el tiempo&lt;/li>
&lt;li>Algunos&lt;/li>
&lt;li>Lo más difícil&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-agosto/">Capítulo 18: Agosto&lt;/a>
&lt;ul>
&lt;li>Vuelvo a ser yo&lt;/li>
&lt;li>Con otros ojos&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-septiembre/">Capítulo 19: Septiembre&lt;/a>
&lt;ul>
&lt;li>Sólo se vive una vez&lt;/li>
&lt;li>Jóvenes e inocentes&lt;/li>
&lt;li>Terminando para comenzar&lt;/li>
&lt;li>El día de mañana&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-octubre/">Capítulo 20: Octubre&lt;/a>
&lt;ul>
&lt;li>Entropía&lt;/li>
&lt;li>El futuro&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-noviembre/">Capítulo 21: Noviembre&lt;/a>
&lt;ul>
&lt;li>Dulces recuerdos&lt;/li>
&lt;li>Incluso&lt;/li>
&lt;li>Nuestro mayor error&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2016-diciembre/">Capítulo 22: Diciembre&lt;/a>
&lt;ul>
&lt;li>Esclavo de la muerte&lt;/li>
&lt;li>Singularidades&lt;/li>
&lt;li>La educación&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="2017">2017&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-enero/">Capítulo 23: Enero&lt;/a>
&lt;ul>
&lt;li>Falsa libertad&lt;/li>
&lt;li>Vivir ocupados&lt;/li>
&lt;li>La importancia&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-febrero/">Capítulo 24: Febrero&lt;/a>
&lt;ul>
&lt;li>Nuestra vida&lt;/li>
&lt;li>Hábitos&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-marzo/">Capítulo 25: Marzo&lt;/a>
&lt;ul>
&lt;li>La verdad&lt;/li>
&lt;li>Sin final&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-abril/">Capítulo 26: Abril&lt;/a>
&lt;ul>
&lt;li>El valor&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-mayo/">Capítulo 27: Mayo&lt;/a>
&lt;ul>
&lt;li>Mediocridad enmascarada&lt;/li>
&lt;li>Tendencia&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-junio/">Capítulo 28: Junio&lt;/a>
&lt;ul>
&lt;li>Percepciones&lt;/li>
&lt;/ul>
&lt;/li>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2017-julio/">Capítulo 29: Julio&lt;/a>
&lt;ul>
&lt;li>No hablo de autoayuda&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;h2 id="2025">2025&lt;/h2>
&lt;ul>
&lt;li>&lt;a href="https://chemaclass.com/es/books/oeur/2025-diciembre/">Capítulo 30: Diciembre&lt;/a>
&lt;ul>
&lt;li>Nueve Ramas&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul></content></entry><entry xml:lang="es"><title>Acerca de este libro</title><subtitle>La historia detrás del libro, el autor y el equipo que lo hizo posible</subtitle><published>2015-01-01T00:00:00+00:00</published><updated>2015-01-01T00:00:00+00:00</updated><author><name>
Chemaclass</name></author><link rel="alternate" type="text/html" href="https://chemaclass.com/es/books/oeur/acerca-de-este-libro/"/><id>https://chemaclass.com/es/books/oeur/acerca-de-este-libro/</id></entry></feed>