<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Jonathan Blanco Hernandez</title>
    <description>The latest articles on DEV Community by Jonathan Blanco Hernandez (@barrilitodev).</description>
    <link>https://dev.to/barrilitodev</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F265187%2F3d28ef96-90a5-43d6-b6b9-da94794a3380.png</url>
      <title>DEV Community: Jonathan Blanco Hernandez</title>
      <link>https://dev.to/barrilitodev</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/barrilitodev"/>
    <language>en</language>
    <item>
      <title>React email: Por Fin Puedes Construir Emails con Componentes y Decir Adiós al Estrés del HTML.</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Fri, 14 Nov 2025 15:54:30 +0000</pubDate>
      <link>https://dev.to/barrilitodev/react-email-por-fin-puedes-construir-emails-con-componentes-y-decir-adios-al-estres-del-html-2a2l</link>
      <guid>https://dev.to/barrilitodev/react-email-por-fin-puedes-construir-emails-con-componentes-y-decir-adios-al-estres-del-html-2a2l</guid>
      <description>&lt;p&gt;Hola, &lt;em&gt;Devs&lt;/em&gt;!&lt;/p&gt;

&lt;p&gt;Si alguna vez has intentado hacer un &lt;em&gt;email&lt;/em&gt; que se vea bien en Gmail, Outlook y, peor aún, en el modo oscuro, sabes que es un infierno de tablas anidadas y CSS &lt;em&gt;inline&lt;/em&gt; del año 2005. Es la definición de deuda técnica. &lt;em&gt;React email&lt;/em&gt; llega como el &lt;em&gt;fix&lt;/em&gt; que necesitábamos: una solución de &lt;em&gt;framework&lt;/em&gt; que te permite usar &lt;strong&gt;React para construir &lt;em&gt;emails&lt;/em&gt; con componentes&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Esto no es solo una librería, es un &lt;em&gt;workflow&lt;/em&gt; completo que está reescribiendo la forma en que interactuamos con el HTML de correo.&lt;/p&gt;

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




&lt;h3&gt;
  
  
  Los 3 &lt;em&gt;Commits&lt;/em&gt; Clave
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. ⚛️ Programación Declarativa para el HTML de Correo
&lt;/h4&gt;

&lt;p&gt;El mayor &lt;em&gt;commit&lt;/em&gt; es la promesa de &lt;strong&gt;escribir HTML de correo usando la sintaxis de React&lt;/strong&gt;. Esto significa adiós a la lucha contra las reglas arcaicas de los clientes de correo. &lt;em&gt;React email&lt;/em&gt; utiliza una capa de abstracción para traducir los componentes de React (&lt;code&gt;&amp;lt;Button&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;Section&amp;gt;&lt;/code&gt;, etc.) a HTML compatible con &lt;strong&gt;todos los clientes de correo populares&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Punto Clave Dev:&lt;/strong&gt; Reduce el tiempo de desarrollo de días (prueba-y-error) a horas. Además, permite usar &lt;strong&gt;TypeScript&lt;/strong&gt; para tipado seguro.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  2. 🧩 Componentes Modulares y &lt;em&gt;Reusable&lt;/em&gt; (¡Por Fin!)
&lt;/h4&gt;

&lt;p&gt;El &lt;em&gt;framework&lt;/em&gt; ofrece una colección de &lt;strong&gt;componentes *primitives&lt;/strong&gt;* prediseñados y &lt;em&gt;reusable&lt;/em&gt; (como &lt;code&gt;&amp;lt;Column&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;Row&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;Text&amp;gt;&lt;/code&gt;, &lt;code&gt;&amp;lt;Link&amp;gt;&lt;/code&gt;). Esto te permite construir &lt;em&gt;emails&lt;/em&gt; con la misma modularidad que usas en tu &lt;em&gt;frontend&lt;/em&gt; React, aplicando principios de &lt;strong&gt;Diseño Atómico&lt;/strong&gt;.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Punto Clave Dev:&lt;/strong&gt; Centraliza estilos y evita que cada desarrollador reinvente la rueda de accesibilidad y compatibilidad. Simplemente importa y compone tu &lt;code&gt;WelcomeEmail&lt;/code&gt; o &lt;code&gt;InvoiceEmail&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h4&gt;
  
  
  3. 🛠️ Entorno de Desarrollo Local con &lt;em&gt;Live Preview&lt;/em&gt;
&lt;/h4&gt;

&lt;p&gt;&lt;em&gt;React email&lt;/em&gt; incluye un &lt;strong&gt;entorno de desarrollo local&lt;/strong&gt; (&lt;em&gt;Dev Environment&lt;/em&gt;) con un &lt;strong&gt;servidor de *live preview&lt;/strong&gt;* que se integra a tu flujo de trabajo. Mientras desarrollas, ves los cambios en tiempo real en una interfaz web. Además, te permite &lt;strong&gt;probar el correo en clientes reales&lt;/strong&gt; (como Gmail) directamente desde el entorno local.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Punto Clave Dev:&lt;/strong&gt; Elimina el ciclo de &lt;em&gt;build&lt;/em&gt;, &lt;em&gt;deploy&lt;/em&gt; y envío de prueba, agilizando la depuración de &lt;em&gt;emails&lt;/em&gt; y asegurando que tu CSS funcione sin &lt;em&gt;media queries&lt;/em&gt; hackeadas.&lt;/li&gt;
&lt;/ul&gt;




&lt;h3&gt;
  
  
  🧠 Efecto en el &lt;em&gt;Stack&lt;/em&gt; y la Industria
&lt;/h3&gt;

