Archivo de la categoría: Tutoriales

Un touch pero que también me cree todo el path

Es de esas cosas tontas que haces con dos comandos primero un:

$ mkdir -p <path>

Y después un:

$ touch <fichero>

Pero se puede hacer del tirón como:

$ install -D /dev/null /home/md/.config/nvim/init.vim

Donde -D es para hacer que cree todo el path. Y el /dev/null para que copie el fichero mágico de los Unix y los GNU/Linux de tamaño 0.

Lo encontré buscando como crear el init.vim para neovim de un tirón en: mkdir -p for files

Neovim pre 0.5 LSP o como mandar a tomar por culo a los cabrones de JetBrains

Me gustaría decirlo para Vim fue mi primer amor, no acabamos de entendernos pero nos queríamos mucho, paso el tiempo y nos separamos, pero me quise en serio y después descubrí NVim o NeoVim y en ese estoy…de casualidad coincidió con la famosa versión 0.5 …pero claro como buen usuario perro viejo, no voy navegando la cresta de la ola porque no me gusta darme la hostia y por ejemplo en Debian Testing la versión de neovim es:

$ apt list neovim
Listing... Done
neovim/testing 0.4.4-1 amd64

Y con eso me remangue las manos y  a base de muchos cabezazos le metí soporte de LSP.

«¿Pero…qué es LSP Miguel?»

LSP con mucha mucha desgracia es un puto invento de Micro$oft, aunque no lo parece, pero porque funciona bien, y es un protocolo basado en JSON RPC en plan anillo único, porque intenta estar entre medias de los editores y los «programas que ayudan a programar».

Normalmente los IDE son monolíticos y vienen todo metido, y este invento separa el IDE por un lado, entre medias el LSP y por el otro el servidor de lenguaje. Y esto ayuda a que se puedan hacer potentes servidores de lenguaje (como la gente de Rust) y no hacer un invento para cada IDE. Es muy disruptivo porque ya no sería necesario usar IDE piticlin para programar en algún lenguaje asqueroso de esos que es verboso y con mas capas de de lasaña..porque la gente hace las cosas tan difíciles adrede….

Por cierto hablando de IDEs, hay mucho desgraciado (he conocido mucho con portátil de manzanita) que no sabe mergear un branch de git a mano sin un IDE de jetbrains, y es una pena que gente así sea tan dependiente de la magia de un IDE y lo peor que sean tan arrogantes cuando no son nadie sin la magia que no viene de sus propias manos.

«¿Pero…cómo Miguel?»

  • Instalar nvim por ejemplo:
    $ sudo apt install neovim
  • Instalar un gestor de paquetes para vim/neovim (si hijo si, hasta los platanos van a tener gestores de paquetes…bueno en este caso es útil), hay varios famosos, yo elegí vim-plug (no recuerdo porque) pero en la sección de Install vim-plug neovim tienes la linea de código de curl para instalarlo, que básicamente es ponerlo en los scripts autoload de neovim.
  • Editar el fichero init.vim, ojo que no esta de creado por defecto puedes probar su existencia con el comando :checkhealth  …una vez que tengas el fichero de configuración de neovim, añadir los siguientes plugins en el bloque de plugins de plug, te quedará mas o menos que así:
    "PLUGINS
    call plug#begin()
    <otros_plugins_tuyos>
    Plug 'autozimu/LanguageClient-neovim', {
    \ 'branch': 'next',
    \ 'do': 'bash install.sh',
    \ }
    Plug 'ncm2/ncm2'
    Plug 'roxma/nvim-yarp'
    <otros_plugins_de_tu_perro>
    call plug#end()
  • Explicación de los plugins:
    • autozimu/LanguageClient-neovim: es el plugin (escrito en Rust) que te da soporte para LSP para versiones pre 0.5 de neovim, creo que hay mas plugins…no recuerdo porque riguroso estudio elegí este plugin frente a otros, creo que porque era el mas optimizado (había otro en python y la gente se quejaba de que comia mucha memoria e iba muy lento, pero este al ser rust…).
    • ncm2/ncm2: este plugin complementa al anterior porque aunque ya tienes LSP solo con el anterior…oye un poco de ayuda visual con popups y mensajes en colorines ayuda mucho, este te lo da.
    • roxma/nvim-yarp: plugin  necesario para ncm2, le da soporte para que el otro haga llamadas remotas.
  • Una vez añadidos, y recargada la configuración (ahora no recuerdo el comando) o reiniciado el neovim, los instalas con:
    :PlugInstall
  • Y ahora te falta ir instalando los servidores de lenguaje, uno a uno, cada uno tiene su forma, te pongo un par, puedes encontrar una lista de lenguajes y proyectos de servidor de lenguajes en https://langserver.org/ pero te pongo los mios:
  • Y después los configure en el init.vim así:
    let g:LanguageClient_serverCommands = {
    \ 'python': ['/usr/local/bin/pylsp'],
    \ 'rust': ['rls'],
    \ 'javascript': ['typescript-language-server', '--stdio'],
    \ 'typescript': ['typescript-language-server', '--stdio'],
    \ 'javascript.jsx': ['typescript-language-server', '--stdio'],
    \ 'typescript.tsx': ['typescript-language-server', '--stdio'],
    \ }
  • También añadí las lineas estas de configuración necesarias para mejorar el funcionamiento de ncm2:» enable ncm2 for all buffers
    autocmd BufEnter * call ncm2#enable_for_buffer()
    » enter inserts newline when completion window is open
    inoremap <expr> <CR> (pumvisible() ? «\<c-y>\<cr>» : «\<CR>»)

    » tab completion
    inoremap <expr> <Tab> pumvisible() ? «\<C-n>» : «\<Tab>»
    inoremap <expr> <S-Tab> pumvisible() ? «\<C-p>» : «\<S-Tab>»

    » IMPORTANT: :help Ncm2PopupOpen for more information
    set completeopt=noinsert,menuone,noselect

  •  Y ya esta.

