I fork, I fork: Abriendo mi caja de herramientas digitales

Tomas trabajando

Siempre me han gustado los artículos del tipo "qué uso para trabajar" porque siento que uno siempre descubre algo interesante: una mejor herramienta, un nuevo programa, o a veces simplemente una idea para mejorar el flujo de trabajo o hacer una tarea mas fácil.

En el último tiempo he visto un par que me han llamado la atención y no porque muestren cosas superhipernuevas sino todo lo contrario: los tipos esencialmente siguen usando las mismas cosas que hace una década.

Yo también soy de los que creen que lo nuevo no es necesariamente mejor, pero además me pasa que soy medio mañoso, y si veo que a una herramienta le falta o sobra algo lo más probable es que le meta mano, especialmente si es una que uso todos los días.

Así que me dieron ganas de mostrar algunas cosas que tengo en mi caja de herramientas, porque puede que le sirva a alguien tal como a mí me pasa cuando leo a otros.

A ver si pillas algo que te sirva.

Debo partir por comentar que no uso sólo un PC para trabajar, sino tres y muy distintos. La razón es simple y no es sólo porque me gusten los computadores, sino porque dependiendo del día y la hora me toca estar en lugares distintos (en la casa, la oficina, en un café, etc) y haciendo cosas distintas. Y claramente las herramientas o el entorno ideal para programar "in the zone" es muy distinto al que necesitas para mandar mails o emojis por Twitter.

(Eso último es broma, creo que todavía ni sé como se mandan).

Uno: El maquinón hiper power

El maquinón es el que tengo en la oficina y donde hago la mayor parte de la pega "dura". Es un computador de escritorio de doble CPU que tiene mas núcleos que los goles de Alexis por la selección.

Como dato, lo compré usado por eBay el 2015 y me salió 250 USD, ¡y con envío incluido! Es uno de esos PC de oficina con harto power pero nada de sexy. En gringolandia las empresas normalmente renuevan sus PCs de trabajo cada tres años y estos salen a la venta a precios ridículos. Además, creo que ayudó que el antiguo dueño haya tenido un día de furia, porque el tarro tiene un abollón feo como el diablo.

En el maquinón corro actualmente Xubuntu y uso Sublime Text para todo lo que es programar, escribir, etc. Creo que el único plugin realmente útil que uso es el de alignment (para alinear cosas). Igual no me gusta hacerme muy dependiente de plugins, porque hace más difícil poder cambiar más adelante.

Como terminal de comandos uso mi propio fork de urxvt, que agrega pestañas nativas, color en 24 bits y un par de trucos más. Lo bauticé como exoterm y está disponible en Github.

Htop sobre Exoterm

htop mostrando las calugas de mi pequeña bestia, sobre exoterm.

Para recorrer repositorios de código y agregar nuevos commits uso tambien un invento mío: se llama jix y es un cliente git para la linea de comandos escrito en Lua y basado en libgit2. No tiene tooodas las funcionalidades del mundo, pero funciona bastante bien. Al menos me permite hacer cosas mas complejas de las que podia hacer antes con tig (que fue de donde me inspiré).

Cuando me toca diseñar abro el fiel e inagotable Inkscape (el rey del diseño en vectores en Linux), y de tanto en tanto GIMP si necesito redimensionar o cortar imágenes.

Soy de los que aún mantiene MP3s y OGGs en el disco duro, así que para escuchar musica recurro a Deadbeef, un programa que permite tocar todos los formatos conocidos (algo asi como un VLC para música). Para todo lo que no se la puede (léase chiptunes y formatos del tipo) uso Muki, el reproductor web para música secuenciada que anuncié hace unos años.

Muki tocando Deus Ex

Muki tocando el soundtrack de Deus Ex. Una joya.

Para navegar, Firefox. Aunque reconozco que la migracion de Chrome/Chromium ha sido mas lenta que rápida. En cuanto a extensiones no hay mucho que decir: uBlock Origin, en todas sus formas. Dark Reader también es útil.

