Por qué quiero crear mi propio cliente HTTP gráfico

En los últimos tiempos, he visto como aplicaciones populares para ejecutar interactivamente peticiones HTTP, como Postman o Insomnia, perdían completamente el norte en pro de lo que imagino que es una orden de los inversores de cada equipo de desarrollo de dejar de quemar dinero en un programa cuya definición es «cURL pero gráfico» y llevaban a cabo movimientos hostiles contra sus usuarios.

Postman, en particular, intentó retirar el soporte local para scratchpads, obligando a crear una cuenta para hacer peticiones HTTP. Hubo gente que no se lo tomó bien y cuando empezaron a sacar las antorchas, decidieron en su lugar poner el «lightweight client», que es básicamente retirar funciones que previamente funcionaban y esconderlas detrás de un muro. ¿Quieres guardar una petición para repetirla luego? Búscala en el historial… o inicia sesión. ¿No quieres crear una cuenta? Pues dile adiós a tus datos locales.

Casi a la vez, Insomnia intentó hacer la misma jugada. De una versión a otra, sustituyeron la pantalla de inicio de la aplicación por un mensaje de inicio de sesión, sin dar si quiera posibilidad a exportar los datos que ya tuvieses guardados dentro de ella. ¿Quieres ver de vuelta tus peticiones? Dame tus datos antes. Con esto de las actualizaciones automáticas, no mucha gente tuvo tiempo de parar y se dieron cuenta cuando ya era demasiado tarde. La gente sacó las antorchas de nuevo, y el equipo de Insomnia dio marcha atrás cuando vieron la reacción de la gente.

Sigue leyendo

Montaje automático de discos USB en Arch Linux

Los entornos de escritorio grandes (como GNOME o KDE) probablemente harán esto por ti. Pero ¿cómo se hace fuera de las grandes? Hace poco tuve que enchufar mi memoria USB en Arch Linux para poder quemar una ISO (es para lo que han quedado). ¿Cómo se haría para enchufar y disfrutar, sin tener que abrir la terminal y escribir el comando mount?

Sigue leyendo

pacdef como gestor declarativo de paquetes en Arch (y Arch-like)

Mi problema con los gestores de paquetes es que a menudo instalo cosas para probarlas, esas cosas instalan dependencias, luego me olvido de borrar los paquetes una vez me dejan de hacer falta, o si lo hago, estas se olvidan de borrar sus dependencias y dejan un sistema con paquetes innecesarios y con suciedad acumulada.

Una de mis formas favoritas de resolver esto, es con herramientas que permitan declarar en un archivo la lista de paquetes que debe tener un ordenador. Como un package.json o un requirements.txt, pero a nivel sistema operativo. En cualquier caso, un mantenimiento periódico de la lista de paquetes es altamente recomendable para mantener limpio el ordenador, bajo mi punto de vista.

Sigue leyendo

El FrankenMac ahora usa Arch Linux

El FrankenMac (diminutivo cariñoso de Mac-Frankenstein) es el nombre cariñoso que recibe mi viejo MacBook Pro. Cuando lo reemplacé por un Mac Mini el año pasado, el portátil se fue al cajón por falta de uso. Como igualmente ya no recibía actualizaciones de seguridad por parte de Apple, eventualmente decidí borrar su disco duro e instalar EndeavourOS en él, donde se ha convertido en un ordenador para hacer experimentos antes de ensuciar mi otro ordenador.

La razón por la que elegí EndeavourOS fue porque quería una distribución tipo Arch, que es lo que ya de por sí uso en mi torre, pero no quería hacerlo a mano todavía, ya que por muchas veces que haya instalado Arch en sobremesas, en portátiles nunca lo había hecho a mano, y me daba pereza ponerme a aprender cómo configurar el wifi o cómo instalar los paquetes térmicos.

Más de medio año después, he aprendido lo suficiente sobre administración de un Arch-like en este portátil como para no tenerle miedo a la versión original, así que aprovechando ciertos experimentos que quiero llevar a cabo, he decidido reconvertirlo a una instalación de Arch Linux.

Sigue leyendo

Generar AppImages con AppImageKit

Para un proyecto estoy generando ejecutables para GNU/Linux, y el compilador me produce una carpeta con una distribución de archivos. Carpeta bin/ con el ejecutable, carpeta lib/ con las .so… Podría empaquetar eso en un .zip, podría aprender a generar un .deb o un .rpm… o podría aprovechar la ocasión para aprender a crear archivos AppImage.

AppImage es un formato ejecutable autocontenido para GNU/Linux. Es decir, el ejecutable y todas las dependencias (imágenes, bibliotecas dinámicas…) van dentro del propio archivo. La ventaja de esto es que acabas con el conflicto de versiones de bibliotecas dinámicas (la típica de que en GNU/Linux dos programas no se llevan bien porque uno espera que /usr/lib/libwhatever.so sea la versión 1.2.3 y otro espera que /usr/lib/libwhatever.so sea la versión 2.5.8). Al final tienes un único archivo, que haces ejecutable con chmod +x, y que cuando ejecutas funciona normal en cualquier distribución GNU/Linux. Como lo que también buscan conseguir Flatpak y Snap, vaya.

Para crear AppImages, utilicé AppImageKit. Es una herramienta que convierte un directorio en formato AppDir (es decir, con el esqueleto de la aplicación), en un archivo ejecutable de tipo AppImage. Aunque es muy flexible, a la vez es muy sencillo de empezar a usar.

Sigue leyendo