¿Qué se imaginan que hace un artista de arte conceptual?

Encuentro esta página buscando información sobre las posibilidades de Krita, una herramienta de edición de imágenes de código abierto, muy vinculada al escritorio KDE de Linux y que, quizá por ello, pues es un escritorio que siempre me ha recordado demasiado a Windows, por su peso para conseguir unos efectos que, en buena medida, me son innecesarios, quizá por que yo soy más afín a los escritorios derivados de GNU directamente, como GNOME o, posteriormente, desde mi asco hacia UNITY, linux mint con cinnamon, he sido más usuario de GIMP, pero que es una herramienta que no acaba de despegar, entre otras cosas, por su falta de soporte para gráficos vectoriales (SVG) y, sobre todo, por la imposibilidad de manejar imágenes aptas para impresión en color CMYK.

Esto último me ha hecho buscar alternativas (dentro de lo enormemente alternativo que es el universo linux, ya per sé) a Inkscape, que es la aplicación que más me gusta para diseñar cubiertas de libros o carteles o lo que sea, pero que adolece de soporte para CMYK, lo que me parece imperdonable.

En resumidas cuentas, me fui a explorar las posibilidades de Krita y me encuentro que satisface ambos requisitos (Vectorial y CMYK) pero tiene poca documentación actualizada en español. (Siempre hay alguna deficiencia…)

Lo divertido fue encontrar esta descripción:

Diseñada para artistas de arte conceptual

que me ha hecho preguntarme ¿qué se imaginan que hace un artista de arte conceptual?

Quizá sería más útil decir que cualquier herramienta de mind-mapping es mucho más adecuada para este tipo de artistas, pero eso tan difícil de explicar como hacer entender que una obra pueda ser una idea y no su realización tridimensional.

Así que me río y sigo mi camino.

lolcat

hay días tan cansados
que lo único que leo son artículos
absolutamente prescindibles
casi como de prensa
que te informan de tonterías
de una vacuidad insondable
como este sobre 7 comandos linux para usar sólo por diversión
y he procedido a instalarme uno de ellos
en mi entorno de producción
es decir
en mi ordenador del estudio
aunque habitualmente esto
lo habría hecho en un entorno borrable
como una máquina virtual (que tengo instalada)
con el mismo sistema operativo que manejo
que actualmente es un linux mint 20.2
con soporte de larga duración hasta el 2025
como si el pc
fuese a durar todo ese tiempo.

hay días tan cansados
que las mayúsculas me suponen un esfuerzo

Ser autónomo en el mundo linux

Vivir a la contra ya sabemos que tiene sus consecuencias, pero no por ello abandonaré mi aldea gala desde la que resistir una invasión que me ignora sin el más mínimo reparo. Soy la hormiga delante del elefante en la sala de cine. Y aun así sostengo que instalar (y sostener) linux es un acto político.

Pero cuando llega el momento de tener que instalar un certificado digital, un lector de DNI electrónico, un software de firma electrónica, etc, acaba todo por ser casi imposible.

Y por supuesto la administración ni se molesta en desarrollar para todo tipo de usuario de estas tecnologías cada día más necesarias.

No obstante, he logrado (tras dos días de investigación) en un ubuntu (studio) 20.04 firmar documentos en la web de la Comunidad de Madrid por los que solicitamos (Carmen y yo) una ayuda en la cuota de autónomos de este año.

Para ello he seguido los pasos recomendados en la web de autofirma:

# En realidad, estas 2 primeras operaciones las realicé con Synaptic instalando la openjdk-11 (por defecto)
sudo apt install openjdk-8-jre
sudo apt install libnss3-tools

mkdir temporal_autofirma
cd temporal_autofirma
wget http://estaticos.redsara.es/comunes/autofirma/currentversion/AutoFirma_Linux.zip
unzip AutoFirma_Linux.zip
sudo dpkg -i *.deb

cd ..
rm -rf temporal_autofirma

