miércoles, 13 de marzo de 2019

bchunk: extracción de pistas de un disco de música con formato bin cue

En ocasiones podemos encontrar entre los extras de un DVD de una película la banda sonora. Como ya he dicho hace poco, estay con la idea de eliminar completamente todas las unidades ópticas de los ordenadores y los Cds y DVDs, que ocupan mucho sitio, se leen muy lentamente y, al contrario de lo que pensábamos hace años, ahora sabemos que no podemos asegurar su duración en el tiempo. El último DVD con el que he estado transformando para eliminarlo, la unidad con extras presenta una banda sonora que se extrae como un fichero bin,


una imagen en formato binario, cuyas pistas están referenciadas por un fichero cue. Este formato no es manejable en los dispositivos que usamos para escuchar la música. Muchas páginas Web recomiendan IsoBuster para la extracción de las pistas; pero IsoBuster es un programa para Windows, y aunque en su página Web nos recuerda que podemos usar Wine, creo que todos los usuaros de Linux preferimos usar un comando en terminal que tener que instalar un paquete de Windows. Y esto nos lleva a bchunk.
bchunk (BinChunker) es un programa que nos permite, como dice su página Web "binchunker converts a CD image in a ".bin / .cue" format (sometimes ".raw / .cue") to a set of .iso and .cdr tracks". Es decir, simplemente con esta orden

bchunk fichero.bin fichero.cue nombre.bso

nos extrae de una imagen bin de un disco de audio las pistas en formado cdr. Si queremos extraer un formato más sencillo de manejar (para la transformación de un cdr precisamos SoX —Sound eXchange, the Swiss Army knife of audio manipulation, como podéis ver en man sox—), con la opción -w extrae las pistas en formato WAV. Es decir,

bchunk -w fichero.bin fichero.cue nombre.bso

extrae las piezas de música en formato wav. Luego con cualquier conversor (a mi me gusta soundkonverter) lo podemos comprimir en flac sin pérdida y/o pasarlo al formato que queramos. Yo suelo guardar los originales ripeados en formato FLAC sin pérdida, que queda aproximadamente en la mitad de tamaño que un wav; si luego vuestros dispositivos necesitan otro formato, por ejemplo MP3, lo generáis desde el FLAC y siempre se conserva una copia sin pérdida.
Para más opciones, revisen man bchunk, donde explica algunas características especiales para imágenes bin en formatos PSX o raw.

viernes, 1 de marzo de 2019

De R en terminal a RStudio

Desde hace años realizo todas las pruebas estadísticas en R. Debido a mi edad (yo trabajaba en el siglo pasado con MS-DOS) y la costumbre al terminal de Linux, nunca he tenido problemas para usarlo en terminal.


Otros menos acostumbrados a la consola se han inclinado por RCommander, una máscara gráfica


que cumple las necesidades básicas y algunas de las avanzadas, pero no todas las que yo necesito, por lo que de nada me sirve escaparme de los comandos.
Sin embargo, tras un tiempo de resistencia, he decidido utilizar RStudio. En este caso, estamos ante un Entorno de Desarrollo Integrado para el uso del lenguaje R.


¿Qué me ha convencido para ello? Vamos a ir viendo algunas ventajas:
1. Tiene un editor de código incorporado que hace resalte de sintaxis; no es fundamental, ya que el código siempre lo he escrito en gedit, que también me hace resalte de sintaxis.
2. Autocompletado de código, y atajos de teclado para incluir algunos caracteres; interesante, pero no fundamental.
3. Ayuda integrada sobre la escritura de código, indicando sintaxis y argumentos; interesante también, pero tampoco fundamental.
4. Cuatro ventanas que te permite ver el código, los resultados, la ayuda y otras cosas al mismo tiempo. Interesante, pero no fundamental.
5. Se puede trabajar en proyectos separados. Nada que no pudiera hacer en R con diferentes terminales, uno (o más) para cada proyecto...
y otras muchas cosas que no uso. Lo que verdaderamente considero importante es el manejo de los gráficos. En general, la ventana de gráficos suponía la eliminación del anterior al generar uno nuevo, con lo cual debemos extraerlo antes de mandar uno nuevo; y eso es un problema cuando lanzas un script largo con muchos comandos. Sin embargo, con RStudio los gráficos se van almacenado en la pestaña "plots", los puedes analizar y luego guardar los que quieras.
Tiene también una segunda ventaja; como en mis clases también la estadística es una herramienta fundamental, una máscara gráfica impresiona menos que un terminal, ya que los alumnos no son ni matemáticos ni programadores.

