En busca de la mejor librería de TUI para Python

Los TUIs son algo que mola mucho porque ademas que queda muy hacker realizar cosas con ellos, te permiten interactuar con servidores por ssh de forma cómoda, y sobre todo aprovechando los pantallones que tenemos ahora, permite tener dashboard muy completos y cómodos como lazy_docker.

Si bien hay soporte nativo para ncurses, el rollo es que tienes que hacerte todo a mano.

Yo tenia mis esperanzas puestas en Urwid (incluso me he metido a arreglarles un bug hace meses) pero lamentablemente, puede que suene muy superficial, pero los botones son muy feos (por defecto, se les puede mejorar tirando código python) y no hacen efecto de click (esto no he encontrado nada).

Después he encontrado las librerías:

Las que me llaman mas la atención es picotui y blessed.

Ya os iré contando.

¿Porque no existe un text-overflow: scale en CSS?

Si has picado código o diseñado páginas web, seguro que te ha pasado mas de una vez que un texto se desborda por la izquierda o por abajo.

Pues parece que ha mas gente le molesta eso y han pedido en el foro de la Web Incubator CG con el título de Auto-sizing text to fit container.

Mas o menos en el dialogo, han dicho una posible solución que debería añadirse a CSS y es un valor mas a text-overflow para que escale el texto y además añadir un max-font-size y un min-font-size para controlar los limites (o los treshold como dice un conocido que mete esa palabra en toda conversación…cualquier día va al burguer y pide un treshold con patatas fritas).

La pena es que los estándares en la W3C van lentos aparecer y lentos de aplicar en los navegadores.

Russian Cyberpunk Farm