&lt;p&gt;Esta herramienta es un &lt;em&gt;game changer&lt;/em&gt; para la productividad de cualquier equipo que envíe correos transaccionales (registro, facturación, alertas).&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Consistencia &lt;em&gt;Full-Stack&lt;/em&gt;:&lt;/strong&gt; Como desarrollador de React, esto elimina la barrera tecnológica entre tu &lt;em&gt;frontend&lt;/em&gt; (&lt;code&gt;ReactJs&lt;/code&gt;, &lt;code&gt;NextJs&lt;/code&gt;) y tu capa de comunicación (&lt;em&gt;emails&lt;/em&gt;). Puedes &lt;strong&gt;reutilizar lógica de negocio&lt;/strong&gt; y mantener la misma sintaxis, permitiendo que un desarrollador &lt;em&gt;full-stack&lt;/em&gt; maneje todo el ciclo de vida del usuario con el mismo &lt;em&gt;tooling&lt;/em&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Solución al CSS &lt;em&gt;Inline&lt;/em&gt;:&lt;/strong&gt; La herramienta se encarga de todo el dolor de cabeza del CSS y el &lt;em&gt;inlining&lt;/em&gt; automático. Los desarrolladores ya no tienen que gastar tiempo en &lt;em&gt;hacks&lt;/em&gt; para viejos clientes de correo, sino en el &lt;strong&gt;diseño y el contenido del mensaje&lt;/strong&gt;.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Facilitador de Arquitectura:&lt;/strong&gt; Integrado con servicios como Resend (o cualquier otro &lt;em&gt;provider&lt;/em&gt; SMTP), &lt;em&gt;React email&lt;/em&gt; se convierte en la capa de UI perfecta para tus &lt;em&gt;back-ends&lt;/em&gt; (NestJS, Django) que solo necesitan generar la estructura del correo y enviarla.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Moraleja Dev:&lt;/strong&gt; Dejar de escribir HTML de correo a mano es como migrar de &lt;em&gt;Vanilla JS&lt;/em&gt; a React. Es doloroso al principio, pero una vez que pruebas la modularidad y el rendimiento, nunca querrás volver a trabajar con tablas anidadas.&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🔗 Fuentes y Documentación
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Documentación Oficial de React email:&lt;/strong&gt; &lt;a href="https://react.email/" rel="noopener noreferrer"&gt;https://react.email/&lt;/a&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resend Blog: React Email v5:&lt;/strong&gt; &lt;a href="https://resend.com/blog/react-email-5" rel="noopener noreferrer"&gt;https://resend.com/blog/react-email-5&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>html</category>
      <category>programming</category>
      <category>code</category>
    </item>
    <item>
      <title>SuperClaude: Tu Agente de IA ya no es Junior, Ahora es Arquitecto y se Sube al Stack.</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Wed, 12 Nov 2025 17:12:38 +0000</pubDate>
      <link>https://dev.to/barrilitodev/superclaude-tu-agente-de-ia-ya-no-es-junior-ahora-es-arquitecto-y-se-sube-al-stack-7ee</link>
      <guid>https://dev.to/barrilitodev/superclaude-tu-agente-de-ia-ya-no-es-junior-ahora-es-arquitecto-y-se-sube-al-stack-7ee</guid>
      <description>&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71k6smja0n1rhw48belg.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F71k6smja0n1rhw48belg.png" alt=" " width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;El &lt;em&gt;hype&lt;/em&gt; de la IA generativa para código ha pasado a la fase de &lt;strong&gt;Productividad Profesional&lt;/strong&gt;. &lt;strong&gt;SuperClaude&lt;/strong&gt; es la prueba: no es solo un &lt;em&gt;chatbot&lt;/em&gt; que te escupe funciones, sino un &lt;em&gt;meta-programming framework&lt;/em&gt; que transforma a herramientas como Claude Code en un socio de desarrollo especializado y consciente del contexto. Esto significa que, por fin, la IA está aprendiendo a pensar como un ingeniero &lt;em&gt;senior&lt;/em&gt;.&lt;/p&gt;




&lt;h3&gt;
  
  
  Los 3 &lt;em&gt;Commits&lt;/em&gt; Clave
&lt;/h3&gt;

&lt;h4&gt;
  
  
  1. 🤖 Modo Experto a Demanda: &lt;em&gt;Personas&lt;/em&gt; Cognitivas
&lt;/h4&gt;

&lt;p&gt;SuperClaude introduce &lt;strong&gt;Personas Cognitivas&lt;/strong&gt; como el "System Architect" y el "Security Engineer". Esto es crucial porque el &lt;em&gt;framework&lt;/em&gt; se enfoca en corregir la tendencia de la IA a saltarse pasos críticos de &lt;em&gt;planning&lt;/em&gt;, arquitectura y &lt;em&gt;testing&lt;/em&gt;. Ya no es solo "hazme un componente", sino &lt;strong&gt;"diseña la API con enfoque DDD"&lt;/strong&gt;. Utiliza más de &lt;strong&gt;22 comandos *slash&lt;/strong&gt;* para tareas específicas, desde análisis de seguridad (&lt;code&gt;/user:analyze --security&lt;/code&gt;) hasta la solución de problemas en producción (&lt;code&gt;/user:troubleshoot --prod&lt;/code&gt;).&lt;/p&gt;

&lt;h4&gt;
  
  
  2. 🧠 Pensamiento Multi-Hilos (&lt;em&gt;Multi-Hop Reasoning&lt;/em&gt;): Adiós a la Ficción
&lt;/h4&gt;