miércoles, 20 de febrero de 2019

Solitario 48... en una sola vuelta

Pues sí, es la primera vez que lo logro. En el Solitario Cuarenta & Ocho de KPatience he terminado el solitario sin segunda vuelta.


En general, en este solitario tengo un porcentaje de acierto del 75%, y siempre lleva un rato, pero en este caso la combinación de las cartas fue tan sencilla que lo terminé muy rápidamente y sin tener que recurrir a la segunda vuelta, donde vas rellenando lo que falta si has acertado en las elecciones de cartas.

domingo, 20 de enero de 2019

División de ficheros de sonido mediante ficheros cue: versión mejorada

Ya había hablado hace años respecto a la división en terminal de discos de música comprimidos en un solo fichero. Creo que merece la pena hacer una revisión, ya que en estos momentos podemos hacerlo mediante una orden más corta y ya no es necesario disponer de una librería externa fuera de repositorio para la compresión monkey audio. Gstreamer plugin contiene codecs para monkey audio, y ya no es necesario busca por ahí adelante una librería que nos permita la convertir ficheros ape a flac. En estos momento sí estoy en el proceso de eliminación de CDs de música, que ocupan mucho (tengo más de 15 metros) y solo me quedan dos lectores capaces de leerlos, la grabadora del ordenador principal y una cadena de música del siglo pasado. Esto lleva a un engorroso procesado de lectura, extracción en calidad digital en piezas flac, para evitar pérdida de calidad y posterior etiquetado id3 para que mantenga información del álbum, autor y título de pieza. Sin embargo, en la red disponemos de copias digitales sin pérdida que nos permite evitar en engorroso y lento proceso de extracción digital. Estos ficheros suelen estar disponibles como un fichero flac o ape —de ahí esa información previa sobre el sonido monkey— y un fichero cue que indica los metadatos asociados a ese disco. En la entrada que señalo al principio describía los comandos que utilizaba para dividir estos ficheros, pero hemos mejorado el proceso:
1. División del fichero. Usaremos el comando shnsplit (instalar previamente shntool: su -c 'dnf install shntool')

shnsplit -f CDImage.cue -o "flac flac" -t "%n %t" CDImage.ape

