viernes, 31 de mayo de 2024

Arrays en bash: un ejemplo práctico y explicativo

En bash también podemos usar arrays, para ello voy a hacer un sencillo script que me compila todos los archivos .c que habría que compilar uno a uno en el emulador CPCEC:

#/bin/bash
emulators=(cpcec zxsec xrf csfec msxec runec)
for i in "${emulators[@]}"
do
    echo "** Compiling $i, please wait... **"
    gcc -fsigned-char -DDEBUG -DSDL2 -O2 -xc $i.c -lSDL2 -o$i
    chmod +x $i
done

Vamos a analizar cada línea:

  1. Definimos este archivo como un script bash.
  2. Definimos emulators como un array, para ello se ponen los valores entre paréntesis separados por un espacio, si algún valor tuviera un espacio debería estar entre comillas o escapado poniendo antes del espacio el caracter \
  3. Línea que crea el bucle que recorre todos los valores del array definido en la variable "emulators".
  4. Inicio del bucle, dentro de él $i será cada uno de los valores del array en cada iteración.
  5. Texto informativo.
  6. Instrucción de compilación.
  7. Dar permiso de ejecución al binario generado.
  8. Fin del bucle.
 

viernes, 24 de mayo de 2024

Quitar ruido de un vídeo

Si grabas vídeos con un micrófono normal y corriente o los ventiladores de tu ordenador meten mucho rudio, NO te tienes que gastar una fortuna en un micrófono profesional y una gabina de aislamiento, grabas tu vídeo con el ruido y luego se lo quitas digitalmente... siempre y cuando NO sea muy bestia, ¿cómo? Ahora lo vemos...

Paso 1: Grabar el vídeo

En mi caso creo el screencast con Vokoscreen NG, un programa muy simple, que aún así tiene varias opciones interesantes, como capturar de una webcam en una ventanita, mostrar las teclas que pulsas, elegir fuentes de sonido, etc...

Para cosas más elaboradas también tenemos OBS Studio pero este tiene algo más de curva de aprendizaje, aunque no es que sea excesivamente complejo.

Pero podrías usar cualquier software que capture vídeo de tu ordenador.

 

Paso 2: Extraer la pista de audio y limpiarla

Si usas Audacity puedes abrir directamente el archivo de vídeo, limpiarla de ruido y guardar el audio como archivo mp3 por ejemplo.

Pero si lo prefieres puedes extraer el audio y después trabajar con él directamente en Audacity: 

ffmpeg -i videooriginal.mp4 audio.mp3

Para quitar el ruido, puedes seguir el manual que hice hace tiempo y en el que se explica paso a paso como eliminarlo.

 

Paso 3: Quitar la pista de audio del vídeo y sustituirla por la pista limpia obtenida con Audacity

Puedes usar varios programas de edición de vídeo para esta tarea, como KDEenlive, Lossless cut, pero la manera más rápida y directa es desde consola, para ello lo primero es instalar ffmpeg si es que no lo tenemos instalado aún:

sudo apt install ffmpeg

Quitarmos el audio del vídeo:

ffmpeg -i videooriginal.mp4 -c copy -an videooriginalsinaudio.mp4

Y después unimos el vídeo con la pista de audio con el siguiente comando:

ffmpeg -i videooriginalsinaudio.mp4 -i audiolimpio.mp3 -c:v copy -c:a copy videoconaudiolimpio.mp4

Y listo ya tenemos el vídeo final.


Fuentes:

viernes, 17 de mayo de 2024

Usar el televisor Samsung QLED Q60C sin Internet

A finales del año pasado me compré una Smart TV Samsung de 65", el modelo QLED Q60C, no pude comprarme un televisor de esas pulgadas no smart porque no los hay.

Afortunadamente, hay una manera de hacer que se comporte como un televisor normal, a continuación os contaré como hacerlo y al final expondré las razones que me han empujado a tomar esta decisión.

Unsmart Samsung QLED Q60C

Pensaréis que este artículo es de algo muy tonto desactivar la red a un dispositivo y ya, pero como os voy a contar no va a ser tan trivial convertir este gran televisor en uno de los siempre pero más grande. 

 

Reto 1: Quitar Smart HUB

Cuando uno enciende un televisor, incluso un smartTV, lo lógico es que lo que veamos sea una canal de televisión o una fuente externa, sin embargo este modelo  lo que se inicia es un panel con una serie de servicios por Internet en el que hay dos servicios perdidos entre todos, uno para ver la televisión por antena y otro para usar un dispositivo externo como es mi deseo.

smartHUB, ¡estorbas!

Quitar el arranque de SmartHub por defecto al iniciar el televisor es un paso muy importante antes de quitar la red del televisor para que no nos complique las cosas después. 

Afortunadamente esto ya lo conseguí hace unos meses, si no lo habéis hecho aún, quitadlo antes de seguir, es muy sencillo.


Reto 2: El mando

Un "pedazo de mando" para un pedazo de televisor...

Es ridículo, ni siquiera tiene números para cambiar de canal, completamente pensado para usar todo por Internet, eso sí, es solar y trae un micrófono para escuchar. :D

Algo poco conocido es que estos televisores son parcialmente compatibles con mandos de televisores Samsung viejos (incluso modelos de tubo), pero lo más recomendable es pillarse un mando chinorris de 8€ compatible Samsung, completamente compatibles con todas las funciones para los últimos televisores de la marca y con otros con décadas a sus espaldas, éste es el mío:


Este mando es esencial también para poder desconectar el aparato y sobre todo para disfrutar del televisor como es debido.