&lt;p&gt;El &lt;em&gt;framework&lt;/em&gt; dota al agente de una capacidad de &lt;strong&gt;razonamiento iterativo&lt;/strong&gt; (&lt;em&gt;Multi-Hop Reasoning&lt;/em&gt;) de hasta 5 saltos, permitiéndole profundizar en conceptos y seguir cadenas causales (e.g., Causa → Efecto → Prevención). Más importante aún, utiliza un &lt;strong&gt;Quality Scoring&lt;/strong&gt; (Puntuación de Calidad) para validar la confianza de la fuente y la coherencia de la síntesis. Si el resultado es una alucinación, SuperClaude tiene un &lt;em&gt;built-in&lt;/em&gt; para detectarlo.&lt;/p&gt;

&lt;h4&gt;
  
  
  3. 🔄 Auditoría y Aprendizaje Basado en Casos (&lt;em&gt;Case-Based Learning&lt;/em&gt;)
&lt;/h4&gt;

&lt;p&gt;SuperClaude implementa un &lt;strong&gt;mecanismo de Auditoría de Razonamiento&lt;/strong&gt; que rastrea el proceso lógico de la IA, lo cual es esencial para la &lt;strong&gt;confianza y la depuración&lt;/strong&gt;. Además, utiliza el &lt;strong&gt;Aprendizaje Basado en Casos&lt;/strong&gt; (&lt;em&gt;Case-Based Learning&lt;/em&gt;) para guardar las estrategias de éxito o fracaso en el &lt;em&gt;prompt&lt;/em&gt; inicial. Esto significa que, si le enseñas cómo abordar un problema de React-Native en una sesión, &lt;strong&gt;aplicará esa estrategia&lt;/strong&gt; y mejorará las futuras soluciones, optimizando su comportamiento.&lt;/p&gt;

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




&lt;h3&gt;
  
  
  🧠 Efecto en el &lt;em&gt;Stack&lt;/em&gt; y la Industria
&lt;/h3&gt;

&lt;p&gt;Esta herramienta marca el &lt;em&gt;pivot&lt;/em&gt; de la IA en la industria: de ser una muleta para novatos a ser una herramienta de delegación para &lt;em&gt;seniors&lt;/em&gt;.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; &lt;strong&gt;Reducción del &lt;em&gt;Backlog&lt;/em&gt; Trivial:&lt;/strong&gt; Para un equipo, significa que tareas de bajo valor como &lt;strong&gt;corregir errores menores&lt;/strong&gt; en los &lt;em&gt;build logs&lt;/em&gt; o &lt;strong&gt;vaciar el *backlog&lt;/strong&gt;* de pequeñas mejoras (accesibilidad, UI &lt;em&gt;polish&lt;/em&gt;) pueden delegarse completamente al agente. El foco del equipo se libera para el desarrollo de &lt;em&gt;features&lt;/em&gt; de alto impacto y arquitectura.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;Contexto Persistente en &lt;em&gt;Full-Stack&lt;/em&gt;:&lt;/strong&gt; Si trabajas con &lt;em&gt;stacks&lt;/em&gt; complejos (como Next.js o un &lt;em&gt;backend&lt;/em&gt; con NestJS/Django), sabes que el &lt;em&gt;context switching&lt;/em&gt; es el principal asesino de la productividad. SuperClaude está diseñado para &lt;strong&gt;mantener el contexto&lt;/strong&gt; a través de todo el flujo, desde el &lt;em&gt;prompt&lt;/em&gt; hasta la solución, gracias a su capacidad de aprendizaje iterativo.&lt;/li&gt;
&lt;li&gt; &lt;strong&gt;La IA se Vuelve &lt;em&gt;Auditable&lt;/em&gt;:&lt;/strong&gt; El rastreo de la cadena de razonamiento es la clave de la adopción en entornos empresariales. Permite a los &lt;em&gt;Senior Developers&lt;/em&gt; confiar en el código generado, ya que pueden revisar &lt;strong&gt;por qué la IA tomó esa decisión&lt;/strong&gt; y asegurarse de que sigue los estándares de arquitectura del proyecto.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Moraleja Dev:&lt;/strong&gt; Ya no es suficiente con que tu agente sepa escribir una función. En la fase 2.0 de la IA, lo que importa es que sepa &lt;strong&gt;planificar, auditar su proceso y aprender de sus errores&lt;/strong&gt; para que la próxima vez sea más eficiente.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  🔗 Fuentes y Documentación
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://superclaude.netlify.app/" rel="noopener noreferrer"&gt;https://superclaude.netlify.app/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>ai</category>
      <category>programming</category>
      <category>cli</category>
    </item>
    <item>
      <title>Como configurar un emulador android para correr una App desde mi terminal en Mac.</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Thu, 19 Mar 2020 08:15:11 +0000</pubDate>
      <link>https://dev.to/barrilitodev/como-configurar-un-emulador-android-para-correr-una-app-desde-mi-terminal-en-mac-43bn</link>
      <guid>https://dev.to/barrilitodev/como-configurar-un-emulador-android-para-correr-una-app-desde-mi-terminal-en-mac-43bn</guid>
      <description>&lt;p&gt;Antes que nada me gustaría comentarle que esto solo lo he hecho en &lt;strong&gt;&lt;em&gt;macbook&lt;/em&gt;&lt;/strong&gt;, por lo que no sabría realmente como configurarlo en equipos &lt;strong&gt;linux&lt;/strong&gt; y &lt;strong&gt;windows&lt;/strong&gt;, aunque en linux no debe ser tan diferente.&lt;/p&gt;

&lt;p&gt;Trabajo con &lt;strong&gt;React-native&lt;/strong&gt; por lo que no se si esto les ayude para otro tipo de tecnologías, espero que si.&lt;/p&gt;

