<?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: Nicolás Avila</title>
    <description>The latest articles on DEV Community by Nicolás Avila (@nicoavila).</description>
    <link>https://dev.to/nicoavila</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%2F107503%2Fead700f7-e592-4b67-b6ff-b8980b3219c1.jpg</url>
      <title>DEV Community: Nicolás Avila</title>
      <link>https://dev.to/nicoavila</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/nicoavila"/>
    <language>en</language>
    <item>
      <title>Introducción a los teclados mecánicos: Modificando el Keychron K6</title>
      <dc:creator>Nicolás Avila</dc:creator>
      <pubDate>Sat, 17 Jul 2021 19:52:54 +0000</pubDate>
      <link>https://dev.to/devschile/introduccion-a-los-teclados-mecanicos-modificando-el-keychron-k6-3pc</link>
      <guid>https://dev.to/devschile/introduccion-a-los-teclados-mecanicos-modificando-el-keychron-k6-3pc</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Disclaimer 1&lt;/strong&gt;: Las técnicas y materiales descritos perfectamente pueden funcionar en otros modelos de teclados mecánicos. Procura que tus switches sean &lt;strong&gt;hot-swappables&lt;/strong&gt; (no sean soldados a la placa base, es decir, se puedan desmontar sin necesidad de desoldar) 👀&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer 2&lt;/strong&gt;: Todo el proceso toma aproximadamente 4hrs. Te recomiendo hacerlo con tiempo, acompañado de un rico ☕ o 🍺.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer 3&lt;/strong&gt;: No estoy afiliado a ninguna tienda en particular. Comparto solo los lugares donde encontré los materiales para hacer mas expedito el proceso de modding.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer 4&lt;/strong&gt;: Un teclado mecánico no te hará ser un mejor programador. Solo la práctica, estudiar, compartir con tus seres queridos y descansar lo suficiente lo harán 😄&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer 5&lt;/strong&gt;: El proceso de modificación de tu teclado Keychron K6 puede inhabilitar su garantía ⚠️. Procura modificarlo bajo tu propio riesgo. &lt;strong&gt;devsChile no se responsabiliza por la ejecución inadecuada del proceso de modificación.&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Introducción
&lt;/h2&gt;