Otro programita que uso harto es Peek, que permite grabar tu pantalla y convertirlo en un GIF animado. Si quieres grabar el terminal, la respuesta es Asciinema.

Dos: El laptop para el día a día

Para cuando me toca salir, moverme o viajar ésta el laptop carne de perro. Actualmente uso un Chromebook Pixel (el primero que salió, del 2013) y lo tengo con developer mode activo para poder instalar paquetes como Ruby, LuaJIT y otros programitas que uso para moverme en el terminal.

Este PC es el que más toca usar más "a oscuras" (en un avión, en un café con poca luz, etc) y aquí es donde me salva Dark Reader. Eso sumado a un fondo de pantalla negro como la obsidiana, tanto para el escritorio como para la pantalla de inicio de Chrome.

Durante un tiempo estuve usando esta extensión como alternativa a la página "nueva pestaña" de Chrome. Es una buena opción si te gusta tener más a mano las últimas páginas visitadas u otros links específicos.

Ahora, en cuanto al software: para los que no conocen el mundo de los Chromebooks, estas máquinas corren Chrome OS que es básicamente una versión de Gentoo muy, pero MUY limitada, por razones de seguridad. O sea ni siquiera tienes acceso a un gestor de paquetes: tienes que instalar uno y aun así no puedes instalar o correr programas con interfaz gráfica.

O sea si quieres correr Inkscape, Sublime Text o VS Code, la unica manera de hacerlo es instalar una distribución completa de Linux via chroot. Para eso hay un script llamado crouton que simplifica el proceso, pero aun así la experiencia no es la mejor asi que recomiendo limitarse a sólo instalar aplicaciones que operen la línea de comandos.

Jix corriendo en Chrome OS

jix corriendo en el terminal de Chrome OS, llamado Crosh (Chrome Shell)

En modelos nuevos de Chromebooks, Google ahora permite instalar aplicaciones Android, pero el mío no entra en esa categoría, asi que los usuarios del primer Pixel estamos fritos. De hecho ya van mas de cinco años desde que salió este modelo, por lo cual Google ya me advirtió que habia llegado su EOL (end of life) y por supuesto que me invitó cordialmente a comprarme uno nuevo.

Sé lo que estás pensando y sí, estoy de acuerdo que usar un Chromebook para un "power user" parece una estupidez porque te tratan como un bebé, pero la verdad es que yo tomo las limitaciones como algo bueno, porque me obliga a dejar el codigo de lado por un rato y enfocarme en otras cosas. Además, la gracia que tienen los Chromebooks es que son máquinas baratas que bootean en menos de 10 segundos y fuera de las limitaciones, para un uso 100% web funcionan perfecto. Incluso Gmail, que después del último rediseño come casi tanta memoria como una app Electron.

Para navegar aquí obviamente no hay mas opción que Chrome –razón por la cual dudo que el reemplazo de este laptop sea otro Chromebook–, y para música, porque no tengo Deadbeef y porque los Chromebooks tienen pocazo disco duro, escucho casi puro Muki y de vez en cuando un poco de Spotify. Con harto uBlock eso sí.

Para escribir texto o código uso Archetype, que tambien es creación propia pero 99% basada en código ajeno: tomé lo mejor de Caret (el clon de Sublime Text para Chrome OS) y reemplacé el editor Ace que usa por Monaco (el de VS Code), y le agregué un par de cosas en el camino. El resultado es una especie de mini VS Code pero en versión ultra liviana y que además resuelve los bugs que le reporté al tipo de Caret y que nunca se dignó a reparar.

Archetype editor de codigo en Chrome OS

Archetype en acción, editando el código de sí mismo.

Si usas Chrome OS puedes bajar Arquetype del Chrome Web Store, pero aún no lo he publicado oficialmente así que tienes que usar el link supersecreto que publiqué en Reddit.

Y si no usas Chrome OS igual puedes probarlo pero tienes que instalar la extensión manualmente (avísame y te explico cómo).