Y con esto estaría instalado el software de autofirma, pero era necesario tener un certificado digital (PKCS#12) que yo no tenía (Carmen sí), así que intenté todo lo posible por descargar el certificado u obtenerlo desde el DNIe-3.0 mediante NFC con el móvil de Android. No ha podido ser hasta ahora, así que tendré que obtener el mismo mediante solicitud y «personación» en una de las oficinas correspondientes.

Termino algún proyecto

o un fragmento de algún proyecto
o un fragm
y abro una terminal
para tener acceso a la línea de comandos
de linux

dirijo la ubicación
a la ruta sobre la que está montado
el disco de backup
y ejecuto el script
que lleva a cabo la sincronización
de las carpetas que incluyen aquella
sobre la que haya estado trabajando

dirijo la ubicación
a la ruta sobre la que está montado
un pendrive
con ciento veintiocho gigabytes
de capacidad
y ejecuto el script
que lleva a cabo un fragmento de la sincronización
de las carpetas que incluyen aquella
sobre la que haya estado trabajando

cierro
tecleando un comando de salida
la terminal abierta

siento cierta satisfacción
creyendo que controlo algo de la incertidumbre
que acarrea el futuro
creyendo que lo que guardo
es digno de guardarse
para una posteridad sorda

siento cierto poder
cierta sensación de dominio
cierto orgullo rayano en la pedantería
por el conocimiento de un lenguaje
con el que hacerme entender por una máquina
olvidando
que no domino el lenguaje
con el que hacerme entender por un humano

tras la pequeña excursión
pienso en comenzar otro proyecto
o un fragmento de algún proyecto
que esté fraguando

y así
día tras
día.

Los virus aprenden a escribir

Lo más preocupante de que un virus aprenda a escribir es que ya no puedes fiarte de ese instinto que te dice que si un correo electrónico viene con muchas y extrañas faltas ortográficas muy probablemente se trate de un correo peligroso, SPAM o troyano.

Hoy he recibido un par de emails con un asunto sorprendentemente bien escrito:

Espero que estés pasando un día fantástico

y un contenido también bien redactado, incluso haciendo uso de negritas en los lugares adecuados:

¡Es una oportunidad que no debes desaprovechar!

Indicaban que te convenía pinchar en un enlace de bit.ly (esto ya es sospechoso de por sí, pero hay gente que usa acortadores de URL algo inapropiados)

https://XXXbit.ly/3XXXX526XXXXWVh

Si quitas las X aún puedes ir a ver lo que aparece ahí, bajo tu responsabilidad o irresponsabilidad.

Yo, curioso con estas cosas, por viejos hábitos que no hacen al monje, quise ver qué había en ese enlace con la mayor de las seguridades posibles, así que en una máquina virtual Linux (que no tiene acceso a ninguna de las carpetas del anfitrión) dentro de mi sistema principal Linux habilité la compartición del portapapeles bidireccionalmente (lo que ya me pareció un riesgo alto, pero me dio pereza teclear la dirección manualmente), en esa máquina abrí un firefox y lancé a copiar la URL en cuestión, encontrándome que me dirigía a una web que no tiene una pinta muy maliciosa:

salvo para personas incautas que crean que si no pagan en esa pantalla van a tener algún problema. Navegué por otras páginas y cerré esa pestaña sin el más mínimo problema… aunque no probé con otros navegadores quizá más expuestos, móviles incluidos, pues mi curiosidad tiene un límite.

Full Upgrade

Estoy realizando un «full upgrade» de una de mis máquinas virtuales, por si no tuviese bastante con las máquinas reales para mantenerlas. Y se ha producido este bonito efecto de repintado de ventanas deficiente, con la poca memoria de vídeo que le adjudico a las instancias del VirtualBox.

Así que he decidido que se merecía una captura de pantalla y una entrada de este diario ilegible.

Metafóricamente, por si no se ha entendido… estoy haciendo full upgrade y tengo cierta envidia de no poder hacerme uno a mí mismo. Pero mi virtualidad no llega a tanto.

Otra de las capturas de esos repintados ha sido este peculiar código de barras, o espectro electromagnético…

Llegará el día en que añore las clases online

El otro día veíamos en un grupo una clase dedicada a Emmy Hennings, una de las fundadoras (olvidada, por motivos obvios) del Cabaret Voltaire, que dio origen a Dadá.

Me alegró la tarde (que no iba mal) que las dos personas que estaban asistiendo, en cuanto se mencionó la palabra «Cabaret», sacaron sendas boas cabareteras de colores vibrantes y no supe ni reaccionar. Me habría partido de risa, pero yo estaba «en modo serio» y me pilló con el pie cambiado. Ahora bien, no perdí la oportunidad de hacer una captura de pantalla que recogiera ese momento.

Poco a poco las clases de los Talleres de Poesía y Escritura Creativa de la Asociación Cultural Clave 53 vuelven a ser presenciales; así, por ejemplo, ya van a serlo los dos grupos de los jueves (a las 8 y a las 9), salvo excepciones y, por supuesto, manteniendo todas las medidas recomendables para garantizar la seguridad, dentro de lo posible, además de ofrecer la posibilidad de conectarse online a quienes por la razón que sea no puedan o quieran venir presencialmente (lo que va a quedarse al menos durante un curso más, pues pronto volverá a haber nuevos oleajes que nos tendrán en vilo).

Esta opción es algo incómoda porque hay muchas dificultades tecnológicas que afrontar, como el hecho de tener que usar 2 dispositivos de cámara, uno para que se oriente hacia mí y otro hacia la gente que haya venido a la clase a seguirla de manera presencial. Pero al mismo tiempo evitando que los dispositivos de audio de ambos dispositivos se acoplen produciendo sonidos muy molestos que nos recuerdan que hay un medio, y no un fin.

He probado algunas configuraciones de equipos y seguro que podría ser mejor, si hiciese un desembolso de dinero irrazonable para el uso que le voy a dar… espero.

De momento, el portátil de backup de Carmen de la Rosa es el que utilizo para seguir la clase (es un equipo que ya no está en su punto álgido de rendimiento, pero que ha sido preparado para aguantar un poco más), mientras mi móvil (un Xiaomi de gama baja) es utilizado para que quienes no están puedan ver a quienes están presentes, montándolo sobre un trípode para que esté a una altura conveniente.

El problema es que necesitaría un micrófono con altavoz inalámbrico para conectarlo al móvil que pudiese poner en el centro de la mesa y nos oyesen con claridad, pero quiero ahorrar ese consumo utilizando los recursos que ya tengo, así que he montado una especie de Frankenstein con unos micrófonos inalámbricos que tenía y un auricular también inalámbrico que me regalaron mis alumnos hace más de un lustro.

Probaré un par de clases a ver si tengo que terminar por adquirir un chisme más que seguro que me da algún problema de compatibilidad con mi Ubuntu Studio

CD o DVD

Hoy estoy perdiendo el tiempo en busca de fuentes para obtener el número de personas sobre la faz de la tierra y ver la manera de convertir esa cifra en un número de bits que almacenar en un soporte como puede ser un CD o un DVD.

El objetivo sería escribir tantos bits como personas hay en el planeta (puedo caer en el «binarismo» de asignar 0 a un sexo y 1 al otro, o ignorarlo) en un CD e ir generando CDs con las estimaciones de Personas Vivas sobre la Tierra cada cierto periodo de tiempo.

He encontrado una fuente importante de datos en la ONU, como si fuese un organismo útil, pero no encuentro la manera de acceder a esos datos desde línea de comandos, lo que me encantaría.

Tampoco sé la manera de escribir un archivo en linux directamente en código binario, escribiendo bits y no bytes. Tendré que repasar la rama dura de la programación en C o en ensamblador.

Creo que lo que intento es tan ridículo como habitualmente hago, pero no por ello quiero dejar de hacerlo.

Diccionario RAE Completo

He decidido dar por concluida la ordenación del Diccionario de la RAE, que me descargué con el programa buscaenrae.sh y el programa descargarae.sh hecho para la ocasión y que leía el archivo con la lista de palabras (al que impropiamente denominaba diccionario), para descargar, una a una, las páginas correspondientes.

Todo partió del trabajo que realicé para el proyecto del Diccionario Personal de Isidoro Valcárcel Medina, en 2015.

Ahí nos encontramos con la negativa de la RAE a ceder el diccionario en modo digital, así que tuve que teclear las entradas del mismo a lo largo de más de 3 meses. Finalmente, acabé teniendo una lista de 90940 palabras, algunas de las cuales eran acepciones repetidas. Si quitábamos las palabras que tenían más de una acepción y que estaban en el archivo etiquetadas con un número 1,2,… según procediera, nos quedaban 88296 palabras (debería llamarlas «entradas»).

Por supuesto, estaban plagadas de errores:

  1. En primer lugar los propios de tecleo.
  2. En segundo lugar (oh, my god!) tenía incluidas en mi colección las palabras que Isidoro había decidido incluir en su diccionario personal independientemente de las que hubiera en el de la RAE.
  3. En tercer lugar (y esto resultó ser lo peor), muchas palabras han «desaparecido», pues la entrada no corresponde a la palabra… por ejemplo, la palabra «poeta, tisa», no está en el diccionario sino en «poetisa», así que la palabra poeta no se encuentra en la RAE como tal.

Así que el programa contemplaba la necesidad de decirme si tal o cual palabra no estaba en el diccionario de la RAE (en la versión online)

Actualización 2020
La Real Academia Española (RAE) y la Asociación de Academias de la Lengua Española (ASALE) han emprendido ya las tareas de redacción de la nueva edición de su Diccionario de la lengua española (DLE), que tendrá las características fijadas en la planta aprobada por todas las Academias de ASALE. Con el objetivo de que el desarrollo de esa nueva edición, forzosamente lento, no retrase la inclusión de nuevas palabras y acepciones ni la modificación de las ya incorporadas que necesiten enmienda, se ha optado por publicar estas actualizaciones anualmente.

La que ahora se pone a disposición de todas las personas interesadas recoge las modificaciones aprobadas por todas las Academias en 2020 y tendrá la consideración de versión electrónica 23.4.

Ya de paso, como podía hacerlo, me informé de si la palabra que estaba consultando era o no conjugada, lo que significaba que era un verbo. Un bonito plus que no esperaba.

Con la lista de errores generada, fui revisándolas palabra a palabra, las 1245 entradas no encontradas, entre las que estaban, ni más ni menos: poeta.

Así que a lo largo de los últimos meses del 2020 fui dejándome los ojos para ir revisando esos errores y fabricando una lista de palabras que se corresponda lo más posible con la «oficial» de la RAE.

Ha quedado una lista de 88024 «entradas» que se corresponden con 90452 palabras (ya teniendo en cuenta que algunas entradas o vocablos tienen varias palabras (a veces me confundo y denomino a eso acepciones).

Una vez corregida y revisada, aunque asumo aún un error considerable que no puedo prever, tengo la posibilidad de descargar el diccionario completo palabra a palabra con el programa buscaenrae.sh

 

#!/bin/bash

### FUNCIONES ÚTILES PARA EL PROGRAMA
# uso() Instrucciones del programa y salida en caso de error.
uso () {
  echo "Uso: $0 salida palabra"
  echo -e "\tsalida es un valor númerico que identifica:"
    echo -e "\t[0] para generar un archivo HTML con la respuesta"
    echo -e "\t[1] para generar un archivo TXT  con la respuesta"
    echo -e "\t[2] para generar una línea  TXT  con la respuesta"
  exit
}
f_verbos="00000_VERBOS.txt"
f_errores="00000_ERRORES.txt"

# CONTROL DE ENTRADA DE VARIABLES y ASIGNACIÓN
if [ $# -lt 2 ]
then
  # Reportar uso inapropiado
  uso
else
  salida=$1
  if [ $# -eq 2 ]; then
    palabra="$2"
  elif [ $# -eq 3 ]; then 
    palabra="$2 $3"
  elif [ $# -eq 4 ]; then 
    palabra="$2 $3 $4"
  elif [ $# -eq 5 ]; then 
    palabra="$2 $3 $4 $5"
  fi
  # echo "Palabra es #$palabra#"
fi

# CONSULTA DEL SERVIDOR de la RAE simulando ser uno de los diversos navegadores posibles
navegador=(
  "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:15.0) Gecko/20100101 Firefox/15.0.1"
  "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:77.0) Gecko/20100101 Firefox/77.0"
  "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:77.0) Gecko/20190101 Firefox/77.0"
  "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.75.14 (KHTML, like Gecko) Version/7.0.3 Safari/7046A194A"
)
rnd=`echo $(($RANDOM%${#navegador[@]}))` # Elegimos un navegador al azar
# Hacemos la petición a la web de la RAE
curl -s --user-agent "${navegador[$rnd]}" https://dle.rae.es/"$palabra" > ./"$palabra.html"

# PROCESAMOS EL ARCHIVO OBTENIDO (Cortamos, retiramos lo innecesario, etc)
# Si se trata de un verbo, quitar las conjugaciones
id_conjugacion="<div id='conjugacion'>"
esunverbo=`grep -c "$id_conjugacion" ./"$palabra.html"`
if [ $esunverbo -gt 0 ]
then
  echo "$palabra es un verbo" >> $f_verbos
  # ELIMINAMOS la(s) CONJUGACIÓN(ES)
  sed -i "/${id_conjugacion}/d" ./"$palabra.html"
fi

# Si tiene más de una acepción (Calcular cuántas después de saber si es un verbo)
id_acepcion="<article id="
id_acepcion_fin="<\/article>"
num_acepciones=`grep -c "$id_acepcion" ./"$palabra.html"`
# Si no tiene acepciones, la palabra no existe. No continuamos.
if [ $num_acepciones -eq 0 ]
then
  echo "$palabra no se ha encontrado en la RAE" >> $f_errores
  rm "./$palabra.html"
  exit
fi

# PARTIR en $num_acepciones EL FICHERO $palabra.html"
# acepciones y acepciones_fin son 2 arrays de líneas PRECISO CONVERTIRLOS a cortes[]
acepciones=`grep -n "$id_acepcion" ./"$palabra.html"|awk -F":" '{print $1}'|sed ':a;N;$!ba;s/\n/ /g'`
c=0
for i in $acepciones
do
  let cortes[$c]=$(($i))
  let c=$(($c+1))
done
acepciones_fin=`grep -n "$id_acepcion_fin" ./"$palabra.html"|awk -F":" '{print $1}'|sed ':a;N;$!ba;s/\n/ /g'`
c=0
for i in $acepciones_fin
do
  let cortes_fin[$c]=$(($i))
  let c=$(($c+1))
done

# GENERA FICHEROS palabra.X.html por cada ACEPCIÓN
for (( i=0; i<$num_acepciones; i++ ))
do
  # echo "El comienzo del corte está en ${cortes[$((i))]}"
  # echo "El fin del corte está en ${cortes_fin[$((i))]}"
  sed "${cortes[$((i))]},${cortes_fin[$((i))]} !d" "./$palabra.html" > "./$palabra.$i.html"
  # Distintas salidas del programa, en función de la variable "salida"
  if [ $salida -gt 0 ]   # Salida a modo TXT
  then
    w3m "./$palabra.$i.html" > "./$palabra.$i.txt"
    if [ $salida -gt 1 ] # En una sóla línea
    then
      sed ':a;N;$!ba;s/\n/ /g' "./$palabra.$i.txt"|sed 's/  / /g' > "./$palabra.$i.1linea"
    fi
  fi
done

# BORRAR indica si dejar o no los archivos que no se deseen como salida 
BORRAR=1
if [[ $BORRAR -eq 1 ]] && [[ $salida -gt 0 ]]
then
  rm "./$palabra."*html
  if [ $salida -eq 2 ]
  then
    rm "./$palabra."*txt
  fi
fi
# SALIDA FORZADA
exit

 

Este programa era invocado con el siguiente miniprogramita que, leyendo de la lista de palabras corregidas que, impropiamente, denominé diccionariosinrepes.txt, obtiene las diversas, impropiamente denominadas, acepciones y las separa en 90452 archivos de una única línea.

#!/bin/bash

### FUNCIONES ÚTILES PARA EL PROGRAMA
# uso() Instrucciones del programa y salida en caso de error.
uso () {
  echo "Uso: $0 [diccionario]"
  exit
}

# CONTROL DE ENTRADA DE VARIABLES y ASIGNACIÓN
if [ $# -gt 1 ]
then
  # Reportar uso inapropiado
  uso
elif [ $# -eq 1 ]
then
  diccionario=$1
else
  diccionario=diccionariosinrepes.txt
fi

while IFS= read -r line
do
  buscaenrae.sh 2 $line
done < $diccionario

Descargadas y archivadas en una estructura de carpetas obvia:

dict -> LETRA

Se pueden reordenar o «recompilar» en una LETRA, con sus definiciones incluidas, sin incluir, etc…

Lo hago usando otro script simple:

#!/bin/bash

# El diccionario completo está por acepciones en las carpetas
# dict/LETRA
# Cada acepción (en realidad entrada en el diccionario) tiene
# un archivo denominado PALABRA.N.1linea conteniendo su definición.
# (donde N es el número de acepción contando desde cero)

letras="A B C D E F G H I J K L M N Ñ O P Q R S T U V W X Y Z"
for letra in $letras
do
  ls dict/$letra > dictporletra/$letra.archivos.txt
  awk -F"." '{print $1}' dictporletra/$letra.archivos.txt > dictporletra/$letra.acepciones.txt
  ls dict/$letra/*.0.1linea |awk -F"/" '{print $3}'|awk -F"." '{print $1}' > dictporletra/$letra.sinrepes.txt
  cat dict/$letra/* > dictporletra/$letra.definiciones.txt
done

cat dictporletra/*.archivos.txt > DICCIONARIO_TOTAL.archivos.txt
cat dictporletra/*.acepciones.txt > DICCIONARIO_TOTAL.acepciones.txt
cat dictporletra/*.sinrepes.txt > DICCIONARIO_TOTAL.sinrepes.txt
cat dictporletra/*.definiciones.txt > DICCIONARIO_TOTAL.definiciones.txt

Pero queda por resolver un problema que me tiene algo martirizado desde hace meses y es que la ordenación es muy compleja realizarla, pues muchas entradas en el diccionario son dobles, como «ad hoc», pero las definiciones descargadas incluyen líneas que son del tipo: «i Escrito con…» y desde el punto de vista del uso del comando sort, es más o menos lo mismo que decir que si quiero ordenar las primeras como «adhoc», la «iEscrito» se sale de su lugar.

He ordenado muchas manualmente sobre esta compilación, pero es un trabajo absolutamente aberrante y seguro que se puede hacer mejor, así que de momento he decidido dejar de trabajar en esto y dar por cerrado este proyecto que, en realidad, es la puerta de entrada a muchos otros.

Espero que el orden no sea algo tan terrible en esos otros proyectos venideros.

Dejo a disposición pública el Diccionario Completo que he generado de esta manera, con la estructura de carpetas generada, así como los programas utilizados para su procesamiento.

RAE-COMPLETO.tar

Repositorios microsoft en RaspBerry Pi con Raspbian

Desde que tengo mi Raspberry PI 3, he instalado diversas cosas, pero no recuerdo haber instalado nada de Microsoft ni por asomo. Sé que Raspbian no un Debian puro, pero de ahí a que me añadan un repositorio de Micro$oft… creo que va un abismo.

Así que estoy desando tener algo de tiempo libre para instalar mi servidor web y blog de backup o de desarrollo en un Debian puro sobre Raspberry, que sé que es posible, aunque aún no he encontrado ese huequito temporal.

No es algo que me preocupe mucho, pero he de reconocer que me molesta hacer tan siquiera un ping a un servidor de la empresa en cuestión.

Esto no es una broma