&lt;p&gt;Bueno &lt;strong&gt;¿Porque hago esto?&lt;/strong&gt;, pues por el simple hecho de que me encontré con el problema de no saber como levantar mi emulador android sin necesidad de abrir android &lt;strong&gt;"Come RAM"&lt;/strong&gt; estudio, y pues la necesidad me llevo a entender el funcionamiento de algunas cosas como Android sdk, tools y emulator, y para no extendernos tanto pues aquí vamos con la configuración de una manera breve.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Necesito tener instalado android studio?
&lt;/h2&gt;

&lt;p&gt;SI!!!!&lt;/p&gt;

&lt;p&gt;Antes que nada tenemos que tener ya instalado previamente Android Studio en nuestro equipo.&lt;/p&gt;

&lt;p&gt;Estoy trabajando con la &lt;strong&gt;versión 3.6.1&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Al igual que necesitamos la configuración previa de &lt;strong&gt;ADB&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurar emulador en Android Studio
&lt;/h2&gt;

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

&lt;p&gt;Seleccionamos un proyecto previamente importado o abrimos uno (Nota React-Native: recuerda que se requiere importar la carpeta Android de nuestro proyecto).&lt;/p&gt;

&lt;p&gt;Para abrir un proyecto que no ha sido abierto previamente, le damos a &lt;strong&gt;Open an existing Android Studio project&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Una vez que tengamos abierto nuestro programa, nos vamos a la parte superior derecha a nuestro AVD manager&lt;/p&gt;

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

&lt;p&gt;Nos abrirá la ventana donde se administran los dispositivos virtuales previamente instalados y le damos click a &lt;em&gt;"+ create virtual device..."&lt;/em&gt;&lt;/p&gt;

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

&lt;p&gt;Esto nos abrirá la lista de &lt;strong&gt;emuladores disponibles&lt;/strong&gt; para instalar, vamos a crear un dispositivo que tenga la &lt;strong&gt;&lt;em&gt;resolución lo mas baja posible&lt;/em&gt;&lt;/strong&gt;, ya que así el uso de memoria sera menor a otros dispositivos, y que cuente con &lt;strong&gt;play store&lt;/strong&gt;, esto es muy importante.&lt;/p&gt;

&lt;p&gt;Yo escogí &lt;strong&gt;Pixel de 5.0"&lt;/strong&gt; y le damos &lt;strong&gt;Next&lt;/strong&gt;&lt;/p&gt;

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

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

&lt;p&gt;En la siguiente pantalla nos toca elegir el &lt;strong&gt;sistema&lt;/strong&gt; a utilizar, recomiendo usar los mas recientes, en este caso yo elegí el &lt;strong&gt;Q con el Api Level 29 y su ABI de x86&lt;/strong&gt; que es básicamente el Android 10.0 y le dan a &lt;strong&gt;download&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Una vez que tengamos la imagen del sistema descargado y seleccionado el sistema, le damos &lt;strong&gt;next&lt;/strong&gt; y luego &lt;strong&gt;finish&lt;/strong&gt; (la ultima ventana no es necesario que se configure)&lt;/p&gt;

&lt;p&gt;Ya terminado de crear nuestro dispositivo, vamos a verificar que corra bien, en el administrador de dispositivos(AVD manager), le damos play a nuestro dispositivo&lt;/p&gt;

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

&lt;p&gt;Ya que corroboramos, podemos cerrar el dispositivo y ahora nos vamos al &lt;strong&gt;SDK Manager&lt;/strong&gt; que de igual forma se encuentra en la parte superior derecha.&lt;/p&gt;

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

&lt;p&gt;Aquí en la primer ventana vamos a seleccionar &lt;strong&gt;Show Package Details&lt;/strong&gt;&lt;/p&gt;

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

&lt;p&gt;Se desplegaran los recursos sobre nuestra versión sdk que necesitamos, en este caso sobre &lt;strong&gt;Android 10.0 (Q)&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Verificamos que este seleccionado:&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Android SDK Platform 29&lt;/li&gt;
&lt;li&gt;Sources for Android 29&lt;/li&gt;
&lt;li&gt;Intel x86 Atom System Image&lt;/li&gt;
&lt;li&gt;Intel x86 Atom_64 System Image&lt;/li&gt;
&lt;li&gt;Google Play Intel x86 Atom System Image&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Luego nos movemos a la pestaña &lt;strong&gt;SDK Tools&lt;/strong&gt; en esta misma ventana.&lt;/p&gt;

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

&lt;p&gt;Y verificamos que estén seleccionadas las siguientes herramientas.&lt;/p&gt;

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

&lt;ul&gt;
&lt;li&gt;Android Emulator&lt;/li&gt;
&lt;li&gt;Android SDK Platform-Tools&lt;/li&gt;
&lt;li&gt;Android SDK Tools&lt;/li&gt;
&lt;li&gt;Intel x86 Emulator Accelerator&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Le damos al botón &lt;strong&gt;Apply&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Algunas de estas herramientas se descargaran por lo que vamos a esperar un poco dichas descargas e instalaciones.&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurar terminal (Variables de entorno)
&lt;/h2&gt;

&lt;p&gt;Bueno una vez hemos terminado de configurar nuestras herramientas pasaremos a la configuración de la terminal en mi caso mi archivo &lt;strong&gt;.zshrc&lt;/strong&gt; o &lt;strong&gt;.bash_profile&lt;/strong&gt; dependiendo su configuración de terminal (en este caso yo uso &lt;a href="https://ohmyz.sh/" rel="noopener noreferrer"&gt;Oh-my-zsh&lt;/a&gt;, les dejo el link por si quieren saber mas de el), lo abrimos con nuestro editor preferido.&lt;/p&gt;

&lt;p&gt;Una vez abierto nuestro archivo a configurar, nos vamos a la parte de abajo y vamos a declarar nuestra nuevas variables de entorno.&lt;/p&gt;

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

