<?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>Forem: Matias Verdier</title>
    <description>The latest articles on Forem by Matias Verdier (@matiasvj).</description>
    <link>https://forem.com/matiasvj</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%2F32389%2F3a5b8ebb-7412-410a-9cb0-c357bc38c9bc.jpg</url>
      <title>Forem: Matias Verdier</title>
      <link>https://forem.com/matiasvj</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/matiasvj"/>
    <language>en</language>
    <item>
      <title>Cómo ganar experiencia como developer sin tener trabajo</title>
      <dc:creator>Matias Verdier</dc:creator>
      <pubDate>Mon, 01 Feb 2021 00:24:35 +0000</pubDate>
      <link>https://forem.com/matiasvj/como-ganar-experiencia-como-developer-sin-tener-trabajo-48c3</link>
      <guid>https://forem.com/matiasvj/como-ganar-experiencia-como-developer-sin-tener-trabajo-48c3</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;Cover photo by Tudor Baciu&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;¿Hace un tiempo estas aprendiendo a programar y quieres conseguir tu primer trabajo? ¿Completas tutoriales o lees artículos pero no sientes que tienes la experiencia necesaria para que te tengan en cuenta en un trabajo? ¿Buscas como destacar, demostrar lo que sabes o simplemente mejorar cómo desarrollador/a? Si respondiste que &lt;strong&gt;SI&lt;/strong&gt; a alguna de estas preguntas y quieres saber como tener mas oportunidades en el rubro del desarrollo te invito a que sigas leyendo.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;¿Cómo obtengo experiencia si aún no tengo un trabajo donde pueda generar esa experiencia?&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Respuesta corta: Clonar aplicaciones existentes.
&lt;/h2&gt;

&lt;p&gt;Como me parece sumamente importante, sobre todo para personas que recién comienzan y buscan su primer trabajo, voy a pasar rápidamente a comentarles varios puntos acerca de por que creo que clonar o replicar aplicaciones es una de las mejores (quizás la mejor) maneras de ganar experiencia.&lt;/p&gt;

&lt;h2&gt;
  
  
  1) No requiere creatividad
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Photo by AbsolutVision&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;No tienes que preocuparte por pensar que quieres implementar ni que se te ocurran ideas o diseños geniales para tu app. Simplemente puedes elegir una aplicación que te guste y que creas que puede tener funcionalidades interesantes para aprender &lt;strong&gt;COMO&lt;/strong&gt; se hacen.&lt;/p&gt;

&lt;p&gt;No pierdas tiempo buscando ideas para proyectos, clona las paginas y aplicaciones que usas regularmente. (Ej: Twitter, Youtube, Trello, etc).&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;El siguiente Párrafo fue agregado gracias al comentario de &lt;a href="https://dev.to/jagedn"&gt;Jorge Eψ=Ĥψ&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Esto no quiere decir que tengas que crear exactamente ese tipo de aplicaciones si sientes que aun no tienes los conocimientos necesarios, dependiendo del nivel de los mismos debes buscar aplicaciones o sitios mas sencillos para evitar la frustración que puede surgir al no saber por donde empezar. También puedes implementar partes concretas de aplicaciones grandes que puedan parecer fuera de tu alcance por el momento.&lt;/p&gt;

&lt;h2&gt;
  
  
  2) Te enfocas en aprender
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Photo by Element5 Digital&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Dado que no tienes que pensar que hacer (por lo que vimos en el punto anterior), te puedes enfocar en el &lt;strong&gt;COMO&lt;/strong&gt; y realmente aprender a construir una aplicación y cada una de sus funcionalidades.&lt;/p&gt;

&lt;p&gt;Ademas el proceso de aprendizaje va a estar guiado por la necesidad de resolver un problema concreto, que en mi opinion, es cuando mejor aprendemos y es lo que vas a tener que hacer en un futuro trabajo, nadie te va a decir como solucionar un problema, el cliente va decirte que es lo que quiere lograr y tu, junto a ru equipo, deberán encontrar una solución.&lt;/p&gt;

