<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Typcod Blog]]></title><description><![CDATA[Noticias e información relevante sobre cómo Typcod desarrolla tecnología segura y escalable al alcance de tu negocio. ]]></description><link>https://blog.typcod.com/</link><image><url>https://blog.typcod.com/favicon.png</url><title>Typcod Blog</title><link>https://blog.typcod.com/</link></image><generator>Ghost 4.48</generator><lastBuildDate>Fri, 17 Apr 2026 05:54:50 GMT</lastBuildDate><atom:link href="https://blog.typcod.com/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[Coma entrometida]]></title><description><![CDATA[La coma que no quería irse. Cómo cambiar la coma por punto en MacOs. Remap comma to dot in MacOs.]]></description><link>https://blog.typcod.com/coma-entrometida/</link><guid isPermaLink="false">60fa3bf0e363e50001e54f7f</guid><category><![CDATA[Cómo se hace]]></category><dc:creator><![CDATA[Héctor Salazar]]></dc:creator><pubDate>Sat, 24 Jul 2021 03:16:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1589979565269-4595c87d276f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE1NXx8a2V5Ym9hcmR8ZW58MHx8fHwxNjI3MDE0ODg0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1589979565269-4595c87d276f?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDE1NXx8a2V5Ym9hcmR8ZW58MHx8fHwxNjI3MDE0ODg0&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Coma entrometida"><p>Recientemente jubil&#xE9; mi vieja computadora Linux por una elegante MacBook Pro M1. S&#xED;, mi primera Mac. Pero no te adelantes, esto no se trata de una rese&#xF1;a tras N d&#xED;as de uso, ni es un <em>benchmark</em> del prometedor procesador creado por Apple, o el cl&#xE1;sico <em>versus</em> de lo que te puedas imaginar. Mucho menos es una opini&#xF3;n desde el punto de vista de un ingeniero de software. En serio, de eso ya hay mucho. Basta una vuelta r&#xE1;pida por Youtube o una b&#xFA;squeda cero exhaustiva en Google y entender&#xE1;s.</p><p>En fin. Despu&#xE9;s de las primeras horas jugando con la Mac, estaba encantado. Aunque oficialmente mi primer contacto fue con una iMac G3 en un sal&#xF3;n de clases cuando estudiaba ingl&#xE9;s, no fue hasta esta ocasi&#xF3;n que realmente experimentaba con una. Daba clicks aqu&#xED; y all&#xE1;, cambiando configuraciones, personaliz&#xE1;ndola. Entonces lleg&#xF3; el momento de conectarla al monitor; emparejar teclado, mouse inal&#xE1;mbricos y &#xA1;listo! Estaba preparado para comenzar la jornada en Typcod.</p><h3 id="primera-intromisi%C3%B3n">Primera intromisi&#xF3;n</h3><p>Me es m&#xE1;s productivo usar un teclado completo. Al insertar valores num&#xE9;ricos es m&#xE1;s c&#xF3;modo para m&#xED; que un teclado tenga su propia secci&#xF3;n dedicada &#xFA;nicamente a n&#xFA;meros. Mi sorpresa lleg&#xF3; al estar ingresando una cifra decimal y ver en pantalla que al ingresar un punto, &#xE9;ste se sustitu&#xED;a por una coma. R&#xE1;pidamente deduje que no hab&#xED;a modificado la distribuci&#xF3;n del teclado a Espa&#xF1;ol ISO, pero no, eso ya lo hab&#xED;a hecho. Pens&#xE9; adem&#xE1;s que los par&#xE1;metros de idioma y regi&#xF3;n no eran los adecuados; tampoco.</p><p>Buscando por la web, hall&#xE9; un atajo para conseguir el punto:</p><!--kg-card-begin: markdown--><p><strong><code>Ctrl</code></strong> + <strong><code>Shift</code></strong> + <strong><code>,</code></strong></p>
<!--kg-card-end: markdown--><p>Serv&#xED;a, pero no era la mejor soluci&#xF3;n, al menos no para m&#xED;. No me agrada la idea de combinar teclas para conseguir un s&#xED;mbolo b&#xE1;sico que el propio teclado ya tiene. </p><p>M&#xE1;s tarde, al cabo de varios minutos, StackExchange lleg&#xF3; al rescate. Como era de esperarse, hab&#xED;a varias alternativas. Hab&#xED;a quienes suger&#xED;an usar alguna aplicaci&#xF3;n para hacer el mapeo de teclas. Por ejemplo <a href="https://karabiner-elements.pqrs.org/">Karabiner-Elements</a> o <a href="https://software.sil.org/ukelele/">Ukelele</a> son buenas opciones, pero a decir verdad les veo potencial desperdiciado para modificar una sola tecla. Me parecen excelentes para flujos de trabajo m&#xE1;s complejos y quiz&#xE1; en alg&#xFA;n momento necesite de sus servicios.</p><p>Yo requer&#xED;a de una soluci&#xF3;n menos elaborada, simple.</p><h3 id="soluci%C3%B3n-a-medias">Soluci&#xF3;n a medias</h3><!--kg-card-begin: markdown--><p>MacOs tiene un mecanismo para cambiar la configuraci&#xF3;n de teclas mediante texto en formato clave-valor: los archivos <code>.dict</code>.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Encontr&#xE9; en esta <a href="https://apple.stackexchange.com/a/324428">respuesta</a> que si agregaba el archivo <code>DefaultKeyBinding.dict</code> bajo la carpeta <code>~/Library/KeyBindings/</code> pod&#xED;a f&#xE1;cilmente conseguir el resultado esperado. El contenido del archivo es el siguiente:</p>
<!--kg-card-end: markdown--><pre><code class="language-ini">{
  &quot;#,&quot; = (&quot;insertText:&quot;, &quot;.&quot;);
}</code></pre><!--kg-card-begin: markdown--><p>N&#xF3;tese como <code>#</code> precede a <code>,</code> en la clave, para indicar que la sustituci&#xF3;n aplique exclusivamente para el pad num&#xE9;rico. Posteriormente tienes que cerrar e iniciar sesi&#xF3;n nuevamante.</p>
<!--kg-card-end: markdown--><p>En ese instante estaba satisfecho. La coma entrometida se hab&#xED;a ido y yo pod&#xED;a continuar. Abr&#xED; Visual Studio Code y durante horas trabaj&#xE9; sin inconvenientes hasta que lleg&#xF3; el turno de abrir la terminal. Ah&#xED; amargamente me di cuenta de que la intrusa hab&#xED;a vuelto, pero esta vez para atacar directamente a <em>vscode</em>. En otras aplicaciones la coma se esfum&#xF3;, pero para colmo, no de mi entorno principal de desarrollo.</p><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://images.unsplash.com/photo-1512581574034-6f1da619c5fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxzYWR8ZW58MHx8fHwxNjI3MDE1MzQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Coma entrometida" loading="lazy" width="2823" height="1933" srcset="https://images.unsplash.com/photo-1512581574034-6f1da619c5fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxzYWR8ZW58MHx8fHwxNjI3MDE1MzQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1512581574034-6f1da619c5fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxzYWR8ZW58MHx8fHwxNjI3MDE1MzQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1512581574034-6f1da619c5fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxzYWR8ZW58MHx8fHwxNjI3MDE1MzQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1512581574034-6f1da619c5fa?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDM0fHxzYWR8ZW58MHx8fHwxNjI3MDE1MzQx&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 720px) 720px"><figcaption>Photo by <a href="https://unsplash.com/@benhershey?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Ben Hershey</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><p>Como ten&#xED;a demasiadas actividades lo dej&#xE9; por la paz temporalmente. No iba a abandonar todo por arreglar aquello que ni siquiera me deten&#xED;a, ya tendr&#xED;a tiempo para intentarlo de nuevo.</p><h3 id="adi%C3%B3s-comez%C3%B3n">Adi&#xF3;s comez&#xF3;n</h3><!--kg-card-begin: markdown--><p>Dos semanas lidi&#xE9; con el escozor interior de mi cabeza, acentuado cada que utilizaba la terminal incorporada de Visual Studio Code. Mi intuici&#xF3;n me indicaba que deb&#xED;a ajustar los <em>key bindings</em> o &quot;atajos&quot; de la aplicaci&#xF3;n, de tal modo que al presionar el punto &#xE9;ste se convirtiera en punto y no en coma. As&#xED; que entr&#xE9; a la <a href="https://code.visualstudio.com/docs/getstarted/keybindings">documentaci&#xF3;n</a> para ver c&#xF3;mo cambiarlos. La sintaxis del archivo de configuraci&#xF3;n <code>keybindings.json</code> es sencilla, el inconveniente real es saber cu&#xE1;les son sus argumentos.</p>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><p>Vi un <a href="https://code.visualstudio.com/docs/getstarted/keybindings#_command-arguments">ejemplo</a> que llam&#xF3; mi atenci&#xF3;n. En &#xE9;l se inserta el texto <code>Hello World</code> al teclear <code>Enter</code>. Esto es parecido a lo que quiero, pens&#xE9;, pero para la terminal y con la coma. Combin&#xE1;ndolo con el <a href="https://code.visualstudio.com/docs/editor/integrated-terminal#_send-text-via-a-keybinding">c&#xF3;mo enviar texto a la terminal</a> cre&#xE9; mi propio <em>key binding</em>:</p>
<!--kg-card-end: markdown--><pre><code class="language-json">{
        &quot;key&quot;: &quot;numpad_decimal&quot;,
        &quot;command&quot;: &quot;workbench.action.terminal.sendSequence&quot;,
        &quot;args&quot;: { &quot;text&quot;: &quot;.&quot; }
}</code></pre><p>Funcion&#xF3; con un insignificante detalle. Se sustitu&#xED;a la coma por el punto en la terminal, incluso cuando no la estaba utilizando. Por supuesto ahora estaba peor. &#xBF;Por qu&#xE9; se enviar&#xED;a un punto a la terminal si no quer&#xED;a escribir en la terminal?</p><p>Ya casi lo ten&#xED;a. S&#xF3;lo hac&#xED;a falta encontrar un argumento que condicionara el mapeo. Examin&#xE9; los atajos que vienen por default y finalmente di con la soluci&#xF3;n del tan ansiado punto.</p><pre><code class="language-json">{
        &quot;key&quot;: &quot;numpad_decimal&quot;,
        &quot;command&quot;: &quot;workbench.action.terminal.sendSequence&quot;,
        &quot;args&quot;: { &quot;text&quot;: &quot;.&quot; },
        &quot;when&quot;: &quot;terminalFocus&quot;
}</code></pre><!--kg-card-begin: markdown--><p>La respuesta: agregar <code>&quot;when&quot;: &quot;terminalFocus&quot;</code>. As&#xED; s&#xF3;lo se insertar&#xED;a el punto al estar espec&#xED;ficamente en la terminal.</p>
<!--kg-card-end: markdown--><p>La comez&#xF3;n se ha ido. Claro, es moment&#xE1;neo, mientras arriba la pr&#xF3;xima. Por ahora me resta disfrutar del punto que s&#xED; es punto.</p>]]></content:encoded></item><item><title><![CDATA[Initial Commit]]></title><description><![CDATA[Primer publicación oficial en Typcod Blog. Nuestro initial commit.]]></description><link>https://blog.typcod.com/initial-commit/</link><guid isPermaLink="false">60f857cff1dd520001f59822</guid><category><![CDATA[Anuncios y comunicados]]></category><dc:creator><![CDATA[Héctor Salazar]]></dc:creator><pubDate>Wed, 21 Jul 2021 21:44:00 GMT</pubDate><media:content url="https://images.unsplash.com/photo-1594323713852-9626155bfd37?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDh8fHdlbGNvbWV8ZW58MHx8fHwxNjI2ODkzODM3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" medium="image"/><content:encoded><![CDATA[<img src="https://images.unsplash.com/photo-1594323713852-9626155bfd37?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDh8fHdlbGNvbWV8ZW58MHx8fHwxNjI2ODkzODM3&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" alt="Initial Commit"><p>Hasta este momento, hab&#xED;a sido un consumidor ordinario de contenido. Desde las redes sociales m&#xE1;s populares como Facebook o Youtube, hasta los blogs m&#xE1;s especializados sobre temas de mi inter&#xE9;s. </p><p>He sido admirador de la capacidad que tiene la gente de imaginar, dise&#xF1;ar y ejecutar lo que sus pensamientos quieren transmitir. No es tarea sencilla; requiere de una labor de introspecci&#xF3;n impresionante, pues analizar y ordenar las ideas resulta tan agotador como una rutina en el gimnasio. Por supuesto se trata de un agotamiento mental, pero el desgaste ocurre con la misma intensidad.</p><p>Fundamos <a href="https://www.typcod.com"><strong>Typcod</strong></a> hace un a&#xF1;o, pero me aventur&#xE9; a dejar la comodidad &#xA0;de un empleo con un sueldo seguro y recurrente, hace cuatro. A lo largo de este tiempo he invertido incontables horas en aprender cosas nuevas, desarrollando prototipos de software/hardware que me han quitado el sue&#xF1;o muchas noches.</p><p>Divertido y frustrante son dos buenos adjetivos para describir mi aventura, y tras muchos altibajos siento la necesidad de detenerme un poco, observar hacia atr&#xE1;s para compartir algunos de los souvenirs que he recolectado en el trayecto.</p><p>Este espacio est&#xE1; pensado para recordar el trabajo previo a <strong>Typcod</strong>, mostrar lo que <strong>Typcod</strong> hace ahora y plantear los proyectos futuros que tenemos en mente. No obstante, no todo es seriedad y trabajo. Tambi&#xE9;n ver&#xE1;s, de vez en vez, contenido acerca de nuestros <em>hobbies</em> o actividades de ocio: porque son sumamente importantes para mantenerse equilibrado, con energ&#xED;a.</p><p>Con esta primer publicaci&#xF3;n, me estreno como contribuyente al basto contenido que la Web ofrece e iniciamos tambi&#xE9;n oficialmente <strong>Typcod Blog</strong>.</p><figure class="kg-card kg-image-card kg-width-wide kg-card-hascaption"><img src="https://images.unsplash.com/photo-1488998427799-e3362cec87c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUzfHxibG9nfGVufDB8fHx8MTYyNjg5NDk4NQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2000" class="kg-image" alt="Initial Commit" loading="lazy" width="4600" height="3067" srcset="https://images.unsplash.com/photo-1488998427799-e3362cec87c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUzfHxibG9nfGVufDB8fHx8MTYyNjg5NDk4NQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=600 600w, https://images.unsplash.com/photo-1488998427799-e3362cec87c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUzfHxibG9nfGVufDB8fHx8MTYyNjg5NDk4NQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1000 1000w, https://images.unsplash.com/photo-1488998427799-e3362cec87c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUzfHxibG9nfGVufDB8fHx8MTYyNjg5NDk4NQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=1600 1600w, https://images.unsplash.com/photo-1488998427799-e3362cec87c3?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=MnwxMTc3M3wwfDF8c2VhcmNofDUzfHxibG9nfGVufDB8fHx8MTYyNjg5NDk4NQ&amp;ixlib=rb-1.2.1&amp;q=80&amp;w=2400 2400w" sizes="(min-width: 1200px) 1200px"><figcaption>Photo by <a href="https://unsplash.com/@jeshoots?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">JESHOOTS.COM</a> / <a href="https://unsplash.com/?utm_source=ghost&amp;utm_medium=referral&amp;utm_campaign=api-credit">Unsplash</a></figcaption></figure><blockquote>A nombre de todo el equipo <strong>Typcod</strong>, te doy una c&#xE1;lida bienvenida.<strong> </strong>Espero verte de nuevo muy pronto.</blockquote>]]></content:encoded></item></channel></rss>