&lt;p&gt;Declaramos las variables de Android tal cual se ve en la imagem.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NOTA: Es importante que declaremos emulator antes que platform-tools, tools, tools/bin.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Guardamos&lt;/strong&gt; y &lt;strong&gt;reiniciamos nuestra terminal&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Correr Emulador
&lt;/h2&gt;

&lt;p&gt;En nuestra &lt;strong&gt;terminal&lt;/strong&gt; vamos primero a &lt;strong&gt;comprobar&lt;/strong&gt; que la variable de entorno este bien declarada, vamos a escribir el siguiente comando:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;which emulator

OUTPUT:
/Users/myUser/Library/Android/sdk/emulator/emulator
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y vamos a comprobar que nuestro dispositivo se encuentra en la lista de disponibles, el siguiente comando nos dará la lista de dispositivos previamente instalados con el nombre que se le haya asignado, en mi caso quedo con el nombre por default que me dio Android Studio.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;emulator -list-avds

OUTPUT:
Pixel_API_29
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y una vez comprobados estos dos puntos vamos a correr nuestro emulador con el siguiente comando y &lt;strong&gt;voilà!&lt;/strong&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;emulator -avd Pixel_API_29
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



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

&lt;p&gt;Ya solo queda correr nuestra app, con el comando siguiente vamos comprobar que nuestro emulador esta conectado&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;adb devices

OUTPUT:
List of devices attached
emulator-5554   device
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y en caso que estemos trabajando con &lt;strong&gt;React-Native&lt;/strong&gt;, primero corremos el emulador y luego corremos:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;react-native run-android
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Y esperamos a que nuestra app se instale y corra en nuestro emulador.&lt;/p&gt;

&lt;p&gt;Gracias por llegar hasta aquí, déjame tu comentario, el &lt;strong&gt;feedback&lt;/strong&gt; es muy valioso para mi y si te gusto por favor dale al &lt;strong&gt;"Me gusta"&lt;/strong&gt; y si te encanto regálame un &lt;strong&gt;"Unicornio!!!"&lt;/strong&gt; son gratis!, sigo trabajando para poder apoyar a la comunidad con este tipo de &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;PD&lt;/strong&gt;: probablemente algunas herramientas o configuraciones las haya omitido, ya que yo previamente ya trabajaba con Android Studio y sus emuladores, de ser así por favor házmelo saber para poder ayudarte con las configuraciones previamente omitidas.&lt;/p&gt;

&lt;p&gt;Nos vemos hasta la próxima.&lt;/p&gt;

&lt;p&gt;Fuentes:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://developer.android.com/docs/" rel="noopener noreferrer"&gt;https://developer.android.com/docs/&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.android.com/studio/install" rel="noopener noreferrer"&gt;https://developer.android.com/studio/install&lt;/a&gt;&lt;br&gt;
&lt;a href="https://developer.android.com/studio/run/emulator" rel="noopener noreferrer"&gt;https://developer.android.com/studio/run/emulator&lt;/a&gt;&lt;/p&gt;

</description>
      <category>reactnative</category>
      <category>emulator</category>
      <category>androidstudio</category>
      <category>terminal</category>
    </item>
    <item>
      <title>¿Como instalar node.js en Servidores Ubuntu 18.04.?</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Thu, 05 Mar 2020 01:03:22 +0000</pubDate>
      <link>https://dev.to/barrilitodev/como-instalar-node-js-en-servidores-ubuntu-18-04-2n5n</link>
      <guid>https://dev.to/barrilitodev/como-instalar-node-js-en-servidores-ubuntu-18-04-2n5n</guid>
      <description>&lt;h1&gt;
  
  
  ¿Como instalar node.js en Servidores Ubuntu 18.04.?
&lt;/h1&gt;

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

&lt;p&gt;Hoy les traigo como instalar &lt;strong&gt;Node.js&lt;/strong&gt; y &lt;strong&gt;npm&lt;/strong&gt; dentro de nuestros servidores Ubuntu.&lt;/p&gt;

&lt;p&gt;Explicamos un poco más sobre esto y mostrare la manera más fácil de realizarlo.&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Que es Node.js?
&lt;/h2&gt;

&lt;p&gt;Concebido como un entorno de ejecución de JavaScript orientado a eventos asíncronos de código abierto, &lt;strong&gt;Node.js&lt;/strong&gt; está diseñado para construir aplicaciones en red escalables.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Node.js&lt;/strong&gt; está influenciado por sistemas como &lt;strong&gt;Event Machine&lt;/strong&gt; de &lt;strong&gt;Ruby&lt;/strong&gt; ó &lt;strong&gt;Twisted&lt;/strong&gt; de &lt;strong&gt;Python&lt;/strong&gt;. &lt;strong&gt;Node.js&lt;/strong&gt; lleva el modelo de eventos un poco más allá, este presenta un bucle de eventos como un entorno en vez de una librería.(1)&lt;/p&gt;

&lt;h2&gt;
  
  
  ¿Que es npm?
&lt;/h2&gt;

&lt;p&gt;Es el registro de software más grande del mundo, los desarrolladores del mundo usan este registro para compartir y utilizar paquetes de código abierto.(2)&lt;/p&gt;

&lt;h2&gt;
  
  
  Instalacion
&lt;/h2&gt;