&lt;p&gt;El hecho de clonar una app o sitio también evita que quieras abarcar muchas cosas al mismo tiempo, sobre todo me refiero a lo que muchos de nosotros hemos hecho cuando empezamos, y es la idea de querer crear una app y generar ingresos a partir de la misma. Esto no es un error en sí mismo, de hecho creo que todos deberíamos intentarlo alguna vez, pero hacerlo cuando estas aprendiendo solamente agrega mas cosas que aprender y posibles fuentes de frustración cuando las cosas no salen como esperamos. &lt;/p&gt;

&lt;p&gt;Cuando estas aprendiendo no quieres agregar mas complejidad al proceso, no quieres tener que preocuparte por resolver una problema real de una forma novedosa, de tener que planificar, diseñar y validar una solución propia que agregue valor a los usuarios. Todo eso podría considerarse un campo entero del conocimiento y como tal, requiere que te enfoques en ello exclusivamente para aprender de forma eficiente.&lt;/p&gt;

&lt;p&gt;En el futuro, cuando quieras crear algo de ese estilo, mi recomendación es que uses un stack que ya domines, las razones de esta recomendación son prácticamente las mismas que antes, pero en este caso en lo que quieres enfocarte es en generar algo de valor que otras personas estén dispuesto a pagar, por lo que no es bueno estar al mismo tiempo aprendiendo e incluso batallando contra la tecnología, debes enfocarte en las cosas apropiadas dependiendo del objetivo.&lt;/p&gt;

&lt;h2&gt;
  
  
  3) El camino hacia la meta es claro
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Photo by Ante Hamersmit&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Si estas clonando una app que ya existe ya sabes como luce el producto final, no lo tienes que imaginar, el objetivo esta claro, ya sabe cómo se supone que debe funcionar la aplicación porque ya existe y seguramente la has usado.&lt;br&gt;
Esto tiene ademas como ventaja que seguramente otras personas también hayan seguido este camino y hayan generado tutoriales u otro tipo de contenido al respecto, y el cual puedes aprovechar y usar como guía cuando sientas que no avanzas.&lt;/p&gt;

&lt;h2&gt;
  
  
  4) Puedes aportar tu toque personal
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Photo by Dragos Gontariu&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Seguramente durante el proceso de creación, hayas ido identificando cosas te gustaría cambiar, cosas que sientes que deberían ser de otra manera, esta es la verdadera oportunidad de que la creatividad surja naturalmente. Aunque no lo creas la creatividad se puede adquirir y mejorar, la practica y exposición a diferentes cosas es la manera de hacerlo.&lt;/p&gt;

&lt;p&gt;Teniendo esto en cuenta, una vez que alcanzamos la meta y tienes una aplicación funcional y sientes que aprendiste los conceptos necesarios, puedes dar rienda suelta a la creatividad, este si es un buen momento para innovar, hasta puede que te des cuenta que hay una necesidad real que tu puedes resolver, solo que esta vez ya contaras con la experiencia y la practica necesarias y no estarás cometiendo el error mencionado en el punto #2&lt;/p&gt;

&lt;p&gt;Estas mejoras pueden incluir cosas orientadas a la experiencia del usuario como:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tema (colores, fuentes, tamaños, etc)&lt;/li&gt;
&lt;li&gt;Layouts, como se organiza el contenido en la página.&lt;/li&gt;
&lt;li&gt;Interacciones, animaciones, etc.&lt;/li&gt;
&lt;li&gt;Que se pueda editar un tweet 😜&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;O también puedes ir más allá y enfocarte en la parte del backend pudiendo cambiar que base de datos que se utiliza en la app, con que servicios se comunica la API, y un largo etc.&lt;/p&gt;

&lt;h2&gt;
  
  
  5) Experiencia real
&lt;/h2&gt;

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

&lt;blockquote&gt;
&lt;p&gt;Photo by Scott Graham&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Como puedes ver, este tipo de enfoque nos permitirá ganar experiencia replicando aplicaciones que resuelven problemas reales, y mas importante, cuanto mas veces sigas este proceso mas fácil va a ser identificar patrones que se comparten entre ellas, explorar diferentes soluciones a un mismo problema y entender los trade-offs de cada una y por que esas soluciones fueron elegidas frente a otras posibles.&lt;/p&gt;