Tienes funcionalidades iguales a los asquerosos IDEs de JetBrains ocupando megas de memoría frente a Gigas de memoria y kilos de falsedad e hipocresía porque son de los mejores ejemplos de droga a la puerta del colegio porque van del rollo open source cuando su core es privativo y asqueroso para enganchar a los desprevinidos infantes a la siguiente dosis de su droga.

Nota final: Puede que este mintutorial te valga para vim pero no lo he probado. Para 0.5 nvim, ya trae soporte, pero todavía no he tenido el momento de ponerme a probarlo. Y como siempre agradecer a Victorhck por sus tutoriales de vim/neovim que tanto me han ayudado.

Mindustry, mod para tener trucos y cheats

Mindustry es de esas joyas que hay en el software libre, es un videojuego espectacular de estrategia, del subgénero tower defense pero tiene su salsa para no ser un aburrido juego de esos que había en flash.

Originalmente el juego era un demake , si no conoces la palabra es un remake (si no conoces esta, un homenaje o copia del original) pero o para una consola vieja retro, o es actual quitando cosas pero guardando el espíritu y la jugabilidad, pues Mindustry era al principio un demake del Factorio, pero con cada nueva versión nueva mas y mas cosas han cambiado y es un juego muy muy diferente al Factorio pero con cosas en común.

Pues con la salida de la versión 6 con su modo campaña con el famoso planeta divido en hexágonos, vino la dificultad, en serio que he estado semanas (y diría que meses) peleando, buscando y pensando como ganar el modo campaña.

Y me cansé, porque los territorios conquistados que tenías cerca de territorios con base enemiga (sobre todo en el polo norte de ese planeta) eran cada dos por tres atacados, e intentar entrar a esas bases enemigas era misión suicida, centenares de intentos, pero es que las plataformas de lanzamiento son muy lentas para abastecer la maquinaria de guerra cuando estas metido en un fregado de estos, lo he intentado en serio y he sufrido una amarga derrota, una y otra vez.