&lt;p&gt;Podemos realizar la instalación por medio de &lt;a href="https://nodesource.com/" rel="noopener noreferrer"&gt;NodeSource&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;NodeSource&lt;/strong&gt; es una compañía enfocada a proporcionar soporte de &lt;strong&gt;Node.js&lt;/strong&gt; y cuenta con un repositorio para el uso de las últimas versiones de &lt;strong&gt;Node.js&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Para instalar Node.js y npm desde repositorio NodeSource, vamos a seguir los siguientes pasos:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Habilitaremos el repositorio por medio del &lt;em&gt;curl&lt;/em&gt;, si es necesario tener privilegios recuerda usar &lt;em&gt;Sudo&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ curl -sL https://deb.nodesource.com/setup_10.x | sudo -E bash -
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Instalamos Node.js y npm de la siguiente manera:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$ sudo apt install nodejs
&lt;/code&gt;&lt;/pre&gt;


&lt;p&gt;Este paquete contine tanto &lt;strong&gt;node&lt;/strong&gt; como los binarios de &lt;strong&gt;npm&lt;/strong&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Y una vez terminado de instalar, verificamos que ambos estén instalados completamente:&lt;br&gt;
&lt;/p&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;  $ node --version
  Output
  v10.19.0

  $ npm --version
  Output
  6.13.4
&lt;/code&gt;&lt;/pre&gt;

&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;voilà, todo listo, esta es la manera más fácil y sin tantos rodeo, hay otras dos maneras de realizarlo ya sea por NVM y/o por repositorios de ubuntu, si quieres un ejemplo de algún otra forma puedes dejarlo en los comentarios, si te ha gustado espero tu like y alguna retroalimentación es muy importante para continuar haciendo estos ejemplos sencillos y básicos.&lt;/p&gt;

&lt;p&gt;Nota: Esta forma de instalación no te permite manejar diversas versiones de &lt;strong&gt;Node&lt;/strong&gt;, para eso requieres instalar por medio de NVM.&lt;/p&gt;

&lt;p&gt;Nos vemos hasta la proxima.&lt;/p&gt;

&lt;h2&gt;
  
  
  Fuentes
&lt;/h2&gt;

&lt;p&gt;(1) &lt;a href="https://nodejs.org/es/about/" rel="noopener noreferrer"&gt;https://nodejs.org/es/about/&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;(2) &lt;a href="https://docs.npmjs.com/about-npm/" rel="noopener noreferrer"&gt;https://docs.npmjs.com/about-npm/&lt;/a&gt;&lt;/p&gt;

</description>
      <category>node</category>
      <category>npm</category>
      <category>ubuntu</category>
    </item>
    <item>
      <title>Mejora tus habilidades de Tecleo(mecanografía)</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Tue, 26 Nov 2019 02:33:52 +0000</pubDate>
      <link>https://dev.to/barrilitodev/mejora-tus-habilidades-de-tecleo-mecanografia-4635</link>
      <guid>https://dev.to/barrilitodev/mejora-tus-habilidades-de-tecleo-mecanografia-4635</guid>
      <description>&lt;h2&gt;
  
  
  ¿Quieres mejorar tu habilidad para teclear y ser más rápido?
&lt;/h2&gt;

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

&lt;p&gt;Hoy les quiero platicar cómo &lt;strong&gt;recomendación&lt;/strong&gt;, dos &lt;strong&gt;herramientas&lt;/strong&gt; online y muy utilizadas para mejorar día a día, sobre todo que muchos otros &lt;strong&gt;desarrolladores&lt;/strong&gt; han utilizado.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;No les voy a dar un tutorial de uso, solo les platico en general sobre ellas, dentro de cada pagina de los creadores vienen recomendaciones de uso y tips&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Las dos paginas están en ingles.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Estas herramientas son&lt;/strong&gt; &lt;a href="https://zty.pe/" rel="noopener noreferrer"&gt;zty.pe&lt;/a&gt; &lt;strong&gt;y&lt;/strong&gt; &lt;a href="https://www.keybr.com/" rel="noopener noreferrer"&gt;keybr&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  ...Y yo ¿Para qué quiero eso?
&lt;/h3&gt;

&lt;p&gt;Bueno en lo personal es &lt;strong&gt;muy importante&lt;/strong&gt; el mejorar dichas &lt;strong&gt;habilidades&lt;/strong&gt; para ser mejores en nuestra &lt;strong&gt;área laboral&lt;/strong&gt; y hasta para redactar un correo electrónico para una amistad, &lt;strong&gt;empresa&lt;/strong&gt; o al realizar cualquier tipo de &lt;strong&gt;tarea&lt;/strong&gt;, y nos volvemos más &lt;strong&gt;productivos&lt;/strong&gt;. Hemos dejado aun lado &lt;strong&gt;dicha practica&lt;/strong&gt; y nos volvemos unos &lt;strong&gt;salvajes&lt;/strong&gt; al utilizar el &lt;strong&gt;teclado&lt;/strong&gt;, en pocas palabras tenemos &lt;strong&gt;malas practicas&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Notaran la diferencia de velocidad con el tiempo (la practica hace al maestro)&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Empezare hablando primero sobre &lt;strong&gt;ztype&lt;/strong&gt;
&lt;/h3&gt;