&lt;p&gt;También podrás identificar mas claramente cuales son las buenas practicas y el por qué. De poco sirve adoptar alguna metodología o forma de hacer las cosas si no entiendes de dónde surge, cuál era la necesidad que se intento subsanar y cuál es la motivación detrás de esas recomendaciones. Si bien puedes leer sobre esas cosas nada te va a dar mas claridad que enfrentarte a un código que crece en complejidad, que se vuelve difícil de adaptar y mejorar, en ese momento la necesidad hace su trabajo nuevamente y te motiva a buscar la solución en el momento oportuno y no antes.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;Podría explayarme largamente sobre cada punto mencionado pero creo que lo más importante es que te lleves lo esencial de cada uno. Para resumir, mi recomendación es la siguiente, replica cuantas aplicaciones puedas, busca aplicaciones de distintos tipos que resuelvan una variedad de problemas para que vayas incorporando las cosas que se comparten entre ellas y notes las diferencias.&lt;/p&gt;

&lt;p&gt;No intentes ser creativo cuando no es el momento, te aseguro que tendrás oportunidad de crear algo único en su debido tiempo. No te abrumes con todas las cosas que hay para aprender, ponte metas claras y desafíos que puedas alcanzar.&lt;/p&gt;

&lt;p&gt;Usa estas aplicaciones para poner en practica tus conocimientos, para demostrarte a ti mismo/a lo que puedes lograr y que el hecho de no haber trabajado nunca de manera formal no sea un impedimento para avanzar en tu carrera.&lt;/p&gt;

&lt;p&gt;Espero que este post te haya sido de utilidad, que puedas aplicar estos consejos y que te ayuden a mejorar. Si tienes dudas, comentarios o quieres saber mas puedes dejar un comentario o contactarme en &lt;a href="https://twitter.com/matiasvj" rel="noopener noreferrer"&gt;twitter&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gracias!
&lt;/h3&gt;

</description>
      <category>spanish</category>
      <category>career</category>
      <category>sideprojects</category>
    </item>
    <item>
      <title>Repos interesantes de la semana #2</title>
      <dc:creator>Matias Verdier</dc:creator>
      <pubDate>Sun, 17 Jan 2021 22:08:55 +0000</pubDate>
      <link>https://forem.com/matiasvj/repos-interesantes-de-la-semana-2-56ng</link>
      <guid>https://forem.com/matiasvj/repos-interesantes-de-la-semana-2-56ng</guid>
      <description>&lt;h1&gt;
  
  
  Semana 11 enero 2021
&lt;/h1&gt;

&lt;p&gt;Continuamos con esta serie de posts donde comparto algunos repositorios interesantes que voy encontrando semana a semana. &lt;/p&gt;

&lt;h2&gt;
  
  
  Naming cheatsheet
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--XYdYamZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/63aqnpn0orl3i9whgu63.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--XYdYamZV--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/63aqnpn0orl3i9whgu63.png" alt="Naming cheatsheet" width="880" height="671"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Creo que todos hemos sufrido un poco a la hora de nombrar variables y funciones en nuestro código, por ese motivo creo que este recopilado de consejos sin dudas nos sera muy útil. También lograremos una mejor legibilidad y que nuestro código sea mas mantenible a largo plazo.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/kettanaito/naming-cheatsheet"&gt;kettanaito / naming-cheatsheet&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Electron Fiddle
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--6mb6M_d2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j5nwirgzffrr35y5kc7d.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--6mb6M_d2--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/j5nwirgzffrr35y5kc7d.jpg" alt="Electron Fiddle" width="880" height="560"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La manera más rápida de comenzar con &lt;a href="https://www.electronjs.org/"&gt;Electron&lt;/a&gt;.&lt;br&gt;
Electron es una herramienta que nos permite crear aplicaciones multi-plataforma usando tecnologías web.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://www.electronjs.org/fiddle"&gt;Electron Fiddle&lt;/a&gt; es como el &lt;a href="https://codepen.io/"&gt;CodePen&lt;/a&gt; para Electron, permitiéndonos crear prototipos y experimentar con las capacidades de la plataforma de manera rápida sin hacer ningún setup.&lt;/p&gt;