Y como me cansé, empece a buscar trucos para Mindustry….y por desgracia no hay….pero hay mod (un mod es un parche o script q para activar cheats.

CheatMod

Para instalarlo es tan simple como abrir en el menú de la derecha la sección de Mods .

Y después hay que hacer click en el botón de Importar mod .

Te saldrá otro menú, clicka en el botón Importar Mod de Github.

Te sale una cajita de texto que tienes que copiar y pegar o escribir paulieg626/Cheat que es la dirección del mod en github.

Le clickas en OK y te saldrá la siguiente pantalla con el icono del gatete:

Y pulsas en el botón de Atrás y te dirá que tienes que reiniciar el juego para que se active el mod de los trucos.

Y cuando activas, el título cambiara diciendo que ya tienes los trucos activados:

¿Qué te da este mod?

Pues te da un buen puñado de cosas para construir entre las destacadas:

  • Killing turret: una torreta de coste gratis, con un alcance espectacular una velocidad de tiro exageada y cuando finaliza la trayectoria la bala explota en fragmentos y estas al final también en fragmentos llenando la pantalla de mortiferos fragmentos…ojo que puede ralentizar tu ordenador.
  • Item source: un pozo de los deseos por 0 euros, de ahí salen todos los elementos que elijas hasta el infinito, ya podía haber uno de dinero en la vida real para dejar de tener que pagar un alquiler por un piso para vivir a los asquerosos parásitos de los caseros.
  • Liquid source: igual que item source pero para todos los líquidos que tiene el juego, petroleo, agua, liquido criogénico, magma…vamos una fuente infinita exactamente como dicen la palabra.
  • Energy source: otro edificio espectacular y al igual que los anteriores es una fuente infinita de energía…como las pilas de aquel conejo de juguete de los ochenta.
  • Super protection: no no es un condón para tener sexo con una niña pija del territorio cacerolo, cayetano o simplemente pijofacha. Es un escudo gigante e imposible de romper que se despliega cubriendo una gran superficie de donde pongas el edificio, y sin gastar energía y a coste gratis.
  • Filler: es un edificio que al construirlo, automáticamente en tu contador de minerales y otros elementos se ponen todos 900 millones. Para hacerlo funcionar otra vez, tienes que volver a construirlo.
  • Magic workbench: y por último (hay mas edificios pero para mi estos son los destacados) este edificio que te permite desplegar cualquier unidad y casi cualquier cantidad (tiene un limite de unidades el juego y si lo superas explotan según salen) que te da el juego, ver meganaves disparar rayos en las Puerta de Tannhäuser eso nunca se perderá en tu recuerdo.

    Cuando la tienes construida, al hacer click en este edificio con diana azul, te sale el menú que pongo en la captura de pantalla.

    Te salen las unidades organizadas de menor nivel a mayor (de izquierda a derecha) y agrupadas por tipos, haz click todas las veces que quieras en cada una (es decir si pulsas 5 veces en la araña robótica gigante de último nivel y después 2 al soldado raso, te aparecerán esas unidades), y si después le das al botón de play aparecen al en donde este el cuadrado rojo, Con las flechas mueves el cuadrado rojo. La calavera explota todas tus unidades. Y cada vez que le des al play tienes que darle otra vez repetidos clicks a las unidades que quieres que salgan antes de volver a darle al play, si no no sale nada.

Y hasta ahí el mod para tener trucos en el Mindustry. Pero OJO «un gran poder lleva una gran responsabilidad.» Y te recomiendo no usar trucos hasta que no estés hasta los huevos, porque es la manera mas triste de romper un juego y yo ya he roto así muchos juegos en el pasado, no porque dejen de funcionar si no porque ya no me apetecía jugarlos.

Probando los temas de plantuml con un par de lineas de bash

Seguro que se puede hacer mejor, pero bueno me ha funcionado.

No sabia que PlantUML ahora han metido un themes. Y para probarlos he tirado 4 lineas en bash y parece que ha salido.

Me he creado este fichero en /tmp/caca.puml :

@startuml
!theme spacelab

skinparam backgroundColor #7f7f7f

Pepito <- DonJose : Hola Don Pepito
Pepito -> DonJose : Hola Don Jose
Pepito <- DonJose : ¿Paso ayer por mi casa?
Pepito -> DonJose : Por su casa yo pasé
@enduml

Esta puesto adrede después de !theme spacelab el skinparam para poner en gris el fondo para machacar la configuración del theme.

Y después creo un directorio /tmp/resultados/ .

Y finalmente otro fichero donde saco los themes disponibles en plantuml /tmp/list_themes.puml :

@startuml
help themes
@enduml

Y convierto ese help a un txt (que es en plan asciiart):

java -jar plantuml.jar /tmp/list_themes.puml -ttxt

Y el churro en una linea:

line=$(cat /tmp/list_themes.atxt | tr -d " " | grep -Ev "^$" | grep "Thepossiblethemesare:" -n | cut -d: -f1); for theme in $(cat /tmp/list_themes.atxt | tr -d " " | grep -Ev "^$" | tail +$(( $line + 1 ))); do echo "$theme"; cat /tmp/caca.puml | sed -e "s/spacelab/$theme/" | java -jar plantuml.jar -pipe -tpng > /tmp/resultados/caca.$theme.png ; done

Y la explicación:

  • $line se saca de hacerle un cat al fichero de la lista de themes como asciiart, quitarle todos los espacios en blanco (porque por suerte todos los themes son sin espacios en blanco), con grep inverso ( -v) y regex (con -E) quito las lineas en blanco. Y de esto lo pipeo para sacar el número linea de donde empieza los themes buscando la frase apiñada (sin espacios en blanco) «Thepossiblethemesare» y le saco el campo con cut.
  • Después  tiro un bucle for del cual chupo de (suerte otra vez que no tiene espacios en blanco porque si no tendría que tirar de IFS) casi completa la anterior churro para sacar $line, salvo el grep final que lo cambio por un tail para sacar a partir de la linea N.
    • Y en cada iteración tengo el $theme que le hago una sustitución en vivo al fichero de template de hola don pepito y voy creando fichero a fichero de cada theme finalizando el nombre con .theme.png .

Y subo un puñado de ficheros generados:

Volviendo a intentar aprender bien bien Vim

Es de esas cosas recurrentes que me vienen para sentirme realizado, programar en ensamblador en Z80, aprender a usar bien bien Vim.

Y en eso vuelvo, a ver yo creo que ya cualquier hijo de vecino sabe el :q! , :w , :wq , el rollo de buscar con / y n y shift+n. Y ya para coronar el famoso :set number y :set nonumber. Lo que no trago es el tema de usar h j k l para moverme pero bueno. Pero me pierdo cuando me aparecen varios paneles en la pantalla al final tiro de :q

Y claro pues si te apañas y tal, pero después vas a un editor de código come ram y peor privativo, o vas a algo mas liviano como mi querido Geany y dices como hago el autocompletado de estos como poco primero. Pues a ver ya esta ya te sientes inútil con Vim.

Pero es que he visto gente (me gustaría poner el nombre pero tendría que preguntarle) muy buena usando el Vim como verdadero y único editor, y flipás sin gastar RAM y CPU a lo tonto (y si me apuras sin gastar píxeles de pantalla a lo tonto) y sin dar paseos al ratón por la mesa, sin levantar las manos del teclado.

¿Y que hacemos con neovim? Pues de momento me esta llamando mucho la atención, el tema asíncrono y que le da un poco de vida al Vim.

Me falta entender y encontrar un buen gestor de paquetes y saber cuales son «los paquetes» estándar…si el rollito este que se sufre estos años con NPM o Pip, mucho nos reíamos de las guerras de editores de texto, pero al menos no era una peli de chinos donde salen un motón a la vez se pegan rápido rápido y no sabes a que caballo ganador apostar tu tiempo en aprenderlo. Por cierto no hay un único gestor de paquetes, ya el retorticimiento de lo torcido…pero bueno ahí esta Python con los miles de inventos…o js con npm y yarn.

Así que en esa estamos, y gracias a victorhck que esta haciendo mucha labor educativa y desde aquí se lo agradezco (aunque cuando lo conocí físicamente en las jornadas hacker de la EKO estuve un poco apagado…lo siento) y os pego links de su labor:

Después he encontrado cosas como:

  • VimAwesome: un listado de los paquetes de vim (no se si estarán todos pero eso parece) con un buscador y una ficha muy visual y estética.
  • Neovim en la wiki de archlinux: nunca he usado esa distribución pero todos amamos su documentación que nos ha sacado de muchos problemas.

Y de el señor Santos Gallegos el cual no tengo el placer de conocerle y que creo que será difícil porque esta del otro lado del charco:

Después la persona que no puedo nombrar (respeto su privacidad) me mando hablando de este tema estos días un dotfile (es curioso, la gente comparte su fichero de configuración orgullosamente por internet) que supuestamente es el principio y el fin de todo lo que necesitarías, os lo pego pero yo voy en plan rollo minimalista y poco a poco ir metiendo cosas en la configuración y entendiendo porque, pero bueno lo pongo el link The Ultimate vimrc .

Perdón añado uno que se me olvido: awesome-neovim.

Actualización:

Se me olvido también los tutoriales de Santiago Romero que leí hace años y que siguen online:

Bucle en bash al revés «padding» de 3 ceros

Una tontaá que os pongo porque me parece curioso, tenía que renombrar unos ficheros hacia adelante para hacer hueco entre medias, los ficheros eran <nombre>.<cifras>.md .

Tenemos el seq en GNU/Linux y en otros Unix, entonces es:

for i in $(seq -f "%03g" 13 -1 7)
do
  <mi código>
done

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.

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.

Getting Things Done: versión Miguel

Ya hace años de la charleta Getting Things Done sobre  de Netskaven en el Hacklab de Vallekas llamado La brecha digital. No se si yo estaba viviendo buenos tiempos, que me daba tiempo a tener un tiempo personal pleno…y por eso no la vi como un rollo para la vida personal mas plena, si no la tontería de los pringados con ordenador de manzanita que se autoexplotan en los curros de informática (manda cojones, la gilipollez máxima). Pero es que el señor Netskaven tenia razón…cuando te falta tiempo en las horas importantes de tu día, las tuyas, no las que das mal pagadas por el empresario. A parte creo que no entendí lo de que podía haber varias listas de to-do y que iba a ser todo un batiburrillo, mil perdones Netskaven.

Pregunta:

¿No os ha pasado alguna vez que estando ya ha ultimas horas de la noche en ese momento libre que le robas a Morpheo…que estas con el run-run de querer hacer algo productivo y no desperdiciar esas pocas horas jugando a un videojuego…pero no sabes en que jaleo de los miles que tienes abierto meterte?

¿No tenéis algunas veces cansancio mental de llevar tantas cosas personales que te alegran mientras estas esclavizado en la cabeza ocupando sitio mientras pasas las horas esclavizado?

Pues ahí es donde entra el GTD.

Después de leer de todo por internet, hacer memoria de la charleta de Netskaven (porque el git de las charlas de LabrechaDigital esta caído) y cagarme en todo con la mierda de articulo de la wikipedia española y la mierda de diagrama…parecería si fuera paranoico que lo ha escrito alguien que quiere fomentar la venta del libro…al contrario que algunos juegos de mesa que el articulo de la wikipedia te da el reglamento….y con un poco de maña, tijeras, pegamento  o si eres pro una impresora 3D, te haces con tu versión del juego de mesa.

He hecho un compendio, del diagrama GTD, por eso le he dado la versión miguel, es un diagrama de flujo (para diagrama de flujo cañero los diagrama Drakon de la Unión Soviética mas o menos al uso que se usaban mucho en los 80 cuando los Spectrum. Y esta hecho con mi querido PlantUML por el rollo de que paso andar ahí perdiendo el tiempo colocando las cosas, la vida es mejor en Everything-as-Code .

Os pego el código.

@startuml
title Get Things Done (Miguel version)

legend top right
  * Revisar Periodicamente (diario, semanas, cada hora)
  * Tipos de Bandejas
  ** Calendario
  ** Ejemplos:
  *** Prioritario
  *** Personal
  *** Trabajo
  *** Familia
  *** Proyecto X
  * El orden de revisón de bandejas lo eliges tu,
  salvo calendario que es la primera.
  * Tener las bandejas y calendario en el móvil.
  * Nuevo proyecto sera tareas: crear bandeja, listar subtareas, ...
  * Metodología:
  ** Recopilar
  ** Procesar
  ** Organizar
  ** Revisas
  ** Hacer
  * Evitar complejas relaciones de tareas
    (intentar que sean atómicas).
endlegend

:Recopilar;
split
  :Cosas;
split again
  :Notas;
split again
  :Emails;
split again
  :Bandeja X]
split again
  :Bandeja Y]