Reto 3: Quitar la red

Hay que hacer clic en el botón Menú para que salga el menú de toda la vida de los televisores Samsung, podemos navegar por las diferentes opciones con la cruceta y seleccionar la opción deseada con el botón central


A continuación veremos el menú clásico que nos da acceso a toda la parte no-smart del televisor:

Con las flechas del mando vamos a la opción 'Conexión':


Seleccionamos la opción Red:


Seleccionamos la opción 'Configuración para expertos':

Nos vamos a la opción Wi-Fi:


Y la desactivamos pulsando el botón central de la cruceta.


Y ya está, nuestro flamante televisor de 65" ya no es más un smart TV hasta que volvamos a activar la Wi-Fi.

A partir de ahora cambiaremos de canal con los números como siempre y podemos elegir una fuente externa con el botón Source, el central de la cruceta, aunque este mando, nos pone las cosas aún más fáciles pues tiene uno para activar la tele (TV) y otro para ver una fuente externa (HDMI). 

Poner las cosas más fáciles, justo lo contrario que ha hecho el fabricante con su mandito.


Razones para liar todo esto

Cuando se configuró este televisor con el ridículo mando que traía te lleva por un redil para conectarte a Internet, exigiendo crear una cuenta en Samsung pidiendo una barbaridad de datos con varios objetivos y desagradables efectos colaterales:
  1. La cantidad de tráfico es tan grande que dejaba inoperativos otros dispositivos como mi raspberry pi 400 que conecta a este televisor, y que es la que realmente me interesa que me dé los servicios que yo quiero y como yo quiero, la conexión Wi-Fi de los móviles de la casa también se resentía.  Nada más desconectar la Wi-Fi del televisor estos problemas desaparecieron.
  2. Al cambiar a ciertos canales de televisión aparecen unos desagradables marcos publicitarios durante unos segundos. La tele no te la han regalado, pero sigues siendo el producto.
  3. Raro es el día que no salen cuadros pidiendo que aceptes más cookies y telemetría.
  4. Trae Alexa... ni con un palo.
  5. No es mi caso, pero imaginad la ruina para quien conecte este televisor a Internet con el móvil con un plan de datos.
  6. Una smart TV también es un elemento en tu intranet del que tienes poco control, ideal para ser atacado por algún agujero no cerrado (lo actualiza el fabricante cuando quiere, nosotros no).
  7. El único servicio de la parte SmartTV que me podía interesar es YouTube y es algo que también puedo ver con la Raspberry pi, todo lo demás para mis necesidades es un estorbo.
 Ahora el televisor que me he comprado es por fin realmente mío.

viernes, 10 de mayo de 2024

Gestión de archivos de configuración con apt

El comando apt tiene opciones muy interesantes, hoy vamos a ver dos que son ideales para limpieza de archivos de configuración que ya no necesitamos.

apt list ?config-files

Lista los archivos de configuración de paquetes que ya no están instalados o no están completamente instalados.

apt purge ?config-files

Elimina los archivos de configuración de paquetes que ya no están instalados o no están completamente instalados.

El parámetro ?config-files se puede sustituir por ~c

Para más información podéis teclear el siguiente comando:

man apt-patterns


viernes, 3 de mayo de 2024

JavaCPC: escritorio, suite y emulador de Amstrad CPC en java

JavaCPC es más que un emulador de Amstrad CPC en java, es todo un escritorio que incluye herramientas de todo tipo para gestionar el emulador, crear cosas para Amstrad CPC y muchos gadgets que te harán pasar un buen rato cepcero.

https://lh3.googleusercontent.com/pw/AP1GczOBHnoFgf0TfTcccb3L4wwlaUBWbQe8lGKxlS5N0zIPpHnScxREUbEJ5daMfTvHwYZzn3ihqVtR0rbvSpb95W3DdUfVbBXr08bGAzzmosXj-GLiqmhUvvRHS5NC8uLlt0_OM5rICIQ2ss7SGqs-D_4-eg=w1028-h719-s-no

Cuando se inicia, se arranca el escritorio junto al emulador con varios iconos con los programas que podemos ejecutar haciendo doble clic en ellos.

También tenemos una barra de menús para controlar el emulador o el programa que estemos ejecutando en cada momento y una barra de estado

Entre los programas disponibles tenemos:

  • El emulador de Amstrad CPC.
  • Un emulador de Amstrad GX4000 que nos ofrece diversos cartuchos.
  • Gestor de cassette.
  • Editores de imágenes para el CPC.
  • Utilidades para programar y crear elementos para el CPC. 
  • Algunos juegos.
  • Utilidades de propósito general como un blog de notas, una calculadora, un chat...

Os recomiendo echarle un vistazo a este programa y que vayáis descubriendo sus posibilidades.

Para ejecutarlo basta con:

  1. Instalar un java jre, que en Debian y derivados podéis instalar desde consola con el comando:
    sudo apt install default-jre
  2. Descargar el programa en la carpeta que queráis y ejecutarlo con el comando:
    java -jar ./JavaCPC.jar
  3. Es conveniente crear un acceso directo por nuestra comodidad, en cuyo caso tendríamos que poner la ruta absoluta al anterior archivo jar.


JavaCPC también te lo puedes instalar automáticamente con script Retro Muti Installer si usas una distribución GNU/Linux de la familia Debian o bien descargártelo e instalarlo manualmente desde la página oficial del proyecto si usas otro sistema.

https://sourceforge.net/projects/javacpc/