&lt;p&gt;Al abrirlo tendremos precargado el código necesario para ejecutar un "Hola, Mundo" y comenzar a experimentar.&lt;/p&gt;

&lt;p&gt;Podrás cambiar fácilmente la version de Electron, exportar tus experimentos como GitHub Gists y compartirlos para que otros los usen simplemente ingresando la url del mismo.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/electron/fiddle"&gt;electron / fiddle&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  ExplainShell
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--1D64JYQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/blmo6wldens6pz6a1z2e.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--1D64JYQq--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/blmo6wldens6pz6a1z2e.jpg" alt="ExplaiShell Example" width="880" height="730"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;En &lt;a href="https://www.explainshell.com/"&gt;explainshell.com&lt;/a&gt; podrás obtener una explicación detallada de los argumentos de tus comandos en la terminal de una manera bastante atractiva y fácil de entender, sin dudas un recurso interesante para el día a día.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/idank/explainshell"&gt;idank / explainshell&lt;/a&gt; &lt;/p&gt;

&lt;h2&gt;
  
  
  Starship
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--aPXGUqyM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h1b5a1f2cyvt4na6prjh.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--aPXGUqyM--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_66%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/h1b5a1f2cyvt4na6prjh.gif" alt="Starship" width="763" height="478"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ya que estamos hablando de la terminal, por que no tener un prompt lindo como el que se ve en el ejemplo de arriba?&lt;/p&gt;

&lt;p&gt;Eso es que nos permite &lt;a href="https://starship.rs/"&gt;Starship&lt;/a&gt;, una herramienta desarrollada en Rust para personalizar completamente nuestro prompt que funciona para todos los sistemas operativos y para cualquier terminal.&lt;/p&gt;

&lt;p&gt;Así se ve mi terminal por ahora cuando estoy dentro de un proyecto con Node.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--4z4Eomrz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rhkw4vebeajw8ccjfoi9.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--4z4Eomrz--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/rhkw4vebeajw8ccjfoi9.png" alt="Alt Text" width="463" height="54"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/starship/starship"&gt;starship / starship&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Visx
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--QkzyLTk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ymf220qqr4z0t4eyz8zl.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--QkzyLTk9--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/ymf220qqr4z0t4eyz8zl.png" alt="Visx" width="880" height="528"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Por ultimo les traigo &lt;a href="https://airbnb.io/visx/"&gt;Visx&lt;/a&gt;, una librería de visualizaciones para React basada en &lt;a href="https://d3js.org/"&gt;D3.js&lt;/a&gt; y creada por airbnb.&lt;/p&gt;

&lt;p&gt;Visx nos permitirá crear gráficas y otras visualizaciones de datos usando primitivas de bajo nivel y las ventajas de React sin tener que adaptarnos a las restricciones y opiniones de otras librerías de este estilo, si no que nosotros podremos generar la nuestra adaptada a las necesidades especificas del proyecto en el que estemos trabajando.&lt;/p&gt;

&lt;p&gt;Otra de las ventajas es que puedes mantener un tamaño de bundle pequeño ya que solo incluyes los componentes que necesitas utilizar y no mas.&lt;/p&gt;

&lt;p&gt;Por supuesto cuenta con el sello de calidad de airbnb, esto sin duda es un plus y un respaldo a la hora de elegir este tipo de herramientas.&lt;/p&gt;

&lt;p&gt;Repo: &lt;a href="https://github.com/airbnb/visx"&gt;airbnb / visx&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Gracias por leer y hasta el próximo!
&lt;/h3&gt;

</description>
      <category>spanish</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
    <item>
      <title>Repos interesantes de la semana #1</title>
      <dc:creator>Matias Verdier</dc:creator>
      <pubDate>Tue, 12 Jan 2021 23:19:17 +0000</pubDate>
      <link>https://forem.com/matiasvj/repos-interesantes-de-la-semana-1-4jjc</link>
      <guid>https://forem.com/matiasvj/repos-interesantes-de-la-semana-1-4jjc</guid>
      <description>&lt;h1&gt;
  
  
  Semana 4 enero 2021