Me encanto este cortometraje o nanometraje (hace unos años una filosofa dijo que twitter (el de 144 caracteres de antes) era una mierda y destrozaba la compresión del idioma porque no se podían contar cuentos…pues caso error, encontré geniales cuentos en 1 tweet. Pues aquí un pequeño tan pequeño cortometraje que dura 4 minutos y es espectacular.

Sencillamente genial:

Buen vídeo sobre las nuevas fábricas y edificios de la versión Mindustry v6

Desde aquí aplaudo al señor Creslex por hacer estos geniales vídeos sobre Mindustry (de momento solo hay un articulo en la wikipedia francesa) y la próxima versión, la 6 que ya esta ahí en el horno y gracias al software libre puedes jugar y opinar.

En este caso repasa los nuevos edificios y fábricas:

Hay otro articulo sobre las nuevas unidades que trae en: Los vehículos nuevos que vienen en el Mindustry v6

He encontrado dos página muy buenas sobre idle / clicker / incremental games

Ya sabéis que soy un asqueroso hipster de los videojuegos, en vez de jugar al fifa 20 que es igual a los 20 y pico anteriores, me gusta explorar nuevos géneros.

Los idle o clicker o incremental games no es un genero nuevo, ya lleva bastante años entre nosotros, por cierto siempre se me olvida (gracias señores de google) en español a este género se llama Videojuegos Incrementales .

Pues las dos página que he encontrado, algo desactualizadas pero que son oro puro, son:

Convenciones de nombres en programación

Es de ser bien nacido ser agradecido y he encontrado un articulo en adrianalonso.es : Convención de nombres: desde el CamelCase hasta el kebab-case .

Me ha encantado, porque estaba leyendo una documentación sobre las API RestFul y leí kebab case….me quede todo loco, conocía la CamelCase y la snake_case pero kebab-case y en la primera búsqueda que me salio el blog de este hombre que no conozco pero que esta muy bien explicado cada tipo de forma de escribir los palabros para las variables.

Odia a tu enemigo pero aprende de el: live coding o hot reload

Ahora las «nuevas religiones» disfrazadas de psicología barata + neoliberalismo donde te dicen «vive como un castrado y trabaja como un gilipollas que otros necesitan hacerse ricos de tu sudor», el odio esta prohibido, pues no hijo no, hay que odiar y pensar porque odias, para que no sea un odio irracional y ni un paso atrás.

Pues el famoso Live Coding o Hot Reload del que chulean mucho gilipollas de portátil blanco con manzana de los que dicen «tío, macOs es unix» (hay que ser tonto o mala persona para intoxicar con semejante mierdas y verdades a medias) con sus IDEs modernos y sus lenguajes modernos.

Pues si, odia, pero mola lo de que «algo automágicamente» te compile o relance el proyecto cuando cambias cosas.

Pues lo puedes hacer bien en 4 lineas, si repitió en 4 lineas de bash, y en plan bien no usando una espera activa (es decir quemando CPU en un bucle infinito y sleeps de un segundo) si no usando la maravilla que trae GNU/Linux de Inotify y su comando para shell en Inotify-tools .

En mi caso quería hacer un diagrama con plantuml y hacerlo en plan en una pantalla el editor y el otro el resultado:

file=$1
dirname=$(dirname "$1")
basename=$(basename "$1")
filename=${basename%.*}

java -jar plantuml.jar "$1"
xdg-open "${filename}.png"

inotifywait -m -e create -e modify -e close_write "$dirname" |
while read filename eventlist eventfile
do
  java -jar plantuml.jar "$1"
done

Esta guardado en el git plantuml-watch .

Por cierto os preguntaréis como funciona, básicamente el inotifywait llena el stdout y lo pipeo hacia el read como si fuera un fichero y voy esperando por nuevas lineas. Y también te preguntarás por que monitorizo mas eventos que solo el modify, pues porque el editor que suelo usar es Geany y el mamón hace unas rayadas a bajo nivel en vez de editar el fichero, es como que crea uno temporal en el mismo directorio y copia (moviendo) el contenido al que esta editando.

Los vehículos nuevos que vienen en el Mindustry v6

Aunque el último cambio en esta versión en la campaña me ha matado un poco, me gustaba lo de ir conquistando los sectores y lo han quitado en la última revisión.

Pero bueno, vamos a esperar a ver que va pasando porque todavía no esta terminada la versión 6 de Mindustry.

No obstante algún youtuber (haciendo bien las cosas, sin poner su careto 2 horas hablando en vez de mostrar lo que buscas en el vídeo) ha hecho un vídeo de los nuevos vehículos que vienen, es espectacular y chungos las arañas robots, dan mal rollo.

Actualización: Han retomado la mecánica de juego de conquistar sectores del planeta desde Mindustry versión 6.0 Build 109 – Beta, en el anterior en el 108 lo quitaron.

FZF: El buscador fuzzy para gnu/linux

Puede que sea ya agua pasada o no este de moda, pero para quitarme jaquecas al buscar en el historial de comandos porque muchas recuerdo el comando por el medio y no se como empezaba y además «el buscador clásico» solo ofrece una alternativa a la vista.

Pues recordé el famoso fuzzy search (que por desgracia lo use en el asqueroso pycharm, mierda puta para hacer desarrolladores blandengues y dependientes de software privativo) y recordé que había fzf (picado en go pero bueno dicen que hay alternativa en rust).

Encontré este genial articulo de un tal Alejandro Amaral sobre el fzf con el título de: FZF – EL buscador *nix.

Al que añado mi salsa personal:

  • para instalarlo, por suerte ya esta en casi todas las distribuciones de forma oficial, por ejemplo en debian es:
    $ apt install fzf
  • Después yo de momento he metido solo lo de los «atajos de teclado» y no lo del ** o lo de kill desde fzf.
    • ctrl+r: te sale el fzf buscando en el history de comandos
    • ctrl+t: mientras estas escribiendo un comando te sale el fzf buscador desde el directorio que estas y buscas y te lo pone como path del comando.
    • Para instalarlo se da acceso al script en el .bashrc de tu usuario, yo lo tengo en el final casi:
      #fzf
      
      source /usr/share/doc/fzf/examples/key-bindings.bash
  • Si lanzas el fzf a mano, te sale un buscador de solo los ficheros desde el path que estas ahora mismo en la shell.
  • Y después trucos:
    • Para buscar en otro path e incluso mas cosas que ficheros es:
      $ find /tmp 2>/dev/null | fzf
    • Y para usar el fzf en otro comando es:
      cd $(find / 2>/dev/null | fzf)

Y eso es fzf, no se si quema mas CPU y o RAM frente a «los buscadores clásicos» pero ayuda bastante sobre todo cuando te acuerdas de cosas de enmedio de lo que buscas.

Lo siento solo es un blog.