<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Home on JesusMarin.Dev</title>
    <link>https://jesusmarin.dev/</link>
    <description>Recent content in Home on JesusMarin.Dev</description>
    <generator>Hugo</generator>
    <language>es-VE</language>
    <managingEditor>contacto [ a T ] jesusmarin.dev (Jesus Marin)</managingEditor>
    <webMaster>contacto [ a T ] jesusmarin.dev (Jesus Marin)</webMaster>
    <lastBuildDate>Fri, 12 Sep 2025 00:00:00 +0000</lastBuildDate>
    <atom:link href="https://jesusmarin.dev/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Usos básico de Tmux</title>
      <link>https://jesusmarin.dev/blog/usos-basicos-de-tmux/</link>
      <pubDate>Fri, 12 Sep 2025 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/usos-basicos-de-tmux/</guid>
      <description>&lt;figure&gt;&#xA;  &lt;blockquote class=&#34;blockquote&#34;&gt;&#xA;    &lt;p&gt;tmux es un multiplexor de terminales: permite crear, acceder y controlar varios terminales desde una sola pantalla. tmux se puede separar de una pantalla y seguir ejecutándose en segundo plano, para luego volver a conectarse.&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;    &lt;figcaption class=&#34;blockquote-footer&#34;&gt;&#xA;      De su repositorio en Github&#xA;    &lt;/figcaption&gt;&#xA;  &#xA;&lt;/figure&gt;&#xA;&lt;p&gt;Tmux es muy similar a &lt;code&gt;screen&lt;/code&gt;, sin embargo, dispone de características que, en mi opinión, hacen su uso más sencillo e intuitivo.&lt;/p&gt;&#xA;&lt;h1 id=&#34;instalación&#34;&gt;Instalación&lt;/h1&gt;&#xA;&lt;p&gt;Tmux está disponible en los repositorios de casi cualquier distribución Linux, por lo que su instalación suele limitarse a un solo comando con el gestor de paquetes que corresponda a tu distribución Linux.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Principios SOLID en Ruby</title>
      <link>https://jesusmarin.dev/blog/principios_solid_en_ruby/</link>
      <pubDate>Fri, 08 Nov 2024 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/principios_solid_en_ruby/</guid>
      <description>&lt;p&gt;Del artículo en la Wikipedia:&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;blockquote class=&#34;blockquote&#34;&gt;&#xA;    &lt;p&gt;En ingeniería de software, SOLID (Single responsibility, Open-closed, Liskov substitution, Interface segregation and Dependency inversion) es un acrónimo mnemónico introducido por Robert C. Martin a comienzos de la década del 2000 que representa cinco principios básicos de la programación orientada a objetos y el diseño. Cuando estos principios se aplican en conjunto es más probable que un desarrollador cree un sistema que sea fácil de mantener y ampliar con el tiempo. Los principios SOLID son guías que pueden ser aplicadas en el desarrollo de software para eliminar malos diseños provocando que el programador tenga que refactorizar el código fuente hasta que sea legible y extensible. Puede ser utilizado con el desarrollo guiado por pruebas, y forma parte de la estrategia global del desarrollo ágil de software y desarrollo adaptativo de software.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Ejemplo de interfaz en programación orientada a objetos</title>
      <link>https://jesusmarin.dev/blog/ejemplo-de-interfaces-en-programacion-orientada-a-objetos/</link>
      <pubDate>Thu, 06 Jun 2024 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/ejemplo-de-interfaces-en-programacion-orientada-a-objetos/</guid>
      <description>&lt;p&gt;En programación orientada a objetos, una interfaz (también llamada &lt;strong&gt;protocolo&lt;/strong&gt;)&#xA;es un tipo de datos que actúa como abstracción de una clase.&#xA;Esta describe un conjunto de firmas de métodos, cuyas implementaciones pueden&#xA;ser proporcionadas por varias clases que, por lo demás, no están&#xA;necesariamente relacionadas entre sí. Se dice que una clase que proporciona&#xA;los métodos enumerados en un protocolo adopta el protocolo o implementa la interfaz.&lt;/p&gt;&#xA;&lt;h1 id=&#34;ejemplo-en-java&#34;&gt;Ejemplo en Java&lt;/h1&gt;&#xA;&lt;p&gt;A pesar de que no programo en Java y no lo conozco mucho, este lenguaje es uno de los que, junto a C/C++, se recomiendan para aprender conceptos como este, debido a que son justamente lenguajes orientados a objetos que implementan Interfaz. Además de eso, se pueden encontrar muchos ejemplos y documentación que usan Java.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Principios de la programación orientada a objetos</title>
      <link>https://jesusmarin.dev/blog/principios-de-la-programacion-orientada-a-objetos/</link>
      <pubDate>Tue, 07 May 2024 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/principios-de-la-programacion-orientada-a-objetos/</guid>
      <description>&lt;p&gt;Del artículo en la Wikipedia:&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;blockquote class=&#34;blockquote&#34;&gt;&#xA;    &lt;p&gt;La programación orientada a objetos (POO) es un paradigma de programación que parte del concepto de &amp;ldquo;objetos&amp;rdquo; como base, los cuales contienen información en forma de campos (a veces también referidos como atributos cualidades o propiedades) y código en forma de métodos.&lt;/p&gt;&#xA;  &lt;/blockquote&gt;&#xA;  &#xA;&lt;/figure&gt;&#xA;&lt;p&gt;La programación orientada a objetos se basa en varios principios que ayudan a diseñar sistemas más eficientes y mantenibles.&#xA;A continuación, algunos de los principios fundamentales de la POO:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Usos básico de Podman</title>
      <link>https://jesusmarin.dev/blog/usos-basicos-de-podman/</link>
      <pubDate>Wed, 01 May 2024 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/usos-basicos-de-podman/</guid>
      <description>&lt;p&gt;De su repositorio Github.&lt;/p&gt;&#xA;&lt;figure&gt;&#xA;  &lt;blockquote class=&#34;blockquote&#34;&gt;&#xA;    &lt;p&gt;Podman (the POD MANager) es una herramienta para gestionar contenedores e imágenes, volúmenes montados en esos contenedores y pods formados a partir de grupos de contenedores. Podman ejecuta contenedores en Linux, pero también puede utilizarse en sistemas Mac y Windows utilizando una máquina virtual gestionada por Podman. Podman se basa en libpod, una biblioteca para la gestión del ciclo de vida de los contenedores que también se encuentra en este repositorio. La librería libpod proporciona APIs para la gestión de contenedores, pods, imágenes de contenedores y volúmenes.&lt;/p&gt;</description>
    </item>
    <item>
      <title>CV de Jesus Marin</title>
      <link>https://jesusmarin.dev/cv/</link>
      <pubDate>Wed, 20 Mar 2024 08:00:00 -0700</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/cv/</guid>
      <description>&lt;p&gt;Soy un experimentado desarrollador &lt;strong&gt;Ruby on Rails&lt;/strong&gt; con más de 9 años de&#xA;experiencia en la construcción de aplicaciones web. Tengo un historial&#xA;de entrega de soluciones elegantes y fáciles de usar utilizando tecnologías&#xA;de vanguardia y las mejores prácticas de la industria.&lt;/p&gt;&#xA;&lt;p&gt;Mis competencias principales incluyen &lt;strong&gt;Ruby&lt;/strong&gt;, &lt;strong&gt;Rails&lt;/strong&gt;, &lt;strong&gt;REST APIs&lt;/strong&gt;, &lt;strong&gt;web scraping&lt;/strong&gt;,&#xA;&lt;strong&gt;HTML&lt;/strong&gt;, &lt;strong&gt;CSS&lt;/strong&gt;, y &lt;strong&gt;Rspec&lt;/strong&gt;. También tengo habilidades intermedias&#xA;en &lt;strong&gt;JavaScript&lt;/strong&gt;, y algunos conocimientos de &lt;strong&gt;React&lt;/strong&gt; y &lt;strong&gt;Node.js&lt;/strong&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Crea una red VPN con Headscale</title>
      <link>https://jesusmarin.dev/blog/crea-una-red-vpn-con-headscale/</link>
      <pubDate>Wed, 31 May 2023 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/crea-una-red-vpn-con-headscale/</guid>
      <description>&lt;p&gt;Es muy probable que hayas escuchado o leído en el pasado sobre &lt;a href=&#34;https://tailscale.com/&#34;&gt;Tailscale&lt;/a&gt;,&#xA;el servicio basado en wireguard con el que puedes crear una red VPN entre&#xA;tus dispositivos para acceder a recursos remotos de forma segura.&#xA;Pues bien, existe una implementación open-source de su servidor de&#xA;control llamado &lt;a href=&#34;https://headscale.net/&#34;&gt;Headscale&lt;/a&gt; la cual puedes alojar tu mismo y tener así mayor control&#xA;de tu red vpn.&lt;/p&gt;&#xA;&lt;h1 id=&#34;requisitos&#34;&gt;Requisitos&lt;/h1&gt;&#xA;&lt;p&gt;Según la documentación oficial, al momento de escribir esto solo especifica que es requerido&#xA;tener Ubuntu 20.04 o superior y Debian 11 o superior. No menciona más nada.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creando un cluster Kubernetes con K3s y K3sup</title>
      <link>https://jesusmarin.dev/blog/creando-cluster-kubernet-k3sup-k3s/</link>
      <pubDate>Tue, 25 Apr 2023 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/creando-cluster-kubernet-k3sup-k3s/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://ispz.b-cdn.net/rails/active_storage/representations/proxy/eyJfcmFpbHMiOnsiZGF0YSI6MTAsInB1ciI6ImJsb2JfaWQifX0=--a83c6d9f279b67ec9870f3924a08cb38648efb13/eyJfcmFpbHMiOnsiZGF0YSI6eyJmb3JtYXQiOiJwbmciLCJyZXNpemVfdG9fbGltaXQiOlszNTAsMzUwXX0sInB1ciI6InZhcmlhdGlvbiJ9fQ==--9744bf5f7a4d2a91fff7932a7126070765a68041/k3sup.png&#34; alt=&#34;K3sup logo&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Como he comentado ya, desde hace poco he estado aprendiendo un poco acerca de Kubernetes. Luego&#xA;de probar algunas soluciones de clúster administrado, me interesé por la posibilidad de&#xA;desplegar un clúster desde cero con las máquinas o VPS de mi elección para así poder&#xA;comprender un poco más la arquitectura y funcionamiento de Kubernetes.&lt;/p&gt;&#xA;&lt;p&gt;Sin embargo, tampoco me quería complicar la vida como en el pasado cuando Kubernetes&#xA;tenía poco tiempo de haber salido al público, realmente es innecesario dado que en la&#xA;actualidad hay múltiples formas de crear un clúster Kubernetes desde cero sin&#xA;mucha complicación.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Desplegando una app Rails en Kubernetes</title>
      <link>https://jesusmarin.dev/blog/desplegando-rails-app-en-kubernetes/</link>
      <pubDate>Fri, 14 Apr 2023 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/desplegando-rails-app-en-kubernetes/</guid>
      <description>&lt;p&gt;Desde que salió al público Kubernetes, siempre me llamo la atención esta herramienta para desplegar&#xA;aplicaciones, pero se me hacía confusa de usar. Además de que en sus inicios crear un clúster Kubernetes&#xA;era bastante complicado, yo mismo lo intenté y era muy engorroso, además de que no era muy estable hacerlo&#xA;en vps ya que eran propenso a fallos.&lt;/p&gt;&#xA;&lt;p&gt;En los últimos años, han aparecido servicios administrados de Kubernetes, con lo que es mucho más fácil obtener&#xA;un clúster listo para usar. La verdad sí que son fáciles de usar, con solo unos clics y unos minutos, ya tienes un clúster&#xA;preparado y listo para desplegar cualquier aplicación dockerizada que desees. Ya no tienes que&#xA;levantar y configurar múltiples VPS, instalar binarios en ellos e interconectarlos para generar el clúster.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Dockerizando una aplicación Rails</title>
      <link>https://jesusmarin.dev/blog/dockerizando-una-aplicacion-rails/</link>
      <pubDate>Mon, 13 Feb 2023 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/dockerizando-una-aplicacion-rails/</guid>
      <description>&lt;p&gt;Desde que trabajo como programador he usado contenedores Docker en mis entornos de desarrollo, el principal uso que les he dado es principalmente para los servidores de bases de datos en local, en lugar de instalar en el sistema operativo un servidor PostgreSQL, Redis o MongoDB, simplemente iniciaba un contenedor y listo, ya tenía lo que necesitaba para que las aplicaciones persistan su estado.&lt;/p&gt;&#xA;&lt;p&gt;Sin embargo, sabía que podía sacarle más provecho a Docker si lo usaba para algo más que bases de datos en local, por lo que hice mis primeras pruebas para dockerizar algunas de mis aplicaciones Rails; sin embargo, en este primer intento, no tuve mucho éxito. Constantemente presentaba problemas a la hora de compilar assets, preparar las variables de entorno a mi gusto y conectar con el contenedor de base de datos en aplicaciones que lo requerían.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Entendiendo la notacion octal de los permisos de sistemas en Linux</title>
      <link>https://jesusmarin.dev/blog/entendiendo-la-notacion-octal-de-los-permisos-del-sistema-en-linux/</link>
      <pubDate>Thu, 11 Nov 2010 00:00:00 +0000</pubDate><author>contacto [ a T ] jesusmarin.dev (Jesus Marin)</author>
      <guid>https://jesusmarin.dev/blog/entendiendo-la-notacion-octal-de-los-permisos-del-sistema-en-linux/</guid>
      <description>&lt;p&gt;Si administras un servidor, una cuenta de hosting o usas una distro Linux es muy probable que en algun momento hayas tenido que cambiar los permisos a alguna carpeta o archivo. En sistemas Linux comunmente se usa el comando chmod seguido de un conjunto de letras y simbolos (notacion simbolica) o seguido de una cifra de 3 digitos (notacion octal), pero en ocasiones usamos estos permisos sin saber que significan o que estan haciendo realmente ya que copiamos el comando de alguna guia o pagina.&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