&lt;/h1&gt;

&lt;p&gt;Hola! Hoy les traigo una lista de 5 repositorios interesantes que descubrí la semana pasada (algunos ya los sabia de antes 😅). Sin más vueltas paso a comentarles un poco de cada uno, espero que les sea de utilidad.&lt;/p&gt;

&lt;h2&gt;
  
  
  Snapdrop
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--3p8lOe1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8pkjtbaxogcea4qdovt8.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--3p8lOe1L--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/8pkjtbaxogcea4qdovt8.png" alt="Sitio web Snapdrop" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://snapdrop.net/"&gt;Snapdrop&lt;/a&gt; es una version open source de la aplicación AirDrop en MacOS. Esta aplicación sirve para compartir archivos estando en la misma red WIFI de forma fácil y rápida.&lt;/p&gt;

&lt;p&gt;Es una aplicación simple programada básicamente con HTML, CSS y JS sin ningún framework. Para poder compartir los archivos utiliza la tecnología &lt;a href="https://webrtc.org/"&gt;WebRTC&lt;/a&gt; que nos permite establecer conexiones P2P entre dispositivos.&lt;/p&gt;

&lt;p&gt;También cuenta con un backend en Nodejs que se usa solamente para manejar la interacción inicial necesaria para establecer la conexión mediante WebRTC, esto quiere decir que los archivos nunca pasan por el servidor, si no solo entre los dispositivos conectados.&lt;/p&gt;

&lt;p&gt;Otro detalle interesante es que se puede agregar a la homescreen de tu celular como una app mas, esto gracias a ser implementada como una &lt;a href="https://web.dev/progressive-web-apps/"&gt;Progressive Web App&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Repositorio: &lt;a href="https://github.com/RobinLinus/snapdrop"&gt;RobinLinus / snapdrop&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Mozilla Hubs
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--KYxU9O0e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/948j2xfely6ekl2fyke5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--KYxU9O0e--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/948j2xfely6ekl2fyke5.png" alt="Sitio web Mozilla Hubs" width="880" height="569"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hubs.mozilla.com/"&gt;Hubs&lt;/a&gt; es una aplicación que nos permite crear entornos virtuales 3D online para reunirnos con otras personas y charlar en un ambiente un poco mas ameno que una simple video llamada, algo que sin duda ayuda en estos tiempos de pandemia que corren.&lt;/p&gt;

&lt;p&gt;Si bien puedes usar dispositivos de realidad virtual (VR) estos no son necesarios.&lt;/p&gt;

&lt;p&gt;Puedes elegir tu avatar de una larga lista de opciones e incluso puedes crear tus propios avatars y subirlos a la plataforma, asi que si tienes un poco de conocimiento de Blender u otras herramientas de modelado 3D es una buena oportunidad.&lt;/p&gt;

&lt;p&gt;Ademas de esto puedes compartir tu pantalla e interactuar con el entorno, por ejemplo dibujando en un pizarrón.&lt;/p&gt;

&lt;p&gt;También tienes la posibilidad de agregar diversos objetos a tu entorno o crearlos de la misma manera que con los avatars. El entorno completo o escena también puede ser cambiado o creado completamente desde cero.&lt;/p&gt;

&lt;p&gt;Por ultimo y no menos importantes quiero destacar la gran documentación de alta calidad que tiene, ya sea para usuarios, creadores, o desarrolladores.&lt;/p&gt;

&lt;p&gt;Repositorio: &lt;a href="https://github.com/mozilla/hubs"&gt;mozilla / hubs&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Patch Package
&lt;/h2&gt;

&lt;p&gt;Ahora vamos con algo diferente, en este caso es un paquete de npm que nos permite arreglar errores en librerías de terceros sin la necesidad de hacer fork del repositorio original o esperar que los desarrolladores lo arreglen, esto se vuelve necesario muchas veces cuando nuestro sistema depende de que ese arreglo sea incluido.&lt;/p&gt;