&lt;p&gt;Esta &lt;strong&gt;aplicación&lt;/strong&gt; fue creada por &lt;a href="https://typesy.com" rel="noopener noreferrer"&gt;typesy&lt;/a&gt; y se trata de un &lt;strong&gt;juego de naves&lt;/strong&gt; en la cual van bajando palabras para escribir(en forma de naves y en ingles) y cuando vas &lt;strong&gt;escribiendo&lt;/strong&gt; tu nave va &lt;strong&gt;disparando&lt;/strong&gt; de forma automática y vas &lt;strong&gt;destruyendo&lt;/strong&gt; a dichas &lt;strong&gt;naves enemigas&lt;/strong&gt; cada que completas una palabra. Esta aplicación en verdad es &lt;strong&gt;muy divertida y curiosa&lt;/strong&gt;, los &lt;strong&gt;gráficos&lt;/strong&gt; se me hacen muy buenos y el &lt;strong&gt;sonido&lt;/strong&gt; está excelente, puedes subir tus &lt;strong&gt;propias palabras&lt;/strong&gt; y en cuestiones de &lt;strong&gt;estadísticas&lt;/strong&gt;(por que es un juego, siempre busco ver mis números) si nos deja mucho que desear ya que &lt;strong&gt;no cuenta con sesión de usuario&lt;/strong&gt; ni alguna tabla de puntajes multijugador, su medición es por medio del navegador y mientras tu caché se mantenga podrás ver tu &lt;strong&gt;seguimiento&lt;/strong&gt;, es un punto muy malo pero en verdad sé que les va a gustar esta muy padre.&lt;/p&gt;

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

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

&lt;h3&gt;
  
  
  Keybr
&lt;/h3&gt;

&lt;p&gt;Para mi es la herramienta mas &lt;strong&gt;formal&lt;/strong&gt; que he conocido sobre mejorar estas &lt;strong&gt;habilidades&lt;/strong&gt;, en esta te encuentras con un teclado y &lt;strong&gt;textos en ingles&lt;/strong&gt; con palabras que llevan un seguimiento, te van poniendo textos que te ayudaran a &lt;strong&gt;mejorar&lt;/strong&gt; esas &lt;strong&gt;teclas&lt;/strong&gt; o áreas donde &lt;em&gt;"flaqueas"&lt;/em&gt;, tienen una buena guía para el uso de su &lt;strong&gt;herramienta&lt;/strong&gt;, cuenta con &lt;strong&gt;sesión de usuario&lt;/strong&gt;(aun tiene google+), llevas un &lt;strong&gt;seguimiento&lt;/strong&gt; increíble de datos(muchos no les entiendo aún jeje) la mayoría se basa en tus &lt;strong&gt;fallas y aciertos&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Tiene muchas opciones de uso y &lt;strong&gt;configuraciones&lt;/strong&gt;, puedes utilizar tus propios artículos, tiene &lt;strong&gt;multiplayer&lt;/strong&gt; (es un juego de carrera de autos contra otros usuarios), pero la practica de teclado principal es muy buena en verdad sobre todo por el &lt;strong&gt;seguimiento&lt;/strong&gt; que nos da.&lt;/p&gt;

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

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

&lt;p&gt;Recuerda usar &lt;strong&gt;todos los dedos&lt;/strong&gt; e ir dandole poco a poco, no importa que &lt;strong&gt;lento&lt;/strong&gt; seas al principio, lo importante es aprender y poco a poco ir agarrando esa velocidad que la practica nos dará. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Visiten estas paginas&lt;/strong&gt;, dediquen tiempo a la &lt;strong&gt;practica&lt;/strong&gt; y cuenten que tal les va y si tiene alguna &lt;strong&gt;otra herramienta&lt;/strong&gt; que conozcan pueden &lt;strong&gt;comentarme&lt;/strong&gt; y veremos si hablamos de ella más adelante, espero les haya gustado esta pequeña aportación y &lt;strong&gt;nos vemos pronto&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Nota 1: &lt;em&gt;Hay que tomar en cuenta que es una buena practica de tecleo y de ingles que es lo que también nos importa mejorar.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Nota 2: &lt;em&gt;Es muy importante que busquen mejorar su ingles, que mas que recomendarles continuamente esto.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>productivity</category>
      <category>skill</category>
      <category>keyboardskill</category>
      <category>tools</category>
    </item>
    <item>
      <title>Hola Mundo! Ya estoy aquí...</title>
      <dc:creator>Jonathan Blanco Hernandez</dc:creator>
      <pubDate>Tue, 05 Nov 2019 07:39:07 +0000</pubDate>
      <link>https://dev.to/barrilitodev/hola-mundo-ya-estoy-aqui-5hbe</link>
      <guid>https://dev.to/barrilitodev/hola-mundo-ya-estoy-aqui-5hbe</guid>
      <description>&lt;h1&gt;
  
  
  Bienvenida
&lt;/h1&gt;

&lt;p&gt;Finalmente he decido empezar a escribir un &lt;strong&gt;blog algo personal&lt;/strong&gt;. Orientado a dar a conocer un poco de &lt;em&gt;la vida que llevo como desarrollador&lt;/em&gt;. &lt;/p&gt;

&lt;p&gt;También para apoyar a la &lt;em&gt;comunidad de desarrolladores&lt;/em&gt; que van comenzando en este camino tan amplio que es el desarrollo y lo complicado que puede llegar a ser.&lt;/p&gt;

&lt;p&gt;Brindar mis pequeños conocimientos sobre las &lt;strong&gt;herramientas&lt;/strong&gt; que uso día a día, así como los lenguajes que utilizo para trabajar.&lt;/p&gt;

&lt;p&gt;Haré publicaciones en &lt;em&gt;Español&lt;/em&gt; para los programadores que aun no cuentan con ingles avanzado. &lt;/p&gt;

&lt;p&gt;Mi recomendación siempre será que lean y se apoyen en &lt;strong&gt;&lt;em&gt;documentaciones y publicaciones&lt;/em&gt;&lt;/strong&gt; en &lt;strong&gt;Ingles&lt;/strong&gt;, van a aprender más!.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Dare tips, apoyos y tutoriales.&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;y antes que nada...&lt;/p&gt;

&lt;h2&gt;
  
  
  Nos presentamos.
&lt;/h2&gt;