&lt;p&gt;Teclados mecánicos: el tema candente del momento ⌨️.&lt;br&gt;
No todos buscan un teclado mecánico movidos por un mismo objetivo. Algunos buscan un teclado para jugar, otros para ensamblar y dar rienda suelta a su creatividad (visiten el channel &lt;strong&gt;#diy&lt;/strong&gt; de &lt;a href="https://devschile.cl/" rel="noopener noreferrer"&gt;devChile&lt;/a&gt; si es así), otros para coleccionar y otros solo para diversión. Cualquiera sea el motivo: seas bienvenido a este hobbie 🎉.&lt;br&gt;
Hace algunos años buscaba acceder a un teclado mecánico para recordar ese sonido que tenían los teclados de la época dorada de la computación (ese sonido característico de los 90s). Finalmente decidí ir por un &lt;a href="https://www.keychron.com/products/keychron-k6-wireless-mechanical-keyboard?variant=31441093361753" rel="noopener noreferrer"&gt;Keychron K6&lt;/a&gt; y no me arrepiento de nada. El teclado se siente bastante sólido y no me ha dado problemas hasta el momento. Incluso compré un set de teclas personalizadas para cambiar las que trae por defecto (muy motivado! 💪).&lt;br&gt;
En ocasiones los materiales y configuraciones de fábrica de los teclados no son los óptimos. Esto hace que suenen más de lo normal o se sientan más "huecos".&lt;br&gt;
El objetivo de esta guía es enseñar paso a paso la modificación de un teclado &lt;strong&gt;Keychron K6&lt;/strong&gt;, partiendo por la modificación de su cuerpo al añadir espuma acústica, para así finalizar con la modificación de los switches.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Si tienes alguna consulta del proceso, no dudes en dejar tu pregunta en la sección de comentarios.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Partes del teclado
&lt;/h2&gt;

&lt;p&gt;Para los que estamos partiendo en los teclados mecánicos (y me incluyo) este es un problema, ya que hay una cantidad importante de conceptos que manejar primero. Pero no desesperen! Recopilé los más importantes que nos permitirán trabajar con nuestro teclado sin problemas 😄&lt;/p&gt;

&lt;h3&gt;
  
  
  Switch mecánico
&lt;/h3&gt;

&lt;p&gt;Los switches son una de las partes más importantes de nuestro teclado, ya que determinarán como será la experiencia al momento de escribir.&lt;br&gt;
Los hay de varios tipos marcas y calidad, pero su objetivo primario es solo uno: cerrar un circuito. Mandar la señal eléctrica correspondiente a la tecla que queremos activar.&lt;br&gt;
Existen distintos tipos de switches, pero todos caen en la misma categoría con ligeras variaciones.&lt;br&gt;
A continuación revisaremos los tipos generales así como sus partes.&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%2Fao1jzlosw4uo4fb875lp.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%2Fao1jzlosw4uo4fb875lp.jpg" alt="Switch Gateron" width="600" height="328"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h4&gt;
  
  
  Tipos
&lt;/h4&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Rojos (lineales)&lt;/strong&gt;: No poseen feedback ni resistencia alguna al presionarlos. No poseen un sonido click característico. Ideal para gamers.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cafés (táctiles)&lt;/strong&gt;: Poseen un ligero feedback al momento de presionarlos. No poseen un sonido click característico. Ideal para personas que escriben mucho en el teclado.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Azules (clicky)&lt;/strong&gt;: Poseen un feedback bastante notorio al momento de presionarlos. Adicionalmente, poseen un sonido click característico. Ideal para personas que quieren escuchar un click audible al momento de presionar las teclas.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;Y los otros switches de colores que salen en la imagen? Son del la misma clasificación previamente descrita, pero con ligeras diferencias (lineales, táctiles y clicky). Si deseas conocer más sobre los detalles técnicos de cada uno te recomiendo &lt;a href="https://www.keychron.com/blogs/news/gateron-mechanical-switch-guide" rel="noopener noreferrer"&gt;leer esta guía&lt;/a&gt; en el blog oficial de Keychron&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h4&gt;
  
  
  Partes
&lt;/h4&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Tecla (keycap):&lt;/strong&gt; En estricto rigor esto no es parte de un switch, pero si es una pieza que interactúa directamente con él. Las hay de varios tipos de materiales y calidad. Las que vienen en el K6 son muy buenas 😄&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Rama (stem):&lt;/strong&gt; Es el lugar donde descansa la tecla. Esta parte descansa a su vez sobre un resorte, que permite volver la rama (y por ende a la tecla) a su estado original.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carcasa superior (upper housing):&lt;/strong&gt; Corresponde a la tapa superior de un switch. Mantiene todas las piezas en su lugar.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Resorte (coil spring):&lt;/strong&gt; Permite devolver la rama del switch a su posición original una vez se ha presionado. Los hay de distintos tipos de resistencia, lo que influye mucho en la experiencia de escritura al momento de presionar un switch.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carcasa inferior (bottom housing):&lt;/strong&gt; Corresponde a la tapa inferior del switch. Posee lugares por donde se desliza la rama, así como una prolongación interna para poner el resorte y los puntos de contacto&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Puntos de contacto:&lt;/strong&gt; Corresponde al lugar que hace contacto con la PCB y que permite cerrar el circuito eléctrico para activar una tecla en particular.&lt;/li&gt;
&lt;/ol&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%2Fotzs3m2w0ue5iaoqvo88.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%2Fotzs3m2w0ue5iaoqvo88.jpg" alt="Partes de un switch" width="762" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  El teclado
&lt;/h3&gt;

&lt;p&gt;El cuerpo del teclado posee partes que son estándar en la gran mayoría de las marcas y modelos.&lt;br&gt;
A continuación listo las partes más frecuentes:&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%2Fdvqkp2rhxdo7282jov8x.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%2Fdvqkp2rhxdo7282jov8x.jpg" alt="Partes del teclado mecánico" width="800" height="794"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;Marco:&lt;/strong&gt; Presente en algunos teclados. De diferentes materiales y calidad, pero su objetivo es estético la gran mayoría de las veces.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Placa de montaje de switches:&lt;/strong&gt; Como su nombre lo indica, permite montar los switches en los agujeros de las PCB. Los hay de muchos materiales (plásticos, aluminio, bronce, policarbonato, etc). Entrega cierto rango de flexibilidad al presionar las teclas.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Estabilizadores:&lt;/strong&gt; Los estabilizadores permiten evitar el traqueteo en teclas más largas (como &lt;strong&gt;Caps Lock&lt;/strong&gt; o el &lt;strong&gt;Space Bar&lt;/strong&gt;). Están compuestos por una pieza de alambre, unida a dos switches especiales (no poseen las mismas partes que un switch). Estos componentes también requieren lubricación. Sin embargo, no abordaremos el procedimiento en esta guía (yo dejé los míos con la lubricación por defecto).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;PCB:&lt;/strong&gt; Corresponde al corazón del teclado. Permite montar los contactos de los switches para así cerrar los circuitos y activar una tecla deseada. Poseen normalmente una interfaz USB (A, micro USB o C). Algunas placas también soportan Bluetooth.
Existen modelos de placas que tienen LEDs, que entregan bonita iluminación con distintos efectos y frecuencias de animación (normalmente programable).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Carcasa inferior:&lt;/strong&gt; Permite mantener todas las piezas en su lugar. En esta parte descansa la PCB y en los teclados con soporte Bluetooth, también almacena la batería.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;El esquema utilizado para mostrar las partes del teclado &lt;strong&gt;no corresponde a un Keychron K6&lt;/strong&gt;. Sin embargo, es una buena ilustración para mostrar las partes mas importantes.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Materiales y herramientas
&lt;/h2&gt;

&lt;p&gt;Manos a la obra! Ahora es tiempo de juntar todos los materiales y herramientas necesarios para comenzar el proceso.&lt;br&gt;
A continuación detallo una lista de cada uno, así como las herramientas que utilizaremos:&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%2F9e06bybydhfoce5c25df.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%2F9e06bybydhfoce5c25df.jpg" alt="Materiales" width="800" height="587"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Materiales
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Espuma de aislación acústica adhesiva (&lt;a href="https://www.amazon.com/dp/B07PTMM81B" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Krytox 105G (&lt;a href="https://divinikey.com/collections/lubricant/products/krytox-gpl-105-oil-lubricant" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;G-Lube (&lt;a href="https://divinikey.com/collections/lubricant/products/glorious-g-lube-lubricant" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Filme de switches (&lt;a href="https://divinikey.com/collections/accessories/products/deskeys-switch-film" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Tapa de refresco&lt;/li&gt;
&lt;li&gt;Papel secante&lt;/li&gt;
&lt;li&gt;Plasticina (si, really)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Herramientas
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Superficie para cortar&lt;/li&gt;
&lt;li&gt;Abridor de switches (&lt;a href="https://www.amazon.com/dp/B08XYXJSSN?" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Plumón permanente&lt;/li&gt;
&lt;li&gt;Bisturí para maquetas&lt;/li&gt;
&lt;li&gt;Tijeras&lt;/li&gt;
&lt;li&gt;Extractor de switches (&lt;a href="https://www.amazon.com/dp/B093L5FDZL" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;. Se puede utilizar el que viene con el K6)&lt;/li&gt;
&lt;li&gt;Pincel fino (&lt;a href="https://www.amazon.com/dp/B093L5FDZL" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Extractor de Keycaps (&lt;a href="https://www.amazon.com/dp/B093L5FDZL" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;. Se puede utilizar el que viene con el K6)&lt;/li&gt;
&lt;li&gt;Pinzas de precisión (&lt;a href="https://www.amazon.com/dp/B079K874CQ" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;li&gt;Destornilladores (&lt;a href="https://www.amazon.com/gp/product/B0189YWOIO" rel="noopener noreferrer"&gt;aquí&lt;/a&gt;)&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Paso 1: Preparación
&lt;/h2&gt;

&lt;p&gt;Lo primero es contar con un lugar cómodo donde trabajar. El proceso total dura alrededor de 4 horas, por lo que estar bien ubicado es parte esencial. Lo segundo es contar con una superficie que se pueda &lt;strong&gt;ensuciar y limpiar fácilmente&lt;/strong&gt;. Las manchas dejadas por lubricantes de teclados mecánicos cuesta eliminarlas, por lo que te recomiendo tener una superficie que puedas ensuciar sin culpa (así como la ropa adecuada en caso que ocurra algún accidente).&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 2: Remover los keycaps
&lt;/h2&gt;

&lt;p&gt;Los Keychron K6 traen un extractor de keycaps incorporado. Es bastante bueno, por lo que pueden utilizar el que viene de fábrica. Como mis herramientas las adquirí por Amazon, utilicé ambos removedores de Keycap.&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%2Ffbuiiwkywlzeshwb7glj.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%2Ffbuiiwkywlzeshwb7glj.jpg" alt="Remover Keycaps" width="800" height="669"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Personalmente no uso los keycaps que trae por defecto el Keychron K6. Si te interesa el modelo que utilizo (YMDK ANSI Dye Sub Carbon Keyset), puedes revisar el &lt;a href="https://www.amazon.com/dp/B088TQ57NK?psc=1&amp;amp;ref=ppx_yo2_dt_b_product_details" rel="noopener noreferrer"&gt;siguiente link&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Paso 3: Remover los switches
&lt;/h2&gt;

&lt;p&gt;Los K6 también traen un extractor de switches, aunque este &lt;strong&gt;no es de muy buena calidad&lt;/strong&gt;, ya que es pequeño y difícil de manipular. Acá recomiendo utilizar uno similar al de la imagen anterior, dado que es mucho más fácil poder extraer un switch con una herramienta más larga.&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%2F37hm37azjmkezuxalhd8.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%2F37hm37azjmkezuxalhd8.jpg" alt="Remover Switches" width="749" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 4: Desarmar los switches
&lt;/h2&gt;

&lt;p&gt;Para poder desarmar un switch puedes hacerlo de dos maneras:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Manualmente:&lt;/strong&gt; Es la forma mas complicada, dado que debes abrir con mucho cuidado cada una de las patas de la carcasa inferior de un switch para así desarmarlo.&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;strong&gt;Abridor de switches:&lt;/strong&gt; Esta es la forma más fácil. Es una herramienta dedicada para abrir switches. Los hay de varios tipos, materiales y calidades. El proceso para desarmar un switch utilizando la herramienta dedicada es muy fácil. A continuación detallo el proceso:&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Alinear las patas de la carcasa superior
&lt;/h3&gt;

&lt;p&gt;Se deben alinear las patas de la carcasa superior con las patas del abridor de switches tal como muestra el área demarcada en verde.&lt;br&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%2F5z20ixcv752mbru5jd14.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%2F5z20ixcv752mbru5jd14.jpg" alt="Desarmar switches 1" width="800" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Presionar
&lt;/h3&gt;

&lt;p&gt;Sobre una superficie estable, presiona tu dedo sobre la rama del switch con fuerza moderada. Esto ocasionará que la carcasa superior del switch se desprenda, permitiendo extraer cada una de sus partes.&lt;br&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%2Ft18vumfri07jmds0gj3p.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%2Ft18vumfri07jmds0gj3p.jpg" alt="Desarmar switches 2" width="800" height="259"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 5: Clasificar las partes
&lt;/h2&gt;

&lt;p&gt;Dado que vamos a trabajar con muchas partes pequeñas lo más recomendable es utilizar bolsas plásticas para separar cada una de las partes y así no perderlas. Para ello he utilizado bolsas sellables.&lt;br&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%2Fg5sue0t4wpogpxqbko91.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%2Fg5sue0t4wpogpxqbko91.jpg" alt="Clasificar las partes" width="800" height="786"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 6: Abrir el marco externo
&lt;/h2&gt;

&lt;p&gt;Una vez que tenemos clasificadas las partes de nuestros switches es hora de modificar el cuerpo de nuestro Keychron K6. Para ello debemos acceder a la parte interna de la carcasa inferior.&lt;br&gt;
Utilizaremos un destornillador hexagonal para sacar los tornillos de las secciones laterales del cuerpo de nuestro teclado. Ello nos permitirá sacar y deslizar hacia un costado las partes de aluminio del teclado.&lt;br&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%2Fzvydyiktgpzpds3fo9y0.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%2Fzvydyiktgpzpds3fo9y0.jpg" alt="Abrir el marco externo" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 7: Desatornillar la placa de montaje
&lt;/h2&gt;

&lt;p&gt;Cuando se han sacado los marcos externos, es hora de ir por el marco interno o placa de montaje. La placa de montaje de los switches del Keychron K6 es metálica y de buena calidad.&lt;br&gt;
Debemos identificar cada uno de los tornillos y extraerlos con mucho cuidado.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;No está de más decir que es muy importante que almacenen los tornillos del teclado en un lugar seguro durante el proceso de modificación 😬.&lt;/p&gt;
&lt;/blockquote&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%2Fch0ftj7n278bk9fl2a2a.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%2Fch0ftj7n278bk9fl2a2a.jpg" alt="Desatornillar el marco interno" width="800" height="642"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 8: Desconectar el cable de la batería
&lt;/h2&gt;

&lt;p&gt;Cuando hemos extraído la placa de montaje se puede acceder a la PCB del teclado.&lt;br&gt;
En la parte inferior de la placa encontraremos un conector a la batería el cual debemos extraer con mucho cuidado con unas pinzas de precisión.&lt;br&gt;
Se debe dejar la PCB del teclado a un lado para solo quedar con la carcasa inferior y la batería en ella. La batería viene pegada a la carcasa inferior.&lt;br&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%2Fexd4t61jh0pedth8glai.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%2Fexd4t61jh0pedth8glai.jpg" alt="Desconectar cable de bateria" width="748" height="662"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 9: Preparar y cortar la espuma
&lt;/h2&gt;

&lt;p&gt;Este paso es ensayo y error! Pero es posible acercarse mucho al resultado deseado con algunas medidas previas.&lt;br&gt;
Según leí en los foros y comunidades, la mayoría de las personas utiliza &lt;strong&gt;espuma de embalaje de unos 3mm de espesor&lt;/strong&gt;. En este punto quise improvisar un poco y encargué por Amazon una espuma de aislación acústica autoadhesiva &lt;strong&gt;SilverStone Technology EPDM&lt;/strong&gt; usada para insonorizar gabinetes de PC. Debo decir que me gustó mucho usar este material, ya que la espuma es de muy fácil manipulación y es capaz de comprimirse ante la fuerza ejercida. Esto facilita otorgar cierta flexibilidad a la placa de montaje al momento de escribir. En el paquete vienen 2 pliegos, que podrán utilizar para modificar muchos teclados!.&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%2F1arsuz9b6t98moasmjz9.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%2F1arsuz9b6t98moasmjz9.jpg" alt="SilverStone Technology EPDM" width="397" height="623"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Se debe cortar un rectángulo de &lt;strong&gt;30cm ancho x 10cm de alto&lt;/strong&gt;, el cual servirá de base para ir modificando de acuerdo a sus necesidades.&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%2Fgn7yt3vx2hjf47jjgpxy.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%2Fgn7yt3vx2hjf47jjgpxy.jpg" alt="Espuma cortada" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;La carcasa inferior posee unas ramas donde los tornillos de la placa de montaje de switches quedan encajados, por lo que es necesario considerar estos cilindros al momento de cortar la espuma. Para ello recomiendo utilizar &lt;strong&gt;pequeñas bolitas de plasticina&lt;/strong&gt; que se deben colocar sobre cada rama de tornillo. Luego, con un plumón permanente, se debe marcar un pequeño punto sobre cada bolita. Inmediatamente y antes que se seque por completo la tinta se debe presionar el rectángulo de espuma previamente cortado sobre las bolitas de plasticina, para que así estas actúen de estampa sobre la superficie autoadhesiva de la espuma acústica. De esta manera se puede saber donde cortar un cuadrado, para que las ramas de los tornillos pasen a través de la espuma sin inconvenientes.&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%2Fv9o4v3oayasq0htyvtea.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%2Fv9o4v3oayasq0htyvtea.jpg" alt="Marcar ramas de carcasa en espuma" width="800" height="495"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 10: Pegar la espuma
&lt;/h2&gt;

&lt;p&gt;La ventaja de la espuma Silverstone es que posee una película autoadhesiva. Es muy fácil pegarla en el teclado una vez haya sido cortada.&lt;br&gt;
Es necesario &lt;strong&gt;procurar no dejar espuma sobre la batería&lt;/strong&gt;, ya que esto puede traernos problemas al momento de armar nuevamente el teclado.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 11: Volver a armar el teclado y encenderlo
&lt;/h2&gt;

&lt;p&gt;Ya hemos terminado con el proceso de modificación del cuerpo del teclado. Ahora debemos conectar nuevamente la batería, poner la PCB en su lugar y volver a atornillar la placa de montaje de los switches sobre la PCB para poder continuar.&lt;br&gt;
Si todo sale bien, el teclado debiese encender sin problemas 💚.&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 12: Lubricar los resortes
&lt;/h2&gt;

&lt;p&gt;La lubricación de los resortes de nuestros switches se lleva a cabo con el lubricante &lt;strong&gt;Krytox 105G&lt;/strong&gt;. El proceso es bastante sencillo: simplemente se deben verter de 10 a 15 gotas de lubricante dentro de la bolsa utilizada para separar los resortes. Se debe sellar la bolsa para evitar fugas. Una vez listo el proceso se debe agitar vigorosamente hasta que el lubricante quede uniformemente aplicado a cada resorte.&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%2Fmfmk7mv2892x51129asj.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%2Fmfmk7mv2892x51129asj.jpg" alt="Lubricar resortes" width="748" height="791"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 13: Lubricar los switches
&lt;/h2&gt;

&lt;p&gt;Esta es la parte más importante de todo el proceso, ya que determinará el sonido final que va a tener nuestro teclado. Te recomiendo &lt;strong&gt;seguir las recomendaciones al pie de la letra&lt;/strong&gt;, para que así no te encuentres con resultados acústicos no deseados.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante:&lt;/strong&gt; En la búsqueda de información de lubricantes para switches leí que la mezcla óptima para switches lineales era utilizar &lt;strong&gt;Krytox 205G + Krytox 105G&lt;/strong&gt;. Sin embargo yo compré &lt;strong&gt;G-Lube&lt;/strong&gt; de Gloriuous Gaming y, adicionalmente, utilizo switches táctiles 😓. En la preparación de la mezcla sinceramente &lt;strong&gt;improvisé mucho&lt;/strong&gt;. Sin embargo, estoy muy contento con los resultados, aunque la mezcla no se vea muy "bonita" de aplicar.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  Preparación de la mezcla
&lt;/h3&gt;

&lt;p&gt;En una tapa de refresco, vierte una pequeña cantidad de G-Lube (un cuarto del tamaño de una arveja), seguido por un par de gotas de Krytox 105G (unas 5 - 6 gotas). Mezcla ambos lubricantes con el pincel hasta que la textura sea similar a la de la imagen.&lt;br&gt;
&lt;strong&gt;La aplicación de lubricante sobre las partes del switch se debe hacer con una película delgada, evitando dejar grandes cantidades y evitar la formación de grumos.&lt;/strong&gt;&lt;br&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%2Ft33u2uq0pv884zf660qf.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%2Ft33u2uq0pv884zf660qf.jpg" alt="Preparación mezcla" width="800" height="414"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Lubricar la rama
&lt;/h3&gt;

&lt;p&gt;Con una herramienta de sujeción o pinza, toma la rama por la parte donde hace contacto con la tecla. Luego procede a aplicar una fina película de lubricante por el área coloreada de rojo. Evita a toda costa lubricar la extensión inferior de la rama que hace contacto con la carcasa inferior del switch, dado que puedes ocasionar que se escuche un sonido no deseado al presionarlo.&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%2Feweawi1265zxxeh8upeq.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%2Feweawi1265zxxeh8upeq.jpg" alt="Lubricar rama" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Lubricar la carcasa inferior
&lt;/h3&gt;

&lt;p&gt;Con una herramienta de sujeción o pinza, toma la carcasa inferior por uno de sus bordes. Luego procede a aplicar una fina película por los patines donde se desliza la rama, tal como muestra el área coloreada de rojo. Procura también lubricar con el restante de material que queda en el pincel el cono que recibe la extensión de la rama &lt;strong&gt;solo por la parte exterior&lt;/strong&gt; (tal como muestra el área demarcada en rojo). No apliques lubricante por el área interior, dado que esto puede provocar un sonido no deseado al momento de presionar el switch.&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%2Fplulnqtw69wi7ohfkeso.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%2Fplulnqtw69wi7ohfkeso.jpg" alt="Lubricar carcasa inferior" width="800" height="362"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 14: Agregar el filme a cada switch y cerrarlo
&lt;/h2&gt;

&lt;p&gt;El paso final de modificación del switch es agregar un &lt;strong&gt;filme de switch&lt;/strong&gt; entre la carcasa superior e inferior.&lt;br&gt;
Se debe agregar cuidadosamente con una pinza de precisión en el lugar indicado por la imagen. El filme debe quedar alineado correctamente entre la carcasa superior e inferior&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%2Fn19pzytbuph5hajcvr54.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%2Fn19pzytbuph5hajcvr54.jpg" alt="Film Switch" width="800" height="692"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 15: Volver a armar el switch
&lt;/h2&gt;

&lt;p&gt;Para volver a armar un switch con sus partes ya lubricadas se deben realizar los siguientes pasos:&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%2Fzd96dygi2av4phh3kgdh.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%2Fzd96dygi2av4phh3kgdh.jpg" alt="Armar switches lubricados" width="800" height="203"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Dejar la carcasa inferior del switch sobre el abridor de switches con el filme de switch en su posición final.&lt;/li&gt;
&lt;li&gt;Con una pinza de precisión, poner el resorte lubricado sobre el cilindro en la carcasa inferior del switch.&lt;/li&gt;
&lt;li&gt;Con una pinza de precisión, poner la rama del switch sobre el resorte. Se deben alinear las paredes laterales de la rama con los patines de la carcasa inferior, donde se deslizan (recordar que ambas superficies deben estar lubricadas). Procura que las prolongaciones de la rama (las que interactúan con los contactos) miren a la parte posterior.&lt;/li&gt;
&lt;li&gt;En la mano, posiciona las patas de la carcasa superior sobre la carcasa inferior y aplica presión para cerrar el switch. Debes cerciorarte que el filme quede alineado entre ambas partes.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;Una superficie de lubricación de switches es una herramienta que puede facilitar mucho este proceso. Pueden encontrar de varias marcas y calidades en Amazon o Aliexpress.&lt;/p&gt;
&lt;/blockquote&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%2Fdcdple5jexhzette5dms.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%2Fdcdple5jexhzette5dms.jpg" alt="Superficie de lubricación" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Paso 16: Volver a montar los switches y probar
&lt;/h2&gt;

&lt;p&gt;Los switches ya lubricados se dejarán en una bolsa con cierre hermético para almacenarlos temporalmente.&lt;br&gt;
Una vez termines de lubricar cada uno, el siguiente paso es montarlos en la PCB.&lt;br&gt;
En este paso se debe tener extremo cuidado en no doblar los puntos de contacto con los socket hot-swapables, sino el switch no cerrará el circuito y no enviará la señal eléctrica. Tu tecla quedará inutilizada :sad:.&lt;br&gt;
Si esto te llegase a ocurrir, con mucho cuidado, endereza la pata del punto de contacto con una pinza de precisión.&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%2Fa5m6zxdux2vl5k4l5as7.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%2Fa5m6zxdux2vl5k4l5as7.jpg" alt="Listo para armar" width="800" height="920"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Es muy importante que se tenga mucho cuidado al volver a montar los switches en los sockets de la PCB, dado que en ocasiones los pines pueden doblarse si no encajan bien. &lt;strong&gt;Asegúrense de probar el funcionamiento de todas las teclas una vez terminado este proceso&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Como saber más
&lt;/h2&gt;

&lt;p&gt;Hay muchas comunidades en torno a los teclados mecánicos. Personalmente me uní a dos en Reddit en donde publican información constante: &lt;a href="https://www.reddit.com/r/MechanicalKeyboards/" rel="noopener noreferrer"&gt;/r/MechanicalKeyboards/&lt;/a&gt; y &lt;a href="https://www.reddit.com/r/Keychron/" rel="noopener noreferrer"&gt;r/Keychron/&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusiones
&lt;/h2&gt;

&lt;p&gt;Aun me falta mucho por aprender de teclados mecánicos. Todo lo necesario para poder modificar mi teclado lo leí de foros o vi en YouTube. Pero como dicen en Chile &lt;em&gt;"otra cosa es con guitarra"&lt;/em&gt;.&lt;br&gt;
Creo que mi mayor error fue la elección del lubricante, dado que el &lt;strong&gt;Krytox 105 y el G-Lube no se mezclan muy bien&lt;/strong&gt;. En los videos que revisé, la mezcla la realizaban con 105G y 205G era mucho menos viscosa y grumosa... Pero bueno!, a mi me gustó como quedaron lubricados mis switches 😄.&lt;br&gt;
Hubiese sido genial poder contar con una superficie de lubricación de switches durante este proceso. Creo que me hubiese facilitado mucho más la manipulación de las partes. Sin embargo, es un deseable, ya que perfectamente se puede completar el proceso sin esta herramienta.&lt;br&gt;
El siguiente desafío será armar un teclado desde cero. Para eso comenzaré a comprar todas las piezas y kits por separados y tratar de armar uno por mi cuenta 😄.&lt;br&gt;
Espero que esta guía te haya servido y que te motive a modificar tu teclado mecánico para ajustarse a tus necesidades!&lt;br&gt;
&lt;strong&gt;Si encuentras un concepto errado o mal descrito, házmelo saber para así poder corregirlo&lt;/strong&gt;.&lt;/p&gt;

</description>
      <category>keyboard</category>
      <category>lubbing</category>
      <category>mechanical</category>
      <category>switches</category>
    </item>
    <item>
      <title>Dual WAN: Cómo configurar failover de internet y no morir en el intento</title>
      <dc:creator>Nicolás Avila</dc:creator>
      <pubDate>Wed, 02 Jun 2021 15:22:47 +0000</pubDate>
      <link>https://dev.to/devschile/dual-wan-como-configurar-failover-de-internet-y-no-morir-en-el-intento-2ph7</link>
      <guid>https://dev.to/devschile/dual-wan-como-configurar-failover-de-internet-y-no-morir-en-el-intento-2ph7</guid>
      <description>&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Este post está escrito teniendo en consideración Internet Service Providers (ISP) Chilenos. Sin embargo, el principio aplica para cualquier compañía de cualquier país.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: No estoy afiliado con ninguna marca ni retailer. Solo publico los modelos y dónde compré todo con el fin de hacer el proceso más rápido si quieren implementar una solución similar en sus hogares.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h1&gt;
  
  
  Introducción
&lt;/h1&gt;

&lt;p&gt;Una de las ventajas de trabajar como programador/programadora es tener la posibilidad (en la gran mayoría de los casos) de realizar nuestras labores desde la comodidad de nuestro hogar. Para algunos esto puede ser mejor o peor, pero sin duda requerimos de algo muy importante: que no falle nuestro internet cuando más se requiere.&lt;br&gt;
La pandemia ha puesto a prueba a los proveedores de internet y ha evidenciado, en la gran mayoría de los casos, que la infraestructura necesaria para brindar un buen servicio es muy precaria (si: a ti te estoy mirando VTR 👀).&lt;br&gt;
Es por ello que, sin mucho conocimiento en redes (nunca he sido muy bueno para ello sinceramente. Me manejo en lo necesario para poder trabajar), decidí emprender el hermoso viaje de configurar una conexión redundante de internet en mi hogar. Lo que no sabía, era que no todo era llegar y conectar. Para alguien con muy pocos conocimientos en redes, esto puede ser desafiante, pero el objetivo es poder compartir mi experiencia y disminuir la brecha para que puedan lograr lo mismo por su cuenta.&lt;br&gt;
En este post compartiré mis hallazgos, materiales necesarios, así como consejos para hacer este camino menos tortuoso para otras personas. Si ves que algún concepto no está correctamente explicado o errado, por favor házmelo saber para poder corregirlo 😄.&lt;/p&gt;

&lt;h1&gt;
  
  
  ¿Qué es el Internet Failover?
&lt;/h1&gt;

&lt;p&gt;Básicamente es un método que nos permite levantar una conexión secundaria de internet (de forma automática) en caso de fallo de una conexión primaria. Como su descripción lo indica, esto requiere tener de dos conexiones contratadas. En mi caso particular tengo lo siguiente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Un plan con VTR&lt;/strong&gt;: Lamentablemente es la única compañía que tiene factibilidad técnica en mi edificio. Si bien, tengo el plan más alto (no es fibra óptica), la experiencia normalmente no es muy buena.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Un plan con WOM&lt;/strong&gt;: Este plan que contraté es de "Banda Ancha Móvil". Me pasaron un dispositivo pequeño, que sirve como "WiFi Hot Spot". Lamentablemente este dispositivo no tiene ningún puerto RJ45, por lo que tendría que arreglármelas para poder dejarlo como mi conexión secundaria de internet.&lt;/li&gt;
&lt;/ul&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%2Fx5jpnaia1s7mfs3cfn6e.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%2Fx5jpnaia1s7mfs3cfn6e.jpg" alt="Wi-Fi Hotspot Alcatel" width="800" height="467"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Problemas y planificación
&lt;/h1&gt;

&lt;p&gt;Los problemas que tenía eran los siguientes:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;La conexión de internet en mi hogar era muy inestable. Tenía muchos problemas de continuidad de internet: mis reuniones se caían frecuentemente 😠, las clases de mis hijos se interrumpían y venían reclamando cuando estaban en medio de sus partidas de Fortnite en los tiempos libres (tragedia)😅.&lt;/li&gt;
&lt;li&gt;La pieza de mis hijos tenía muy mala cobertura de señal WiFi, por lo que normalmente los veía jugando cerca del dintel de la puerta para agarrar mejor señal. Intentamos con un repetidor, pero sin muy buenos resultados.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para poder abordar ambos problemas, decidí ir por una solución que me permitiese tener un enlace redundante de internet y mejor calidad de Wi-Fi (así como lo hacen las empresas, pero en escala infinitamente más pequeña).&lt;br&gt;
Eso si me di cuenta que no sabía mucho del tema. Siempre he utilizado routers inalámbricos de nivel usuario, pero configurar una conexión failover de internet requería que estudiase más de &lt;br&gt;
algunas cosas (WAN, LAN, Balanceo de carga, DHCP, etc). Literalmente estaba como el perrito del popular meme:&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%2Fgv6tjtzi7xqn1w55ay3a.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%2Fgv6tjtzi7xqn1w55ay3a.jpg" alt="Perro Meme" width="620" height="465"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Para poder nivelar un poco los conocimientos, decidí ver algunos videos en Youtube. El canal de &lt;a href="https://www.youtube.com/user/NetworkChuck" rel="noopener noreferrer"&gt;NetworkChuck&lt;/a&gt; me sirvió mucho (y aparte explica de forma muy entretenida).&lt;br&gt;
Luego de adquirir algo de bagaje técnico, hice un plano de lo que tenía en mente:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;La conexión primaria de internet (VTR) viene por un cable UTP de varios metros al segundo piso, donde toda la familia habita.&lt;/li&gt;
&lt;li&gt;La conexión secundaria de internet (WOM, inalámbrica) se debe utilizar solo en caso de falla de la conexión primaria&lt;/li&gt;
&lt;li&gt;Un dispositivo debe poder determinar cuando una conexión falla, para así activar una u otra.&lt;/li&gt;
&lt;li&gt;Se necesita conectar mi PC mediante LAN y un Access Point para dar Wi-Fi a todo el piso.&lt;/li&gt;
&lt;/ol&gt;

&lt;h1&gt;
  
  
  Paso 1: Adquirir el equipo necesario
&lt;/h1&gt;

&lt;p&gt;Me di cuenta que para poder continuar con mi proyecto, necesitaba adquirir algo de equipamiento. Luego de investigar y cotizar un poco, di con los dispositivos que necesitaba adquirir.&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%2F1dipunf5o7774qio78rj.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%2F1dipunf5o7774qio78rj.jpg" alt="Cajas de productos" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;1 Router LTE&lt;/strong&gt;: Este router permitirá utilizar una SIM Card que tiene contratado el plan de Internet Móvil. Tiene antenas que utilizará para captar la señal LTE. El dispositivo que me entregó la compañía lamentablemente no tenía un puerto RJ45 para poder utilizarlo de una mejor forma. Elegí el modelo &lt;strong&gt;D-Link 4G N300 LTE&lt;/strong&gt;. Lo adquirí en el &lt;a href="https://www.spdigital.cl/products/view/77544" rel="noopener noreferrer"&gt;siguiente vínculo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 Router / Load Balancer&lt;/strong&gt;: Este router permitirá balancear las conexiones de internet. No tiene antenas, solo puertos para conectar otros cables, por lo que no me sirve para darle WiFi a la casa. Elegí el modelo &lt;strong&gt;TP-Link TL-R470T&lt;/strong&gt;. Lo adquirí en el &lt;a href="https://www.spdigital.cl/products/view/79212" rel="noopener noreferrer"&gt;siguiente vínculo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 Switch&lt;/strong&gt;: Este equipo permitirá conectar mi computador, el access point y cualquier otro equipo que requiera conexión por cable. Decidí ir por uno auto-administrado. Elegí el modelo &lt;strong&gt;TP-Link TL-SF1005P&lt;/strong&gt;. Lo adquirí en el &lt;a href="https://www.spdigital.cl/products/view/79220" rel="noopener noreferrer"&gt;siguiente vínculo&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;1 Access Point&lt;/strong&gt;: Este equipo permitirá conectar todos mis dispositivos Wi-Fi y entregar internet inalámbrico a los computadores de la casa y dispositivos de la casa (tablets y smart devices). Elegí el modelo &lt;strong&gt;TP-Link EAP225&lt;/strong&gt;. Lo adquirí en el &lt;a href="https://www.spdigital.cl/products/view/79593" rel="noopener noreferrer"&gt;siguiente vínculo&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;h1&gt;
  
  
  Paso 2: Cables
&lt;/h1&gt;

&lt;p&gt;Me fui por lo básico: construir mis propios cables 😅. Nunca antes había construido cables UTP, por lo que fue toda una experiencia aprender a hacerlo (ni les digo cuantos metros de cable hice mal, pero después le agarré el ritmo 💪). Necesitaba construir varios de diferentes longitudes, por lo que decidí comprar un cable pre-armado de 20 metros y ese usarlo para construir cables más cortos. También pueden adquirirlos ustedes si no quieren construir los suyos.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Existen varias categorías de cables. Particularmente utilicé un Cat5 el cual corté en varios cables mas pequeños y agregué los conectores RJ45 en cada extremo utilizando una herramienta para crimpear (es como un alicate especial que permite armar los cables).&lt;/li&gt;
&lt;/ul&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%2Fr2pkzv8r8zkxrq97cq08.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%2Fr2pkzv8r8zkxrq97cq08.png" alt="Crimpeando cables" width="800" height="873"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Si van a armar sus propios cables recuerden siempre probarlos!. Para ello pueden adquirir un tester de cables UTP y ver que todas las luces enciendan en el orden correcto. La siguiente imagen muestra como &lt;strong&gt;no deben&lt;/strong&gt; quedar los cables:&lt;/li&gt;
&lt;/ul&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%2Ffkemdh2tomkwndgrw401.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%2Ffkemdh2tomkwndgrw401.jpg" alt="Cable tester" width="688" height="598"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Paso 3: Configuración y conexión
&lt;/h1&gt;

&lt;p&gt;Ya era hora de la parte entretenida: empezar a conectar cables a los dispositivos y ver las luces parpadear.&lt;br&gt;
Luego de leer muy poco las instrucciones, lógicamente nada funcionaba, así que decidí partir de 0 y empezar a configurar dispositivo por dispositivo&lt;/p&gt;

&lt;h2&gt;
  
  
  Configurando el Router 4G LTE: D-Link 4G N300 LTE
&lt;/h2&gt;

&lt;p&gt;Lo primero que hice fue configurar mi conexión secundaria de internet. Saqué el chip del dispositivo que me entregó la compañía WOM y lo agregué en este dispositivo. La siguiente imagen muestra como debiese quedar.&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%2Fhvowus39z8anbeydfr37.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%2Fhvowus39z8anbeydfr37.jpg" alt="SIM Card en Router LTE" width="690" height="525"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Una vez puesto el chip, era hora de prender el dispositivo. Para poder ingresar al panel de administración, conecté mediante cable de red mi computador y este router. Abrí una consola, revisé cual era la puerta de enlace predeterminada e ingresé al panel de configuración.&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;Si están en Windows, lo que deben escribir en una terminal es &lt;code&gt;ipconfig /all&lt;/code&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Lo primero será cambiar el segmento de IP de este router, para así evitar cualquier posible conflicto de IP. Esto se logra en &lt;strong&gt;"Settings &amp;gt; LAN"&lt;/strong&gt;, donde debemos ingresar lo siguiente:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;IP Address&lt;/strong&gt;: Ingresar "192.168.1.254"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Subnet Mask&lt;/strong&gt;: Ingresar "255.255.255.0"&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Hacemos click en &lt;strong&gt;"Save and Apply"&lt;/strong&gt;. La siguiente imagen muestra como debiese quedar:&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%2Fxrn8qhx78kbr05rc816p.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%2Fxrn8qhx78kbr05rc816p.jpg" alt="LTE Menu 1" width="697" height="570"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Tendremos que ingresar nuevamente al panel de administración del router, ya que le acabamos de cambiar su dirección IP. En el navegador se debe ingresar a la dirección &lt;strong&gt;"192.168.1.254"&lt;/strong&gt; para así entrar nuevamente.&lt;br&gt;
El siguiente paso es la configuración de la conexión a internet móvil, para ello se debe ingresar a &lt;br&gt;
Para poder conectarse al internet móvil WOM utilicé la siguiente configuración:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;APN&lt;/strong&gt;: ingresar "datacard"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;IP Version&lt;/strong&gt;: seleccionar "IPV4"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marcar&lt;/strong&gt;: "Manual APN"&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Marcar&lt;/strong&gt;: "NAT"&lt;/li&gt;
&lt;/ul&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%2Fws7bje78lyisjmbtae4j.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%2Fws7bje78lyisjmbtae4j.jpg" alt="LTE Menu 2" width="696" height="620"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Es muy importante aquí utilizar los datos entregados, sobre todo el nombre de la APN, dado que la información de los APN disponibles en internet para WOM hacen referencia a su uso en celulares, más no en BAMs.&lt;/p&gt;

&lt;p&gt;No quiero que este dispositivo emita señal Wi-Fi (para eso tenemos el access point 😄), por lo que apagaré las antenas. Con esto solo se podrá acceder a router vía ethernet. Para ello, debemos dirigirnos a &lt;strong&gt;"Settings &amp;gt; Wi-Fi"&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%2Fuploads%2Farticles%2Fuhoxarwz0an71gr1mern.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%2Fuhoxarwz0an71gr1mern.jpg" alt="LTE Menu 3" width="696" height="582"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Si todo sale bien, finalmente tendremos algo similar a esto:&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%2Fg6tyykpxnnl86yh6ncft.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%2Fg6tyykpxnnl86yh6ncft.jpg" alt="LTE Menu 4" width="695" height="493"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Esquema de conexión:
&lt;/h3&gt;

&lt;p&gt;La siguiente imagen muestra cual debe ser el esquema de conexión de nuestro Router 4G LTE:&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%2F38szei17ry563ehtpxs9.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%2F38szei17ry563ehtpxs9.jpg" alt="Esquema conexión 1" width="800" height="804"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Instrucciones&lt;/strong&gt;: Conectar con un cable ethernet el puerto &lt;strong&gt;LAN1&lt;/strong&gt; del Router 4G LTE al puerto &lt;strong&gt;WAN2&lt;/strong&gt; del balanceador de carga.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  Resumen y comentarios de la configuración de este dispositivo:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cambiar la IP por defecto del router para evitar así conflictos de IP futuros.&lt;/li&gt;
&lt;li&gt;Para que funcione bien el internet móvil se debe utilizar el APN "datacard".&lt;/li&gt;
&lt;li&gt;Se ha deshabilitado el acceso por Wi-Fi. Solo es posible acceder conectando un cable Ethernet a uno de los puertos del router. Las antenas cumplirán la función de captar la señal 4G.&lt;/li&gt;
&lt;li&gt;Es importante cambiar la contraseña de administrador por motivos de seguridad. Nada es más fácil y propicio a los ataques que tener un usuario y contraseña por defecto &lt;code&gt;admin / admin&lt;/code&gt;.&lt;/li&gt;
&lt;/ul&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Configurando este dispositivo me di cuenta que posee un modo de Failover para internet. Sin embargo no se si funciona de la misma manera (en cuanto a performance) que mi método. Si alguien se anima a probarlo, estaré atento 👀&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Configurando el Balanceador de Carga: TP-Link TL-R470T
&lt;/h2&gt;

&lt;p&gt;Este dispositivo es el más importante, ya que es el corazón de todo el proyecto, por lo que pondremos especial cuidado en realizar todas las configuraciones en orden.&lt;br&gt;
El primer paso será cambiar la IP por defecto del dispositivo, para así evitar cualquier posible conflicto de IP. Nos dirigimos a la sección &lt;strong&gt;"Network &amp;gt; LAN"&lt;/strong&gt;, en el campo "IP Address" ingresaremos &lt;strong&gt;"192.168.2.1"&lt;/strong&gt; y presionaremos el botón "Save". Tendremos que volver a ingresar al dispositivo, pero ahora bajo la nueva dirección que acabamos de configurar.&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%2Fwgnznxnufztqemfd27ht.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%2Fwgnznxnufztqemfd27ht.jpg" alt="Cambio IP Balanceador" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego, veremos la parte más importante que es configurar las dos conexiones de internet. Para ello nos dirigimos a &lt;strong&gt;"Network &amp;gt; WAN"&lt;/strong&gt;. En esa vista, dejaremos la opción &lt;strong&gt;"WAN Mode"&lt;/strong&gt; en 2 y presionaremos el botón &lt;strong&gt;"Save"&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%2Fuploads%2Farticles%2Fz60r6vsfw2u1p5n400xh.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%2Fz60r6vsfw2u1p5n400xh.jpg" alt="Configuración WAN Balanceador" width="800" height="502"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Nos dirigiremos a la pestaña &lt;strong&gt;"WAN2"&lt;/strong&gt; presionaremos el botón "Connect". Si todo sale bien, veremos algo similar a esto:&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%2F1vuyzdbdt591j10rkujz.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%2F1vuyzdbdt591j10rkujz.jpg" alt="WAN2" width="800" height="365"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Ahora necesitaremos conectar nuestra conexión primaria de internet y configurarla. Para ello se debe conectar un cable Ethernet entre el modem (VTR en mi caso) y el puerto "WAN1" del balanceador de carga. El siguiente esquema muestra como debe quedar:&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%2Fps8htkv681c7ecaz3kyi.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%2Fps8htkv681c7ecaz3kyi.jpg" alt="Esquema conexión 2" width="800" height="645"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Volveremos a la sección anterior y esta vez nos dirigiremos a la pestaña &lt;strong&gt;"WAN1"&lt;/strong&gt;. Presionamos el botón "Connect". Si todo sale bien, veremos algo similar a esta imagen:&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%2Fdsiya8b6i6udod7yr7ai.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%2Fdsiya8b6i6udod7yr7ai.jpg" alt="WAN1" width="800" height="372"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Es necesario que ambas WANs estén en segmentos de red distintos, sino no va a funcionar (o al menos a mi no me funcionó). Por ejemplo: VTR en segmento &lt;strong&gt;192.168.0.XXX&lt;/strong&gt; y WOM en segmento &lt;strong&gt;192.168.1.XXX&lt;/strong&gt;.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Ya tenemos configuradas las dos conexiones a internet 🎉. Ahora solo nos falta configurar el failover, es decir, cuando la conexión primaria no esté disponible, debe automáticamente subir la segunda. Para ello nos dirigimos al menu &lt;strong&gt;"Transmission &amp;gt; Load Balancing"&lt;/strong&gt;. En esta pestaña haremos click sobre la opción &lt;strong&gt;"Enable Load Balancing"&lt;/strong&gt; y presionaremos el botón &lt;strong&gt;"Save"&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%2Fuploads%2Farticles%2Fvnv7ulkqyw4gyqxttnck.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%2Fvnv7ulkqyw4gyqxttnck.jpg" alt="Enable Load Balancing" width="800" height="472"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Luego en la pestaña &lt;strong&gt;"Link Backup"&lt;/strong&gt; haremos click sobre el botón &lt;strong&gt;"Add"&lt;/strong&gt;. En los campos nuevos ingresaremos:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Primary WAN&lt;/strong&gt;: WAN1&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Seconday WAN&lt;/strong&gt;: WAN2&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Mode&lt;/strong&gt;: Failover (Enable backup link when any primary WAN fails).&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Status&lt;/strong&gt;: Enable&lt;/li&gt;
&lt;/ul&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%2Feacmudmh9yvj6o47ajuz.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%2Feacmudmh9yvj6o47ajuz.jpg" alt="Link Backup" width="800" height="475"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Está listo el failover! 🎉. Hagamos una prueba! En la terminal de sistema escriban &lt;code&gt;ping -t devschile.cl&lt;/code&gt; y esperen un par de pings. Luego, desconecten el cable desde el puerto WAN1 y TA-DA! Mágicamente comenzarán a tener nuevamente internet automáticamente después de un par de pings perdidos. Por qué sucede esto? Porque recuerden que hemos configurado el link failover en nuestro dispositivo: si la conexión primaria cae, inmediatamente sube la segunda.&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%2Fp296lxgvitmqewpuzlyf.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%2Fp296lxgvitmqewpuzlyf.jpg" alt="Link backup test" width="800" height="687"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Resumen y comentarios de la configuración de este dispositivo:
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;Cambiar la IP por defecto del balanceador de carga para evitar así conflictos de IP futuros.&lt;/li&gt;
&lt;li&gt;Cambiar la contraseña por defecto de administración.&lt;/li&gt;
&lt;li&gt;Se debe configurar previamente los WANs 1 y 2 antes de configurar el Link Backup.&lt;/li&gt;
&lt;/ul&gt;

&lt;h2&gt;
  
  
  Conectando el switch: TP-Link TL-SF1005P
&lt;/h2&gt;

&lt;p&gt;Aun no hemos terminado con todos los objetivos propuestos inicialmente. Recuerden que aun mis hijos tienen muy mala señal Wi-Fi y toda la instalación hasta el momento considera cables LAN. Necesitamos poder configurar un switch que nos permita:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Conectar el access point.&lt;/li&gt;
&lt;li&gt;Conectar mi PC del trabajo (objetivo reciente 😄).&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Para ello debemos seguir el siguiente esquema de conexión:&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%2F6ub9th3cr83sd33ae6dj.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%2F6ub9th3cr83sd33ae6dj.jpg" alt="Conexiones switch" width="800" height="387"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Conectar un cable desde el puerto &lt;strong&gt;WAN3&lt;/strong&gt; del balanceador al puerto &lt;strong&gt;LAN5&lt;/strong&gt; del switch&lt;/li&gt;
&lt;li&gt;Conectar un cable desde el puerto &lt;strong&gt;LAN1&lt;/strong&gt; del switch al puerto principal del access point.&lt;/li&gt;
&lt;li&gt;Conectar un cable desde el puerto &lt;strong&gt;LAN2&lt;/strong&gt; del switch al puerto principal del PC.&lt;/li&gt;
&lt;/ol&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;Importante&lt;/strong&gt;: Hemos utilizado el puerto &lt;strong&gt;WAN3&lt;/strong&gt; del balanceador de carga porque el &lt;strong&gt;WAN Mode&lt;/strong&gt; del balanceador está en 2. Esto quiere decir que solo los primeros dos puertos están en modo WAN, el resto se puede utilizar como LAN.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h2&gt;
  
  
  Configurando el Access Point: TP-Link EAP225
&lt;/h2&gt;

&lt;p&gt;Este es último paso de la configuración. Debemos conectar el cable de red desde el puerto LAN1 al puerto principal de este dispositivo. Se va a prender automáticamente. Por qué ocurre esto? Porque este dispositivo obtiene corriente mediante el mismo cable de red (Power Over Ethernet o PoE)&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%2Fv4v6tboa3ubbqoudpgam.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%2Fv4v6tboa3ubbqoudpgam.jpg" alt="Access point en techo" width="800" height="721"&gt;&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;La configuración del access point es bastante sencilla. Básicamente se debe configurar la(s) SSID(s) para que los dispositivos puedan conectarse mediante Wi-Fi. Para ello nos dirigimos a "&lt;strong&gt;Wireless &amp;gt; Wireless Settings&lt;/strong&gt;" y configuramos una nueva red. Se debe elegir el tipo (1. 2.4Ghz o 5Ghz), luego presionar sobre el botón "&lt;strong&gt;Add&lt;/strong&gt;" (2) y finalmente llenar los campos necesarios para la nueva red (3).&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%2Fu1fermhlpqyh0v20w6sf.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%2Fu1fermhlpqyh0v20w6sf.jpg" alt="Configuración de access point" width="800" height="756"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;A modo de ejemplo, la siguiente imagen muestra la creación de una red llamada &lt;strong&gt;HUEMUL&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%2Fuploads%2Farticles%2Frsv8rj7qi1xg4u2p9zka.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%2Frsv8rj7qi1xg4u2p9zka.jpg" alt="Huemul Network" width="692" height="434"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Esquema final de la topología de red
&lt;/h1&gt;

&lt;p&gt;Ya hemos configurado todo lo necesario. Ahora ya tendremos conexión redundante de internet y no tendremos que preocuparnos más por los problemas de conexión. La siguiente imagen muestra como debiese quedar todo conectado.&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%2Ff2hqrxdzx93tabtb2uqw.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%2Ff2hqrxdzx93tabtb2uqw.jpg" alt="Topología final" width="800" height="539"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h1&gt;
  
  
  Conclusiones
&lt;/h1&gt;

&lt;p&gt;Este proyecto ha sido de gran ayuda para mejorar la calidad de internet en casa y un gran aprendizaje personal. Nunca he tenido muy buenos cimientos de redes y esto me obligó a estudiar un poco más al respecto.&lt;br&gt;
Configurar internet failover no es del todo complejo, pero si requiere estar atento a algunos detalles.&lt;br&gt;
Espero que esta guía les haya sido de utilidad y les guste tanto como a mi me gustó redactarla 🎉&lt;/p&gt;

</description>
      <category>internet</category>
      <category>failover</category>
      <category>load</category>
      <category>balancer</category>
    </item>
    <item>
      <title>How to validate your Jenkinsfile locally before committing</title>
      <dc:creator>Nicolás Avila</dc:creator>
      <pubDate>Sat, 20 Mar 2021 18:58:52 +0000</pubDate>
      <link>https://dev.to/nicoavila/how-to-validate-your-jenkinsfile-locally-before-committing-334l</link>
      <guid>https://dev.to/nicoavila/how-to-validate-your-jenkinsfile-locally-before-committing-334l</guid>
      <description>&lt;h2&gt;
  
  
  Background
&lt;/h2&gt;

&lt;p&gt;Continuous integration and deployment is a fun topic. I've learned a lot recently working on some projects at my actual job.&lt;br&gt;
The task can be a little intimidating sometimes, specially if you work with Jenkins. Don't get me wrong! Jenkins is an amazing tool. I just find the learning curve a little bit steeper compared to other solutions I've tried (&lt;a href="https://github.com/features/actions" rel="noopener noreferrer"&gt;Github Actions&lt;/a&gt;, &lt;a href="https://docs.gitlab.com/ee/ci/pipelines/" rel="noopener noreferrer"&gt;Gitlab CI/CD Pipelines&lt;/a&gt;, &lt;a href="https://buddy.works/" rel="noopener noreferrer"&gt;Buddy.works&lt;/a&gt;, etc).&lt;/p&gt;

&lt;p&gt;If you're not familiar with &lt;a href="https://www.jenkins.io/" rel="noopener noreferrer"&gt;Jenkins&lt;/a&gt;, it's an open-source CI/CD automation suite really popular in enterprise environments.&lt;br&gt;
To execute instructions, Jenkins uses an especial file called &lt;em&gt;Jenkinsfile&lt;/em&gt;. You can use two flavors:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Declarative Syntax&lt;/strong&gt;: A relatively new way to write pipeline instructions (first added in version 2.5 of "Pipeline Plugin"). More information &lt;a href="https://www.jenkins.io/doc/book/pipeline/syntax/" rel="noopener noreferrer"&gt;here&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Scripted Syntax&lt;/strong&gt;: The traditional way to write pipelines. This option strictly uses &lt;a href="https://groovy-lang.org/" rel="noopener noreferrer"&gt;Apache Groovy Lang&lt;/a&gt; syntax to declare every step of the pipeline.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;
  
  
  The Jenkinsfile
&lt;/h2&gt;

&lt;p&gt;When you work with Jenkins you have two choices to automate your pipelines:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Working with an inline pipeline&lt;/li&gt;
&lt;li&gt;Working with a Jenkinsfile.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;This is a very summarized example of how a Jenkinsfile looks:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight groovy"&gt;&lt;code&gt;&lt;span class="n"&gt;pipeline&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;agent&lt;/span&gt; &lt;span class="n"&gt;any&lt;/span&gt;

  &lt;span class="n"&gt;stages&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
    &lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"This is stage 1"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;steps&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Cool stuff goes here!&lt;/span&gt;
      &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;

    &lt;span class="n"&gt;stage&lt;/span&gt;&lt;span class="o"&gt;(&lt;/span&gt;&lt;span class="s2"&gt;"This is stage 2"&lt;/span&gt;&lt;span class="o"&gt;)&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
      &lt;span class="n"&gt;steps&lt;/span&gt; &lt;span class="o"&gt;{&lt;/span&gt;
        &lt;span class="c1"&gt;// Cool stuff goes here!&lt;/span&gt;
      &lt;span class="o"&gt;}&lt;/span&gt;
    &lt;span class="o"&gt;}&lt;/span&gt;
  &lt;span class="o"&gt;}&lt;/span&gt;
&lt;span class="o"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;blockquote&gt;
&lt;p&gt;I'm not going to explain the sections of the file here, but you can check this amazing video by TechWorld by Nana: &lt;a href="https://www.youtube.com/watch?v=7KCS70sCoK0" rel="noopener noreferrer"&gt;Complete Jenkins Pipeline Tutorial | Jenkinsfile explained&lt;/a&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;The recommendation is to work with a standalone Jenkinsfile because the steps to build, test and deploy your code will belong to the repository and can be versioned.&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%2Fkihyzmzvhgbv60pzxliq.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%2Fkihyzmzvhgbv60pzxliq.png" alt="Build mode selector" width="800" height="142"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem
&lt;/h2&gt;

&lt;p&gt;Every time that I'm working on a Jenkinsfile I make mistakes! 😓. The problem is: you need to commit and push those changes every time, run the pipeline and check if (this time) the pipeline will run. This adds unnecessary git history with syntax fixes (personally, I really hate writing 5 commits messages like &lt;code&gt;"fix(jenkins): syntax typo"&lt;/code&gt;). How you can avoid it? Well, the solution comes to use an extension of &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;VS Code&lt;/a&gt; 😄.&lt;/p&gt;

&lt;h2&gt;
  
  
  Validating Jenkinsfile with Visual Studio Code
&lt;/h2&gt;

&lt;p&gt;You will need:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;A Jenkins Server&lt;/li&gt;
&lt;li&gt;User credentials to Jenkins Server&lt;/li&gt;
&lt;li&gt;Visual Studio Code installed on your PC.&lt;/li&gt;
&lt;li&gt;Jenkins Pipeline Linter Connector for Visual Studio Code.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;First, you need to install &lt;strong&gt;Jenkins Pipeline Linter Connector&lt;/strong&gt; extension in your &lt;strong&gt;Extension&lt;/strong&gt; panel (Ctrl + Shift + X in Windows and Cmd + Shift + X in macOS)&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%2Fq1e383677jjhfm66euoy.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%2Fq1e383677jjhfm66euoy.png" alt="Jenkins Pipeline Linter Connector" width="800" height="150"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Once the installation process is finished, you need to configure it. Go to the &lt;strong&gt;Settings&lt;/strong&gt; section in VS Code (Ctrl + , in Windows and Cmd + , in macOS). In the &lt;strong&gt;"Search settings"&lt;/strong&gt; field write &lt;strong&gt;"Jenkins"&lt;/strong&gt;.&lt;br&gt;
Complete the fields below:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Connector Pass&lt;/strong&gt;: Enter your Jenkins user password here.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Connector URL&lt;/strong&gt;: Enter your Jenkins server URL here as the format below shows:
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;https://&amp;lt;JENKINS SERVER URL&amp;gt;/pipeline-model-converter/validate
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Connector User&lt;/strong&gt;: Enter your Jenkins username here.&lt;/li&gt;
&lt;/ul&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%2F39li7iz1jkj8sxephynb.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%2F39li7iz1jkj8sxephynb.png" alt="Configuring" width="800" height="616"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And that's it! Now you can lint your Jenkinsfile syntax by checking it against your remote Jenkins Server Linter 😄. To use it, open your Jenkinsfile and open the &lt;strong&gt;Command Pallette&lt;/strong&gt; and write "Validate Jenkins"&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%2Fn6skr1ja3k4zn9nuyg8k.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%2Fn6skr1ja3k4zn9nuyg8k.png" alt="Validating" width="715" height="74"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If the syntax of your file is valid, you'll have a message similar to this in the &lt;strong&gt;Output&lt;/strong&gt; tab.&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%2Fysxl3xlop5n2r9xahdlc.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%2Fysxl3xlop5n2r9xahdlc.png" alt="Output" width="408" height="81"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;Validating your Jenkinsfiles in your local environment can really improve the time you spent on writing pipelines. You can avoid common mistakes by simply validate the syntax regularly using the Jenkins Pipeline Linter Connector Extension for VS Code.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my post. You can follow me on &lt;a href="https://twitter.com/nicoavila_a" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; or if you like to support me you can also &lt;a href="https://www.buymeacoffee.com/nicoavila" rel="noopener noreferrer"&gt;buy me a coffee&lt;/a&gt; ☕.&lt;/p&gt;

&lt;h1&gt;
  
  
  References
&lt;/h1&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://www.jenkins.io" rel="noopener noreferrer"&gt;Jenkins&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://groovy-lang.org/documentation.html" rel="noopener noreferrer"&gt;Apache Groovy Language&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.jenkins.io/doc/book/pipeline/jenkinsfile/" rel="noopener noreferrer"&gt;Jenkinsfile Syntax&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://marketplace.visualstudio.com/items?itemName=janjoerke.jenkins-pipeline-linter-connector" rel="noopener noreferrer"&gt;Jenkins Pipeline Linter Connector Extension in VS Marketplace&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>vscode</category>
      <category>jenkins</category>
      <category>devops</category>
      <category>jenkinsfile</category>
    </item>
    <item>
      <title>Using Loupedeck Live to enhance your developer experience</title>
      <dc:creator>Nicolás Avila</dc:creator>
      <pubDate>Sun, 07 Mar 2021 20:34:08 +0000</pubDate>
      <link>https://dev.to/nicoavila/using-loupedeck-live-to-enhance-your-developer-experience-i8d</link>
      <guid>https://dev.to/nicoavila/using-loupedeck-live-to-enhance-your-developer-experience-i8d</guid>
      <description>&lt;p&gt;&lt;em&gt;&lt;strong&gt;Disclaimer&lt;/strong&gt;: I don't have any commercial affiliation with Loupedeck. I just think is an awesome tool 😄&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Recently I bought a &lt;a href="https://loupedeck.com/en/products/loupedeck-live?skip=true" rel="noopener noreferrer"&gt;Loupedeck Live&lt;/a&gt; with aims to enhance my developer workflow. After several weeks of use I cannot recommend it enought!. It's just an amazing tool that will improve your speed and make your developer experience easier.&lt;br&gt;
In this post I'll share my thougts, tips and how to use it.&lt;/p&gt;

&lt;h2&gt;
  
  
  What is Loupedeck Live?
&lt;/h2&gt;

&lt;p&gt;Loupedeck Live is a console made by &lt;a href="https://loupedeck.com/en" rel="noopener noreferrer"&gt;Loupedeck&lt;/a&gt;, a company based in Finland. They make hardware for creative audience, to improve workflow used by content creators, photographers and artists. &lt;br&gt;
The Live model consists on a surface with touch screen, dials and buttons that can be mapped to perform certain actions in a desired software. They have other models (CT, and +) that you can check on their official website.&lt;/p&gt;

&lt;p&gt;&lt;a href="http://www.youtube.com/watch?v=qeUskySBmI" rel="noopener noreferrer"&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%2F8f3jnlqxgny4knl4sj9s.jpg" alt="Loupedeck Live Product Video" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;What's lead me to use it for development? Well, I saw there's a developer program who able you to create your own plugins (more details below). I saw some videos on Youtube about custom usage with your own apps and I thought: "That's perfect! This mean I can control any software that uses hotkeys". I placed an order in Amazon and waited for the arrival of the package to my country to see how it works (I live in Chile, so it taked a while).&lt;/p&gt;

&lt;h2&gt;
  
  
  How it works
&lt;/h2&gt;

&lt;p&gt;Loupedeck devices are composed by three components:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Hardware console&lt;/strong&gt;: This is the physical controller to interact. Is build in very firmly plastic material. You have 6 dials that can be pressed and a touchscreen bar at each side. At the center of the device, you have three rows four touchscreen buttons. You can swipe left / right to change pages of control. At the bottom you have five buttons.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Software&lt;/strong&gt;: The Loupedeck hardware doesn't work standalone. You need to install a proxy software that will map the actions on the hardware to the target application. Loupedeck comes with predefined applications to work. You can also create your own custom profile in order to control every app you want.&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Target application to control&lt;/strong&gt;: Is the targeted application you want control. You make sure your application has hotkeys combinations (ex: Cmd + Shift + D) or keyboard bindings.&lt;/li&gt;
&lt;/ul&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%2F7csqjx9yk8owikyfyijj.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%2F7csqjx9yk8owikyfyijj.png" alt="Loupedeck - How it works" width="800" height="257"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Using Loupedeck with VS Code
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;To follow the steps below, you need a &lt;strong&gt;Loupedeck Live&lt;/strong&gt; device and the Loupedeck software installed on your machine.&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;I work a lot with &lt;a href="https://code.visualstudio.com/" rel="noopener noreferrer"&gt;Visual Studio Code&lt;/a&gt;, so this is my first application I tried to map. To check the Keyboard Shortucuts you can press Cmd + K + Cmd + S (on macOS) or Ctrl + K + Ctrl + S (on Windows).&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%2Fc32ock8szx9kd6u5i1s5.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%2Fc32ock8szx9kd6u5i1s5.png" alt="VS Code Keyboard Bindings" width="800" height="437"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;Here you can simply add a keyboard shortcut by pressing a desired command. For this example, I want to map the &lt;strong&gt;Docker view&lt;/strong&gt; on VS Code using Ctrl + Shift + Alt + 1 (if you don't have the Docker extension installed, you can download it &lt;a href="https://marketplace.visualstudio.com/items?itemName=ms-azuretools.vscode-docker" rel="noopener noreferrer"&gt;here&lt;/a&gt;).&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;First go to &lt;strong&gt;Keyboard Bindigs&lt;/strong&gt; in Visual Studio Code.&lt;/li&gt;
&lt;li&gt;In the search bar (1) write &lt;strong&gt;"docker view"&lt;/strong&gt; and find the &lt;strong&gt;"View: Show Docker"&lt;/strong&gt; row (2).&lt;/li&gt;
&lt;/ul&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%2Fq0vwx5vky6zm0by2e5vl.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%2Fq0vwx5vky6zm0by2e5vl.png" alt="VS Code Keybindings Docker" width="800" height="374"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Press the plus icon (+) and press Ctrl + Shift + Alt + 1 (in order)&lt;/li&gt;
&lt;/ul&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%2Fwxivg5c4h5z8lrr9ec1f.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%2Fwxivg5c4h5z8lrr9ec1f.png" alt="New key binding" width="447" height="157"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Open your Loupedeck software at your computer and go to &lt;strong&gt;"Application"&lt;/strong&gt; &amp;gt; &lt;strong&gt;"Add Application"&lt;/strong&gt;.&lt;/li&gt;
&lt;/ul&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%2Ffu1di39pnf5lxiwenzyl.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%2Ffu1di39pnf5lxiwenzyl.png" alt="Loupedeck application" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;In the &lt;strong&gt;Application&lt;/strong&gt; section, select "VS Code" app. Fill the other fields as you want and click &lt;strong&gt;"Save"&lt;/strong&gt; button.&lt;/li&gt;
&lt;/ul&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%2Fend2b55wtcqatloo3ljp.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%2Fend2b55wtcqatloo3ljp.png" alt="Add new application Loupedeck" width="572" height="574"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To add a new custom action to VS Code, you need to press the plus (+) icon at the right of &lt;strong&gt;"Custom"&lt;/strong&gt; in the section &lt;strong&gt;Press Actions&lt;/strong&gt; (1). Then add a new action by fill the needed fields: In the &lt;strong&gt;Action name&lt;/strong&gt; field enter &lt;em&gt;"View docker"&lt;/em&gt;. On the shortcut field, press Ctrl + Shift + Alt + 1 (in order)(2), then click the OK icon. To finish, press the &lt;em&gt;"Save"&lt;/em&gt; button.&lt;/li&gt;
&lt;/ul&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%2Ff9odxjtkwu4hdmo4kz22.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%2Ff9odxjtkwu4hdmo4kz22.png" alt="New custom action" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;To finish, drag the recently created custom action to the touchscreen panel as the image shows.&lt;/li&gt;
&lt;/ul&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%2Fdx7fbtvdzmiizdqjbmmc.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%2Fdx7fbtvdzmiizdqjbmmc.png" alt="Drag action" width="800" height="500"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;And there you go! Every time you open VS Code, your Loupedeck Hardware will show the "View docker" action (make sure to have the &lt;strong&gt;Dynamic Mode&lt;/strong&gt; enabled).&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%2Ftwacrnlwdbkyg4b4q45r.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%2Ftwacrnlwdbkyg4b4q45r.png" alt="Dynamic mode" width="104" height="48"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;h2&gt;
  
  
  Extend Loupedeck Live usage below: Plugin development
&lt;/h2&gt;

&lt;p&gt;Loupedeck have a &lt;a href="https://developer.loupedeck.com/" rel="noopener noreferrer"&gt;developer program&lt;/a&gt; in order to develop custom plugins using their SDK (C#) to enhance the usage possibilities. However, the current documentation is outdated and they encourage not to use right now.&lt;br&gt;
I was very lucky to have a meeting with the B2B manager of Loupedeck few months ago. She told me there's a plan to release a new version of the SDK this year (TBA). Meanwhile, you can create a new account and wait for the official release of the SDK. Stay tuned at their Twitter account 👀&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusions
&lt;/h2&gt;

&lt;p&gt;Loupedeck devices are great hardware to improve the workflow of a broad audience. Developers can use this consoles in order to make their work faster. You can control almost every app you want by simply map the keyboard shortcuts into the Loupedeck Software on your PC or macOS.&lt;/p&gt;

&lt;h2&gt;
  
  
  Closing
&lt;/h2&gt;

&lt;p&gt;Thank you for reading my post. You can follow me on &lt;a href="https://twitter.com/nicoavila_a" rel="noopener noreferrer"&gt;Twitter&lt;/a&gt; or if you like to support me you can also &lt;a href="https://www.buymeacoffee.com/nicoavila" rel="noopener noreferrer"&gt;buy me a coffee&lt;/a&gt; ☕.&lt;/p&gt;

&lt;h2&gt;
  
  
  References
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;&lt;a href="https://loupedeck.com/en/products/loupedeck-live?skip=true" rel="noopener noreferrer"&gt;Loupedeck Live - Official website&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://developer.loupedeck.com" rel="noopener noreferrer"&gt;Loupedeck Developer Program&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/groups/288228331658986" rel="noopener noreferrer"&gt;Loupedeck User Group in Facebook&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href="https://www.facebook.com/groups/220851678960601" rel="noopener noreferrer"&gt;Loupedeck CT SDK in Facebook&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;

</description>
      <category>developer</category>
      <category>tools</category>
      <category>loupedeck</category>
      <category>vscode</category>
    </item>
  </channel>
</rss>