Y tres: Las reliquias de antaño

Cuando quiero escribir sin distracciones, la mejor herramienta para hacerlo es agarrar uno de mis viejos laptops del siglo pasado.

No diré cuántos tengo, pero sí que van desde los 64 hasta los 256 MB de RAM y desde los 233 MHz hasta los 750 MHz, y es realmente un P - L - A - C - E - R verlos volver a la vida luego un buen cambio de aceite.

Sony Picturebook corriendo Linux

El fermoso Sony Vaio "Picturebook", de hace exactamente 19 años. Este PC es tan freak que su procesador no es ni Intel, ni AMD ni tampoco Cyrix. Es marca Transmeta (empresa donde solía trabajar Torvalds).

Además, no te imaginas lo entretenido que es el desafío de trabajar en el ano 2019 con un limite total de RAM equivalente a lo que usa SÓLO la pestaña del navegador con que estas leyendo esto.

Luego de probar varias distribuciones, hoy para esta máquinas suelo usar o Slitaz, Tiny Core o Alpine Linux, dependiendo de cuanto RAM tiene y de si pretendo conectarme a Wi-Fi o no (para eso sirve la tarjeta ésa que ves a la izquierda).

Como entorno gráfico uso el livianísimo Joe's Window Manager (JWM) con varios ajustes y mini herramientas que reviví y adapté desde repositorios añejos en Sourceforge. Como explorador de archivos uso normalmente Thunar o PCManFM, aunque en estos casos uso casi exclusivamente el terminal, así que estoy lentamente empezando a inclinarme por nnn (un explorador para el CLI).

La mayoría de estos laptops de antaño traen chips OPL3 incluidos (el mismo que venía con las tarjetas Sound Blaster), así que para escuchar música me voy a pura canción en MIDI. Para esto uso el mismo motor en C que usa Muki pero que adapté para usarlo en el terminal, y que en vez de hacer la síntesis de audio en JS la hace en hardware usando el chip famoso de Yamaha (ergo, 0% de uso de CPU).

Para escribir acá (texto, porque código casi nada) uso eon, que es un fork mío de otro editor escrito en C llamado mle. Para que te hagas una idea, es como si VIM y Nano tuvieran un hijo, y saliera con el talento de VIM pero con la amabilidad de Nano.

Como terminal y para trabajar con git, exoterm y jix, por supuesto. De hecho, fue aquí de donde nacieron ambos. Del interés por revivir estas máquinas y ver si era posible usarlos para algo más que sólo decoración geek.

Navegar en estos computadores es un verdadero desafío, así que dependiendo de dónde quiero entrar abro la página con Links (navegador en modo texto), con Dillo (en modo grafico pero MUY limitado y sin Javascript) o bien con Midori (basado en Webkit), si es que realmente necesito Javascript y el RAM disponible lo permite.

Aquí evito meterle más carga a los navegadores vía plugins, así que todo el adbloqueo lo hago a nivel de DNS usando hosts lists. Sé que existe pi-hole que permite hacer algo similar, pero por ahora el host list me basta y sobra.

La gracia de usar estos computadores es que la opción de abrir Instagram o Twitter en una pestana simplemente NO existe, y por lo tanto estas obligado a hacer lo que tienes que hacer. Cero coma cero cero uno distracciones.

(El uno es porque estas máquinas también pueden correr los juegos de antaño en forma nativa…)


Y así llego hasta el final de mi lista de herramientas, versión 2019. Espero no haberme alargado mucho y si hay algo de lo que te interese saber más, pregúntame aquí en los comentarios o bien por Twitter.

Si a alguien le interesa puedo hacer una continuación de este post, haciendo un doble click en las cosas que uso en el terminal (aliases, scripts, etc), o bien los servicios que uso online, ya sea en forma personal o bien los que usamos a nivel de empresa en Bootic.

Lo que sí, no me pidan que les diga qué uso para ver películas y series porque la respuesta no es Netflix y no me quiero meter en problemas!

menciones

    comentarios