<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Blog on 0x00</title>
    <link>https://0x00.cl/es/blog/</link>
    <description>Recent content in Blog on 0x00</description>
    <language>es-cl</language>
    <managingEditor>tomas@0x00.cl (Tomás Gutiérrez L.)</managingEditor>
    <webMaster>tomas@0x00.cl (Tomás Gutiérrez L.)</webMaster>
    <lastBuildDate>Sun, 19 Oct 2025 16:47:39 -0300</lastBuildDate>
    <atom:link href="https://0x00.cl/es/blog/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Old Computer Challenge - Web moderna para el ZX Spectrum</title>
      <link>https://0x00.cl/es/blog/2025/occ-2025/</link>
      <pubDate>Sun, 19 Oct 2025 16:47:39 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2025/occ-2025/</guid>
      <description>&lt;p&gt;El año pasado &lt;a href=&#34;https://0x00.cl/es/blog/2024/occ-2024/&#34;&gt;participé&lt;/a&gt; en el &lt;a href=&#34;http://occ.sdf.org/&#34;&gt;reto OCC&lt;/a&gt;, pero entre el trabajo y la vida personal me olvidé por completo de él. Por suerte, vi una publicación en internet de alguien que estaba haciendo el reto y me acordé. No quería perderme el reto de este año, ya que el año pasado fue divertido aprender algo nuevo, así que espero que no sea demasiado tarde.&lt;/p&gt;&#xA;&lt;p&gt;El reto de este año consistía en un proyecto DIY: podías crear tu propio reto OCC. Así que pensé que sería divertido intentar recrear un sitio web y su navegación para el ZX Spectrum usando BASIC y las limitadas capacidades gráficas del ordenador.&lt;/p&gt;</description>
    </item>
    <item>
      <title>A CUDA SHAllenge</title>
      <link>https://0x00.cl/es/blog/2025/a-cuda-shallenge/</link>
      <pubDate>Wed, 01 Jan 2025 06:30:00 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2025/a-cuda-shallenge/</guid>
      <description>&lt;p&gt;Hace unos meses, el usuario &amp;ldquo;quirino&amp;rdquo; publicó &lt;a href=&#34;https://news.ycombinator.com/item?id=40683564&#34;&gt;en HackerNews (HN) un interesante &lt;em&gt;shallenge&lt;/em&gt;&lt;/a&gt;. &lt;a href=&#34;https://shallenge.quirino.net/&#34;&gt;Encuentra el valor de hash SHA256 más bajo&lt;/a&gt; para una cadena con un formato determinado:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Envía una cadena con el formato &amp;ldquo;{username}/{nonce}&amp;rdquo;, donde:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;username: de 1 a 32 caracteres de a-zA-Z0-9_-&lt;/li&gt;&#xA;&lt;li&gt;nonce: de 1 a 64 caracteres en Base64 (a-zA-Z0-9+/)&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Cuando se publicó esto, quise participar, competir con otros usuarios, hacer que mi código funcionara lo más rápido posible y ver si tenía suerte encontrando un valor de hash bajo.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Old Computer Challenge - TC 2048 (1984) (Clon del ZX Spectrum 48K)</title>
      <link>https://0x00.cl/es/blog/2024/occ-2024/</link>
      <pubDate>Fri, 02 Aug 2024 06:40:13 -0400</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2024/occ-2024/</guid>
      <description>&lt;p&gt;Recientemente leí sobre el &lt;a href=&#34;https://occ.deadnet.se/&#34;&gt;Old Computer Challenge (OCC)&lt;/a&gt;, y pensé que sería un reto divertido de aceptar. Aquí tienes una pequeña descripción de su página de &lt;a href=&#34;https://occ.deadnet.se/about/&#34;&gt;acerca de&lt;/a&gt;:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;La comunidad del Old Computer Challenge es un pequeño grupo de entusiastas a los que les gusta usar hardware de ordenadores antiguos y cada año se reúnen para retarse a sí mismos a pasar una sola semana en julio exclusivamente con máquinas que muchos considerarían obsoletas.&lt;/p&gt;&#xA;&lt;/blockquote&gt;</description>
    </item>
    <item>
      <title>Explorando certificados TLS y sus limites</title>
      <link>https://0x00.cl/es/blog/2024/exploring-tls-certs/</link>
      <pubDate>Sat, 13 Jul 2024 09:15:32 -0400</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2024/exploring-tls-certs/</guid>
      <description>&lt;p&gt;Mientras configuraba el servidor para mi &lt;a href=&#34;https://0x00.cl/blog/2024/pet-adoption-platform&#34;&gt;pet adoption platform&lt;/a&gt;, tuve que configurar &lt;a href=&#34;https://en.wikipedia.org/wiki/Transport_Layer_Security&#34;&gt;TLS&lt;/a&gt; y utilicé &lt;a href=&#34;https://certbot.eff.org/&#34;&gt;certbot&lt;/a&gt; para obtener un certificado de &lt;a href=&#34;https://letsencrypt.org/&#34;&gt;Let&amp;rsquo;s Encrypt&lt;/a&gt;. Aunque esto fue fácil de hacer, una cosa &amp;ldquo;molesta&amp;rdquo; de los certificados de Let&amp;rsquo;s Encrypt es que solo son válidos durante 90 días y, con la forma en que había configurado mi servidor, no encontré ninguna alternativa para renovarlos automáticamente. Por lo tanto, tuve que iniciar sesión en el servidor y realizar el proceso manualmente cada 90 días.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Creación de una plataforma de adopción de mascotas</title>
      <link>https://0x00.cl/es/blog/2024/pet-adoption-platform/</link>
      <pubDate>Sat, 13 Apr 2024 17:51:44 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2024/pet-adoption-platform/</guid>
      <description>&lt;p&gt;En septiembre del año pasado decidí empezar un nuevo proyecto, una plataforma de adopción para mascotas. Era una idea que tenía desde hacía tiempo pero simplemente no había tenido tiempo para empezar a trabajar en ella, pero ahora que tenía suficiente tiempo y que también quería aprender más sobre el desarrollo de aplicaciones web, en el sentido de cómo se implementan, empecé a trabajar en ello.&lt;/p&gt;&#xA;&lt;p&gt;Elegí &lt;a href=&#34;https://github.com/pallets/flask/&#34;&gt;Flask&lt;/a&gt; para empezar a desarrollar la aplicación web porque me sentía cómodo usando Python y porque Flask es un framework popular y sencillo. Debido a su simplicidad no tiene ninguna funcionalidad de gestión de usuarios ni un ORM de base de datos, pero sí permite escribir extensiones para ampliar sus funciones. Como mi aplicación web va a tener usuarios, necesitaré una base de datos para almacenarlos, así que en lugar de escribir consultas SQL puras y tener que lidiar con &lt;a href=&#34;https://owasp.org/www-community/attacks/SQL_Injection&#34;&gt;ataques de inyección SQL&lt;/a&gt;, consultas complejas y no optimizadas, elegí usar un ORM (mapeador de objetos relacionales), &lt;a href=&#34;https://github.com/sqlalchemy/sqlalchemy&#34;&gt;SQLAlchemy&lt;/a&gt;, que es el ORM más popular para Python. Los beneficios de un ORM como SQLAlchemy, aparte de lo mencionado anteriormente, es que &lt;a href=&#34;https://docs.sqlalchemy.org/en/20/dialects/index.html&#34;&gt;soporta múltiples bases de datos&lt;/a&gt;, por lo que con solo cambiar la URL en la configuración puedes cambiar la base de datos que utilizas sin tener que lidiar con posibles problemas de sintaxis en tu consulta.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Haciendo mi propia batería para una videocámara antigua</title>
      <link>https://0x00.cl/es/blog/2023/making-my-own-battery/</link>
      <pubDate>Sun, 06 Aug 2023 14:00:27 -0400</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2023/making-my-own-battery/</guid>
      <description>&lt;p&gt;Tengo una cámara antigua de los 90, una Sony CCD-TR403 (parece ser la misma que la CCD-TR66 excepto por la diferencia en el zoom digital). Después de más de 20 años, la batería original, una Ni-Cd de 3000 mAh (NP-98), dura solo unos minutos antes de apagarse. Hace unos años, hace aproximadamente 6 años, compré una batería de repuesto de una &amp;ldquo;marca&amp;rdquo; alternativa en Amazon; aunque duró más que la original, no duraba más de unos pocos minutos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Teclado mecánico Aigo A68</title>
      <link>https://0x00.cl/es/blog/2023/mechanical-keyboard/</link>
      <pubDate>Fri, 30 Jun 2023 00:08:19 -0400</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2023/mechanical-keyboard/</guid>
      <description>&lt;p&gt;Mi teclado mecánico actual, que también es mi primero, es un &lt;a href=&#34;https://web.archive.org/web/20230630145033/https://www.corsair.com/us/en/p/keyboards/ch-9000040-na/vengeance-k65-compact-mechanical-gaming-keyboard-ch-9000040-na&#34;&gt;Corsair Vengeance K65 (Cherry MX Red)&lt;/a&gt; y lo he estado usando durante unos 7 años sin ningún problema técnico, pero con el tiempo he tenido problemas con su diseño. No me importaba mucho el diseño cuando lo compré, no es como si fuera a estar mirándolo durante horas de todos modos, ¿verdad? y estaba acostumbrado a los teclados de membrana baratos. Con los teclados de membrana recuerdo haber intentado jugar a juegos y tener problemas de ghosting (no poder presionar varias teclas al mismo tiempo), algo que en ese momento ni siquiera sabía que existía hasta que un día leí sobre los teclados mecánicos, los cuales supuestamente se sienten mejor al escribir porque los switches son mecánicos y no tienen el problema de ghosting, así que decidí comprar uno. En ese momento eran &amp;ldquo;caros&amp;rdquo;, no solo porque empezaban a ponerse de moda, sino porque yo estaba acostumbrado a los teclados de membrana baratos. Se sentía genial, el sonido y la escritura, por supuesto la calidad del producto era excelente.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Explorando Nim</title>
      <link>https://0x00.cl/es/blog/2022/nim-lang/</link>
      <pubDate>Tue, 27 Dec 2022 17:24:06 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2022/nim-lang/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://nim-lang.org/&#34;&gt;Nim&lt;/a&gt; es un lenguaje de programación y, mientras navegaba por Reddit, alguien lo sugirió en los comentarios como una alternativa a Python porque la sintaxis era similar, así que decidí revisarlo.&lt;/p&gt;&#xA;&lt;p&gt;Según el sitio web de Nim, la descripción es:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;Nim es un lenguaje de programación de sistemas compilado y de tipado estático. Combina conceptos exitosos de lenguajes maduros como Python, Ada y Modula.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;La eficiencia es una de las prioridades de Nim.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Python requests Tips and Tricks</title>
      <link>https://0x00.cl/es/blog/2022/requests-tips-and-tricks/</link>
      <pubDate>Mon, 14 Feb 2022 09:09:57 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2022/requests-tips-and-tricks/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://pepy.tech/project/requests&#34;&gt;Requests&lt;/a&gt; es uno de los módulos HTTP más populares para Python y por una buena razón, es fácil de usar. ¿Quieres obtener información de una API REST o simplemente de un sitio web? Solo haz una petición GET &lt;code style=&#34;font-size:1.1em;color:#9E6900;word-wrap:anywhere&#34;&gt;requests.get(&#34;https://example.com&#34;)&lt;/code&gt; y a cambio obtendrás un objeto que tiene &lt;em&gt;headers&lt;/em&gt;, &lt;em&gt;status code&lt;/em&gt; y &lt;em&gt;text&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Si revisas la documentación de &lt;a href=&#34;https://docs.python-requests.org/en/latest/&#34;&gt;requests&lt;/a&gt;, una de las primeras cosas que verás son ejemplos sobre cómo usarlo, que es lo que cualquiera usaría para probarlo. Pero la documentación también tiene una sección de &amp;ldquo;Uso avanzado&amp;rdquo;, que para un programador principiante puede ser un poco intimidante o quizás el código proporcionado por el ejemplo te funcione, ¿verdad? Bueno, hay información importante en el uso avanzado que puede mejorar la robustez y velocidad de tu código, la cual debería estar en la página de inicio de la documentación. Así que en este blog compartiré lo que encontré con ejemplos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Una plantilla simple de Python</title>
      <link>https://0x00.cl/es/blog/2022/python-template/</link>
      <pubDate>Fri, 07 Jan 2022 12:28:30 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2022/python-template/</guid>
      <description>&lt;p&gt;Python es un lenguaje de programación muy, si no el más, popular. Según &lt;a href=&#34;https://pypl.github.io/PYPL.html&#34;&gt;PYPL&lt;/a&gt; desde 2017-2018 Python ha estado en la parte superior de la popularidad de los lenguajes de programación. Su sintaxis sencilla lo hace fácil de aprender, las funciones integradas y los tipos lo hacen fácil de transformar datos. Las universidades usan Python para enseñar programación a principiantes y cada vez que alguien quiere aprender programación pero no sabe por dónde empezar la respuesta es casi siempre &lt;em&gt;&lt;a href=&#34;https://automatetheboringstuff.com/&#34;&gt;Automate the Boring Stuff with Python&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Una visita temprana de Navidad</title>
      <link>https://0x00.cl/es/blog/2021/early-christmas-visit/</link>
      <pubDate>Sat, 11 Dec 2021 20:39:53 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2021/early-christmas-visit/</guid>
      <description>&lt;p&gt;Hace unas semanas, después de publicar mi entrada de blog &lt;a href=&#34;https://0x00.cl/blog/2021/unwanted-ssh-connections&#34;&gt;Conexiones (ssh) no deseadas&lt;/a&gt;, cambié el puerto SSH por defecto (22) por uno diferente que no estuviera en uso, ya que no quería que los logs se llenaran con máquinas/IPs aleatorias intentando realizar ataques de fuerza bruta. Durante unos días, los logs en &lt;code style=&#34;font-size:1.1em;color:#9E6900;word-wrap:anywhere&#34;&gt;/var/log/secure&lt;/code&gt; estuvieron silenciosos, pero para mi sorpresa, los logs volvieron a registrar múltiples intentos con solo unos pocos milisegundos de diferencia entre cada intento; definitivamente no estaban intentando ser discretos.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Configurando un sitio web en Gemini (una alternativa a HTTP)</title>
      <link>https://0x00.cl/es/blog/2021/gemini-website/</link>
      <pubDate>Fri, 05 Nov 2021 21:00:18 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2021/gemini-website/</guid>
      <description>&lt;p&gt;Estaba navegando por nuevas publicaciones en &lt;a href=&#34;https://join-lemmy.org/&#34;&gt;Lemmy&lt;/a&gt; (similar a reddit, para el fediverse) y me topé con un proyecto llamado &lt;a href=&#34;https://weblite.codeberg.page/&#34;&gt;The Weblite project&lt;/a&gt;, que quiere definir nuevas especificaciones para que la web sea más ligera y sea más fácil desarrollar navegadores para ella, pero aún es muy nuevo. &amp;ldquo;HTMLite&amp;rdquo;, una de sus especificaciones, aún está en la revisión 0, así que estaré atento para cuando publiquen una nueva revisión.&lt;/p&gt;&#xA;&lt;p&gt;Mientras leía su sitio web, &lt;a href=&#34;https://gemini.circumlunar.space/&#34;&gt;Gemini&lt;/a&gt; llamó mi atención; es un &amp;ldquo;nuevo&amp;rdquo; protocolo similar a HTTP con la diferencia de que la especificación es muy simple, está enfocado en la privacidad y define un formato de archivo muy sencillo para servir archivos sobre Gemini, lo que lo hace ligero.&lt;/p&gt;</description>
    </item>
    <item>
      <title>Conexiones (ssh) no deseadas</title>
      <link>https://0x00.cl/es/blog/2021/unwanted-ssh-connections/</link>
      <pubDate>Sat, 09 Oct 2021 17:14:27 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2021/unwanted-ssh-connections/</guid>
      <description>&lt;p&gt;Hace unos días arrendé un servidor en un proveedor de VPS con una IP pública IPv4, para probar algunas herramientas, aprender otras nuevas y quizás tener algunos servicios personales funcionando.&#xA;Así que instalé &lt;a href=&#34;https://rockylinux.org/&#34;&gt;Rocky Linux 8.4&lt;/a&gt; para probarlo y una de las primeras cosas que quise verificar fueron los intentos de ssh a mi servidor, ya que era el único servicio abierto a internet, pero noté que no había ningún archivo que registrara esto, así que tuve que editar el archivo &lt;code style=&#34;font-size:1.1em;color:#9E6900;word-wrap:anywhere&#34;&gt;/etc/rsyslog.conf&lt;/code&gt; y me aseguré de que esta línea estuviera descomentada:&lt;/p&gt;</description>
    </item>
    <item>
      <title>Mi primer blog</title>
      <link>https://0x00.cl/es/blog/2021/my-first-blog/</link>
      <pubDate>Tue, 14 Sep 2021 18:54:38 -0300</pubDate><author>tomas@0x00.cl (Tomás Gutiérrez L.)</author>
      <guid>https://0x00.cl/es/blog/2021/my-first-blog/</guid>
      <description>&lt;p&gt;¡Sí! Esta es mi primera entrada de blog. Es algo así como el equivalente a &amp;ldquo;Hello, World!&amp;rdquo; en programación, pero para blogs.&lt;/p&gt;&#xA;&lt;p&gt;Entiendo que esta primera entrada probablemente no sea interesante para nadie, pero desde algún lugar tengo que empezar, ¡además de qué tipo de blog sería sin ninguna entrada!&lt;/p&gt;&#xA;&lt;p&gt;Espero que esto me motive a escribir más y a bloguear sobre las cosas que he aprendido. :)&lt;/p&gt;</description>
    </item>
  </channel>
</rss>