&lt;p&gt;Mi nombre es &lt;strong&gt;Jonathan Blanco Hernandez&lt;/strong&gt;, en mi localidad me conocen como &lt;strong&gt;Barril o Barrilito&lt;/strong&gt;, el por que, esta demás, quizá más adelante les cuento, es una bonita anécdota(eso creo).&lt;/p&gt;

&lt;p&gt;Nací en &lt;strong&gt;Villa La Venta&lt;/strong&gt;(Ahora ciudad), &lt;strong&gt;Huimanguillo, Tabasco, Mexico.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Ahora mismo radico en &lt;strong&gt;Tabasco&lt;/strong&gt; &lt;em&gt;El edén de Mexico&lt;/em&gt;.&lt;/p&gt;

&lt;p&gt;Mis padres son originarios de &lt;strong&gt;Poza Rica, Veracruz&lt;/strong&gt;. Ciudad que tiene mucho que no visito pero ha como la extraño.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Mi madre&lt;/strong&gt; que la amo tanto!&lt;br&gt;
&lt;strong&gt;Mi padre&lt;/strong&gt; que ya se nos adelanto, carajo cuanto lo ame, lo amo y lo amare.&lt;/p&gt;

&lt;p&gt;Tengo &lt;strong&gt;3 hermanos&lt;/strong&gt;, a los cuales adoro con todo mi corazón y si llegan a leer este post pues no esta demás que lo sepan y lo saben.&lt;/p&gt;

&lt;p&gt;Tengo una familia hermosa, a &lt;strong&gt;mi esposa e hijo&lt;/strong&gt;, a los que le dedico este &lt;strong&gt;primer post&lt;/strong&gt; y sepan que son de &lt;em&gt;gran inspiración&lt;/em&gt; para lo que se viene.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Me gusta trabajar&lt;/strong&gt; pero también me gusta divertirme. &lt;strong&gt;Me gusta pasar tiempo con la familia&lt;/strong&gt;. Soy muy relajado y me gusta reír mucho(suelo ser muy bromista).&lt;/p&gt;

&lt;p&gt;Me gustan los deportes, adoro ver todo tipo de deporte(aunque yo no sea muy deportista). Puedo platicar de cualquier tipo de deporte(o casi cualquier), pero lo que mas me gusta es el &lt;strong&gt;Futbol Soccer&lt;/strong&gt; y &lt;strong&gt;Futbol Americano.&lt;/strong&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Que hago por mi vida?
&lt;/h2&gt;

&lt;p&gt;Bueno soy &lt;strong&gt;&lt;em&gt;desarrollador web y móvil&lt;/em&gt;&lt;/strong&gt; en &lt;strong&gt;KondoSoft&lt;/strong&gt; &amp;lt;3, trabajo con &lt;em&gt;ReactJS y React-Native&lt;/em&gt;. Tengo un basto conocimiento en &lt;strong&gt;Javascript&lt;/strong&gt; por lo que me dedico en tiempo casi completo al desarrollo en este lenguaje de programación.&lt;/p&gt;

&lt;p&gt;También he realizado trabajos con &lt;strong&gt;python&lt;/strong&gt;, sobretodo con él framework &lt;em&gt;Django&lt;/em&gt;, aunque últimamente React me ha absorbido mucho más.&lt;/p&gt;

&lt;p&gt;Puedo decir que tengo experiencia en el uso de &lt;em&gt;BD&lt;/em&gt; como &lt;strong&gt;Firebase y Postgres.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;...y algo de experiencia en servicio (Sobre todo de google services) y servidores(AWS, Digital Ocean, Ubuntu Server). &lt;/p&gt;

&lt;h2&gt;
  
  
  KondoSoft?
&lt;/h2&gt;

&lt;p&gt;Bueno es &lt;strong&gt;la empresa&lt;/strong&gt; que me ha otorgado quizá todos los conocimientos actuales y es la casa que me abrió las puertas para llegar a ser lo que soy(Casi nada pero por algo se empieza).&lt;/p&gt;

&lt;p&gt;Aquí lleve un &lt;strong&gt;programa de entrenamiento intensivo&lt;/strong&gt; en el cual desarrolle muchas de mis habilidades. &lt;strong&gt;&lt;em&gt;Programa que continua en funcionamiento y seguimos entrenando nuevos integrantes&lt;/em&gt;&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;La verdad no quiero a largar la &lt;em&gt;bienvenida&lt;/em&gt;, tengo tema personal para muchos post más, así que me guardare un poco sobre mí y poco a poco me irán conociendo.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Gracias&lt;/strong&gt; por leerme y espero tener pronto &lt;em&gt;feedback&lt;/em&gt; para poder mejorar y seguir creciendo en este mundo de &lt;strong&gt;"escribir publicaciones"&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Y bueno pues nada, les dejo mis redes y a seguir &lt;strong&gt;codeando!.&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Me encuentran en las redes como:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Twitter&lt;/em&gt; &lt;a href="https://twitter.com/BarrilitoDev" rel="noopener noreferrer"&gt;@BarrilitoDev&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Facebook&lt;/em&gt; &lt;a href="https://www.facebook.com/barrilitoDev" rel="noopener noreferrer"&gt;@BarrilitoDev&lt;/a&gt;&lt;br&gt;
&lt;em&gt;Instagram&lt;/em&gt; &lt;a href="https://www.instagram.com/barrildev/" rel="noopener noreferrer"&gt;@barrildev&lt;/a&gt;&lt;br&gt;
&lt;em&gt;...proximamente&lt;/em&gt; &lt;strong&gt;Youtube&lt;/strong&gt;&lt;/p&gt;

</description>
      <category>helloword</category>
      <category>devlife</category>
      <category>welcome</category>
      <category>firstpost</category>
    </item>
  </channel>
</rss>
