Bueno, bueno… está bien… no nos pasemos… Yeoman y Cookiecutter no han muerto, solo es que quería un título con gancho. 😁 Lo que quiero decir es que de repente les ha salido un nuevo competidor que tiene muchas ventajas, y va a darles mucha guerra… Si estás leyendo esto, supongo que ya conocerás estas herramientas, pero por si acaso: ¿Qué son Yeoman y Cookiecutter? Cookiecutter es un generador. De hecho, es, hasta hoy, el principal referente en Python, y uno de los principales en cualquier lenguaje.
Medio planeta en cuarentena, y el otro medio lo estará dentro de poco (aunque aún no lo crea)… ¡pero queremos mantenernos en contacto con nuestros conocidos! ¿Qué opciones tenemos?
Desde este momento, este blog es multiidioma, y las nuevas entradas se escribirán en inglés y en español simultáneamente… si me apetece. 😛
Tú has estado ahí, yo también, y volveremos a pasar: se te presenta una tarea cualquiera y acabas viendo que la manera más sencilla de automatizarla es mediante un script de terminal.
Con suerte, podrás usar Fish, pero todos sabemos que no está siempre disponible así que acabarás usando Bash, salvo que tal vez quieras que tu script corra en Alpine y entonces tengas que usar Ash (SH para Busybox), o puede que hasta haya algo peor… 👿
¿Y no habría una forma de escribir scripts de terminal que no implicara elegir entre usar una sintaxis comprensible y mantenible, o tener portabilidad?
Te presento a Plumbum.
Quienes vivimos gran parte de nuestra jornada en la terminal es normal que tarde o temprano acabemos usando una shell como Fish, que nos hace la vida más cómoda. En mi caso muchas veces realizo tareas que toman cierto tiempo, y me viene bien que algo me avise cuando terminan, para que mientras tanto pueda ir haciendo otras cosas. Si usas GNOME Terminal y Bash o Zsh, esto viene activado por defecto en las últimas versiones, pero si usas Fish, no.
Si usas Fish como tu shell, cosa que recomiendo, tal vez te hayas topado con el problema de que no puedes hacer una cosa tan sencilla en Bash como:
una_variable="$(cat un_archivo_con_varias_lineas.txt)"
echo "$una_variable"
Si sigues mi blog habrás notado que desde hoy tiene un aspecto bastante diferente desde hace poco, por no decir que ahora… ¡Tengo dominio propio!: RecallStack.icu Bueno, pues lo que hay por detrás de esto ya lo explicaré en otra entrada, pero la cuestión es que he migrado de Wordpress a Hugo. Más concretamente, he migrado de wordpress.com a Hugo, lo cual lo hace un poco más complicado (y caro), pero no mucho.
Como me estoy leyendo algunas partes de You Don't Know JavaScript, acabo de toparme con una cosita que me ha encantado, y es rápido y fácil: usar la virgulilla (~) en JavaScript:
Asumiré 3 cosas:
$ docker login registry.example.com Username: myuser Password: WARNING! Your password will be stored unencrypted in /home/myuser/.docker/config.json. Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store Login Succeeded
Veamos cómo solucionarlo:
Bueno, como dije en la última entrada, compré un nuevo módulo de RAM. Cual fue mi decepción cuando, tras instalarlo, Linux no era capaz de utilizarlo. Sin embargo, entrando en la BIOS sí que me decía que tenía los 16GiB de RAM (antes tenía 8). ¿Qué hice? Pues... te vas a reír...
Era curioso:
htop
mostraba unos 6,9 (siempre es normal que haya algo de memoria
reservada para el sistema, la tarjeta gráfica, etc. Esa cifra indicaba que solo
detectaba un módulo de memoria de 8 GiB).
dmidecode
mostraba los 16 GiB sin haber nada extraño.free -m
mostraba 6,9.lshw
mostraba 16.dmesg
mostraba... Bueno, un montón de letras raras que no lograba
entender. 😅
Fascinante... 🤔
Con semejantes rarezas, todo apuntaba a un problema de hardware: alguna pieza no funcionaba bien.