&lt;p&gt;Esto no es una solución a largo plazo por supuesto, pero es una alternativa simple y muchas veces mas fácil de mantener que crear un fork de la librería en cuestión ya que puedes modificar los archivos originales directamente en la carpeta &lt;code&gt;node_modules&lt;/code&gt; y la librería se encarga de mantener estos cambios en subsiguientes installs y ademas crea archivos &lt;code&gt;patch&lt;/code&gt; con los cambios realizados para que los puedas versionar con git.&lt;/p&gt;

&lt;p&gt;Repositorio: &lt;a href="https://github.com/ds300/patch-package"&gt;ds-300 / patch-package&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Twind
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--rj3IJDLD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/38ujkgsmhppxcf63idgs.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--rj3IJDLD--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://dev-to-uploads.s3.amazonaws.com/i/38ujkgsmhppxcf63idgs.png" alt="Sitio web Twind" width="880" height="451"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://twind.dev/"&gt;Twind&lt;/a&gt; es una librería de CSS-in-JS que usa &lt;a href="https://tailwindcss.com/"&gt;Tailwindcss&lt;/a&gt; por debajo manteniendo sus ventajas pero ademas agregando otras funcionalidades interesantes como la agrupación de clases por prefijo, combinación condicional de clases y mas.&lt;/p&gt;

&lt;p&gt;Agrupación de clases&lt;br&gt;
Esto hace que los nombres de las clases sean más cortos evitando la repetición de ciertos prefijos que comparten.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;// Before directive grouping
tw`border-2 border-black border-opacity-50 border-dashed`

// After directive grouping
tw`border(2 black opacity-50 dashed)`

// With variants
tw`sm:(border(2 black opacity-50 hover:dashed))`
// =&amp;gt; sm:border-2 sm:border-black sm:border-opacity-50 sm:hover:border-dashed

tw`w(1/2 sm:1/3 lg:1/6) p-2`
// =&amp;gt; w-1/2 sm:w-1/3 lg:w-1/6 p-2
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Para mas detalles sobre esta y otras funcionalidades puedes visitar el repositorio: &lt;a href="https://github.com/tw-in-js/twind"&gt;tw-in-js / twind&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Microsite
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://github.com/natemoo-re/microsite"&gt;Microsite&lt;/a&gt; es un generador de sitios estáticos (SSG) construido sobre &lt;a href="https://www.snowpack.dev/"&gt;Snowpack&lt;/a&gt; y que utiliza &lt;a href="https://preactjs.com/"&gt;Preact&lt;/a&gt; como framework.&lt;/p&gt;

&lt;p&gt;La principal característica es que su output presenta una cantidad minima de código JS del lado del cliente, esto es posible gracias a las utilización de Automatic Partial Hydration (Hidratación Parcial Automática), esta técnica permite generar solo el JS necesario para las partes de la pagina que son realmente dinámicas y no tener que enviar todo el árbol de componentes al browser.&lt;/p&gt;

&lt;p&gt;Puedes agregar rutas a tu sitio creando archivos (&lt;code&gt;.js&lt;/code&gt;, &lt;code&gt;.jsx&lt;/code&gt;, &lt;code&gt;.tsx&lt;/code&gt;) en la carpeta pages de la misma forma que lo hace &lt;a href="https://nextjs.org/"&gt;Nextjs&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Mas info en el repositorio: &lt;a href="https://github.com/natemoo-re/microsite"&gt;natemoo-re / microsite&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Pensamientos finales
&lt;/h2&gt;

&lt;p&gt;Espero que esto les haya servido de algo, voy a intentar crear un post como este todas las semanas con cosas interesantes que voy encontrando.&lt;/p&gt;

&lt;p&gt;Si alguna de estas herramientas les pareció interesante y quieren saber mas me lo pueden hacer saber en &lt;a href="https://twitter.com/matiasvj"&gt;mi cuenta de twitter&lt;/a&gt; y puede que escriba un articulo especifico con mas detalles de su funcionamiento, ejemplos, etc.&lt;/p&gt;

&lt;p&gt;Gracias y hasta el próximo!&lt;/p&gt;

</description>
      <category>spanish</category>
      <category>opensource</category>
      <category>webdev</category>
      <category>programming</category>
    </item>
  </channel>
</rss>