Sobre las opciones de shnsplit, mirar aquí o poner shnsplit -h. En este caso:
-f file.cue para indicar de donde extraer los metadatos correspondientes a este fichero
-o codec deseado en la salida (en est caso flac de salia usando el codec flac; la otra opción en mi máquina era "flac ffmpeg"
-t poner en el nombre de los ficheros salida %n el número de pieza y %t el título


2. Etiquetar las piezas. Usaremos el comando cuetag.sh (instalar previamene cuetools: su -c 'dnf install cuetools')

cuetag.sh file.cue *.flac

lo que etiqueta las piezas con los metadatos del fichero cue.

y listo. Sencillo y ahorra un tiempo precioso al evitar extraer uno a uno los CDs de música que tengáis en casa y que ya no podemos leer por falta de dispositivos. No es difícil, Sound-Juicer configurado adecuadamene os extrae la música en flac sin problemas, pero consume mucho tiempo y hay que ir de uno en uno. Una vida entera para recuperar la música (si recuerdo lo que me llevó digitalizar las cintas de audio y vídeo me entra un dolor la cabeza).

martes, 8 de enero de 2019

Conversión de un PDF a imagen. Imagemagick, convert y la calidad obtenida

Al contrario que la entrada anterior, ahora me han pedido que convirtiera una ficha editable en una imagen. Lo más sencillo es convertir el ODT en writer a pdf y este a una imagen con convert (comando de imagemagick),


sin importar el número de páginas, ya que convert convierte a cada una en una imagen.

$ convert fichero.pdf fichero.png  # o jpg, según las posibilidades del programa destino

El problema es la calidad de salida. Para PDFs con texto e imágenes, los resultados salen mejor introduciendo algunos parámetros

$ convert -density 300 -quality 96 fichero.pdf fichero.png

Y así sale de manera adecuada. Y si no, que cada uno se ajuste a las muchas posibilidades de convert

man convert

Nada como un terminal pata negra



viernes, 21 de diciembre de 2018

OCR de una imagen: tesseract y gImageReader

El otro día tuve que comprobar si dos documentos eran idénticos. Ambos eran grandes y lo mejor era hacer un diff sobre ellos, pero uno venía como un documento editable (un doc de toda la vida) y el otro era un PDF en que cada página era una imagen escaneada. Eso llevaba a una lectura larga de un documento sobre otro, o bien hacer un OCR —Reconocimiento Óptico de Caracteres— en el segundo fichero (sí, debería ser ROC en español, pero eso me lleva a confusión sobre la curva ROC, que es español debería ser COR etc; dejémoslo ahí). En  Linux disponemos de Tesseract, a través de terminal. Curiosamente, al buscar si tenía instalada la librería tesseract (Super + tesseract), lo primero que salía era un icono con nombre gImageReader.


Nunca lo había usado, pero la verdad es que es muy sencillo, aplica directamente Tesseract y se obtiene una salida. Finalmente comparé los dos textos mediante meld; eran idénticos, lo que quiere decir varias cosas:
- El trabajo se hizo en 2 minutos (no en tres o cuatro horas de comparación). Muchas gracias a OCR.
- Tesseract es muy fino, por que no hubo prácticamente errores de identificación (hubo que comprobar muy pocas cosas).

Lo que no sé es cuando instalé gImageReader, ya que por lo que veo no forma parte de las aplicaciones de Gnome, y por tanto no se instala con el sistema; o al menos no lo creo.
Seguramente me saldría igual con el terminal (tesseract y diff), pero el resultado ha sido magnífico en muy poco tiempo; no discutiremos lo que sale bien

jueves, 29 de noviembre de 2018

¿Editando vídeos en un smartphone? A dónde vas...

Me he encontrado con un caso que para mi, a mi edad, me parece bien extraño. Alguien (Mr X, que no quiere ser reconocido en esta oscura historia) quiere hacer un vídeo introductorio corto y para ello decide instalar un programa (se dice app, ¡carca!) en el teléfono, un tal Kinemaster. Hace con cuatro clics un vídeo, le mete música de fondo, y todo orgulloso me lo enseña. Incluye, ya que es la versión gratuita, una marca de agua. Pregunté yo si necesitaba el vídeo en ese mismo momento, y resulta que no. Así que hice una foto del objeto principal de la historia (sí, la hice sin bajarla de ningún lado, y con una cámara de fotos, no con el teléfono); en gimp hice un desenfoqué para que hiciera el mismo efecto que Kinemaster, creé un logo similar al que había cogido en la red, corregí su gamma y 4 cositas más. Con esa foto y openshot generé un vídeo de los mismos 11 segundos, introduje un aumento hacia delante similar al logrado por Kinemaster e incluí la misma música (solo 11 segundos, por cuestión de derechos de autor), y quedó perfecto. Ni una marca de agua, sin problemas de derechos de autor de la foto o del logo, por que los hice yo, edité con software libre (free en libre y free en gratuito) y me quedó igual de bien y sin marca de agua.
¿Para qué narices necesitamos editar un vídeo en un teléfono, o pagar para evitar una marca de agua? Tenemos todo lo necesario a nuestro alcance y nunca ha existido la necesidad de mandar un vídeo editado de manera inmediata.
Cada día me gusta menos la velocidad que está desarrollando el mundo. Ya he pasado de Facebook, pero el siguiente éxito verdadero será poder tirar el móvil a la basura.




miércoles, 31 de octubre de 2018

Actualización de Fedora 28 a 29... pero por terminal

Siguiendo las indicaciones de Fedora Magazine, hoy he actualizado Fedora 28 a 29. Eso si, al contrario de su primera indicación, de realizarlo sobre Software, he preferido hacerlo en el terminal, con los comandos habituales desde la primera vez:

su -c 'dnf upgrade --refresh'
su -c 'dnf install dnf-plugin-system-upgrade'
# su -c 'dnf system-upgrade download --releasever=29' Este comando necesito ser:
su -c 'dnf system-upgrade download --allowerasing --releasever=29'
su -c 'dnf system-upgrade reboot'

Ese allowerasing se debe a una incompatibilidad de vlc y una librería. Al acabar la actualización simplemente he instalado vlc. Ejecuté los comandos en unos minutos y lo dejé reiniciando mientras comía.
Listo.
PD. Lo único que me falta son un montón de fondos de pantalla que tendré que volver a poner (o no).




lunes, 22 de octubre de 2018

Cuando nos olvidamos de tune2fs...

Cada vez que compramos un disco duro y lo formateamos para nuestro uso no debemos olvidarnos de revisar como se distribuye su espacio, por que el sistema operativo puede estar "sisándonos" parte del espacio. Cada vez que formateamos a ext4 un disco, reserva un 5% para root; sí, ese que solo es necesario de vez en cuando. Solo es necesario mantener una parte del disco para root en el disco de sistema; los demás no necesitan darle medio diezmo al administrador, y muchas veces nos olvidamos. Y lo digo por que yo me he olvidado en las últimas adquisiciones, como descubrí el otro día. Pero no hay que preocuparse, tune2f nos lo soluciona, como ya había señalado aquí y aquí y luego olvidado.
Para estar seguros, primero comprobamos como se distribuye el disco tras su formateo:

su -c 'tune2fs -l /dev/sdxn' # o sudo para los amantes del riesgo

y buscamos:

...
Block count:                   x # Según en disco
Reserved block count:              1/5 x # Seguro que no da cero

...

Ejemplo para disco sistema 256GB:

Block count:              244190456
Reserved block count:     12209522

Si es así, podemos aplicar la medicina

su -c 'tune2fs -r 0 /dev/sdxn'  # -r reserved-block-count

o

su -c 'tune2fs -m 0 /dev/sdxn' # -m reserved-block-percentage

El valor x depende según la identificación del dispositivo (a, b, c...) y n según la partición, lo que vuelve a cero los bloques reservados. En el caso de ser un disco de sistema debemos dejar algo para root, para evitar que en algún momento el disco pueda quedar sin espacio y el sistema no pueda escribir los ficheros log. Es decir, hay que mantener un porcentaje razonable en función del tamaño de disco, que visto el tamaño de los discos de hoy, y aunque antes haya recomendado un 2%, creo que ahora con un 1% es más que se sobra.

No os olvidéis. Lo digo por que un 5% de los discos actuales es mucho espacio.



viernes, 21 de septiembre de 2018

Emparejamiento de los dispositivos PLC

El PLC es mi mano derecha en la distribución de red en mi casa desde hace mucho tiempo. Como ya he explicado hace unos meses, he cambiado mis dispositivos dLink DHP-P306AV originales a unos con una capacidad mayor, un TP-Link TL-PA9020P, estándar HomPlug AV2, con tasas de transferencia de alta velocidad (2000Mbps), que puede establecer múltiples conexiones simultáneas y con 2 Puertos gigabit dirigidas a la SmartTV 4k y multiconexión. Para mejorar el uso de la WiFi, he incluido un TP-Link TL-WPA4530, y para cubrir el resto de las conexiones (PS4, otro ordenador fijo y portátiles) mantengo dos TL-PA4010P. Eso supone la conexión de 6 dispositivos PLC simultáneamente. A la vuelta de vacaciones no funcionaba prácticamente ninguno de los dispositivos, y el emparejamiento se hizo casi imposible. La solución fue emparejarlos en enchufes cercanos al router todos al mismo tiempo, lo que supuso poner tres en un enchufe, unos conectados sobre los otros, y otros tres en otro enchufe al lado y presionar la tecla de emparejamiento dentro del período de unos pocos segundos. Ninguna de las otras maneras había funcionado, supongo que por la distancia entre enchufes y el tiempo entre apretar la primera tecla y la última. Aviso para los que por no poder utilizar las aplicaciones solo disponibles para Windows y Mac se encuentren con un problema parecido.