endsplit
->Procesar;
:¿Qué es?;
if (¿Se puede hacer?) then (SI)
  if (¿En un paso?) then (NO)
    split
      ->Nueva tarea;
      :Nuevo proyecto|
    endsplit
    detach
  else (SI)
    if (¿Se tarda +2 min?) then (SI)
      :¡Hazlo!>
      detach
    else (NO)

      if (¿Es mio?) then (NO)
        split
          ->Nueva tarea;
          :Esperando por "X"|
        endsplit
        detach
      else (SI)
        if (¿Tiene fecha?) then (SI)
          split
            ->Nueva tarea;
            :Meterla calendario]
          endsplit
          detach
        else (NO)
          split
            ->Nueva tarea;
            :Bandeja: XXX]
          endsplit
          detach
        endif
      endif
    endif
  endif
else (NO)
  split
    ->Eliminar;
    :Papelera/
    detach
  split again
    ->Conservar/Incubar;
    :Bandeja: Algún día / quizá]
    detach
  split again
    ->Archivar;
    :Referencia;
    detach
  endsplit
endif
@enduml

Y os pego una imágen svg…que he retocado un poquito.

Y la herramienta para llevarlo acabo pues voy a probar con
Simpletask, app software libre que esta en fdroid de mis amores. Y tener el diagrama en escritorio principal del móvil (cómo icono).

Manual en español de Libreoffice: Domando al Escritor

Gracias al comentario Swicher en un pequeño articulo que hago sobre lo que busca la gente: Ayudando a los que buscan: tutorial libreoffice

Y Swicher dijo:

Swicher
2020-02-11 a las 08:11

También esta Domando al Escritor enfocado en LibreOffice Writer y que podría interesarle a mas de uno.

Gracias por el comentario Swicher.