Reproductor de audio de videojuegos M1 en Linux

El reproductor de audio M1 es un reproductor que permite escuchar el audio de videojuegos arcade o maquinitas directamente de los ROMs del juego. En versiones recientes de Linux, el dispositivo de audio OSS usado de forma predeterminada por M1 ya no es parte de muchas distros y usar la opción alternativa ALSA genera, al menos en mi PC, salida con ruido 😦 pero no todo está perdido, aunque OSS ya no forma parte de muchas distros recientes, existe un módulo para emular OSS y así poder correr programas que lo usaban. Para ejecutar M1 en modo ALSA puedes usar el siguiente comando:

monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ ./m1-x64 -s1 samsho3

Puedes reemplazar samsho3 con tu juego favorito 😛 . Si el comando anterior funciona entonces ¡felicidades!. Si, como en mi PC, el comando anterior genera salida con ruido entonces puedes forzar la emulación de OSS de la siguiente manera:

monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ sudo modprobe snd-pcm-oss 
[sudo] password for monstruosoft: 
monstruosoft@monstruosoft-PC:~/software/M1-0.7.8a6$ ./m1-x64 samsho3

Ahora M1 funcionará sin problemas y podrás escuchar la música de tus juegos favoritos 😀 . Yo puedo escuchar el tema de Nakoruru de Samurai Shodown III por horas ininterrumpidas 😛 .

Advertisements

En corto No. 6 – Habilitar notificaciones de escritorio en Debian Stretch

En un post reciente mencioné que tras actualizar a Debian Stretch, las notificaciones de escritorio desaparecieron. He encontrado una forma temporal de solucionarlo ejecutando el comando notification-daemon de la siguiente manera:

monstruosoft@monstruosoft-PC:~$ notify-send "hola"
monstruosoft@monstruosoft-PC:~$ /usr/lib/notification-daemon/notification-daemon &
[1] 10844
monstruosoft@monstruosoft-PC:~$ notify-send "hola"

En el ejemplo anterior, la primer llamada al comando notify-send no produce ninguna notificación porque notification-daemon no se ha iniciado. Después de iniciar notification-daemon, las notificaciones de escritorio deberían funcionar, por lo menos hasta que reinicies la PC.

Compilar GIMP 2.9 en Debian Stretch 9.1

Al actualizar mi sistema a Debian Stretch era obvio que escribiría este post para compilar GIMP 😛 . Ya lo hicimos antes así que no repetiré todo el proceso ya que podemos usar el post anterior para compilar GIMP para la nueva versión de Debian, lo único que cambia es que el repositorio estable debería contener versiones más recientes de las librerías necesarias de forma que no tengamos que compilarlas manualmente como antes y eso es lo que vamos a averiguar:

Read More

Desaventuras en la tierra de Linux, parte 12-2

Esta es una continuación del post anterior en el que hablé sobre mis primeras impresiones después de actualizar a Debian 9 Stretch. He encontrado más detalles molestos desde la publicación anterior, ¡una actulización debería dejar tus sistema mejor, no peor!. Este es el tipo de razones por las que a la gente normal no le gusta Linux y mientras siga teniendo este tipo de fallos nunca logrará ponerse en el gusto de los usuarios comunes. ¡No puedes hacer una actualización que rompa partes esenciales del sistema!. Claro, incluso Windows ha sufrido de este tipo de problemas; si recuerdan, mucha gente reportó problemas tras actualizar a Windows 10 pero con Windows es diferente ya que, desde el punto de vista del usuario, hay muchos cambios en la interfaz gráfica, la apariencia, etc.. En cambio en Linux, aunque se haya actualizado el kernel y los programas básicos de sistema, los cambios en la interfaz gráfica y apariencia son mínimos, así que desde el punto de vista del usuario no hay mucha diferencia y, en lugar de obtener un sistema mejorado, terminas con un sistema que queda en un estado peor que como estaba 😦 .

En mi caso, además de los problemas descritos en el post anterior (que no arranque la interfaz gráfica tras la actualización es simplemente imperdonable), he encontrado otros detalles molestos listados aquí de menor a mayor índice de molestia 😛 :

Las notificaciones de escritorio desaparecieron. No es algo grave pero sí molesto que algo que funcionaba antes de actualizar ahora ya no funcione. Cuando dependes de estas notificaciones para saber cuando se terminan de descargar tus torrents o conocer el estado de tus tareas programadas, esto realmente puede ser un problema.

Los macros de xmacro ahora tienen un molesto lag, haciendo que un macro que antes se ejecutaba en un segundo ahora tome varios segundos. Esto no sería tan grave si el efecto del macro fuera consistente pero, en cambio, ahora los macros pueden producir salidas que no coinciden con lo que está programado, haciéndolos no sólo poco confiables sino potencialmente peligrosos 😦 .

La mayor molestia hasta ahora es con el sistema de sonido ya que el audio en mi PC simplemente desaparece de forma aleatoria. He encontrado una solución temporal para recuperar el audio sin tener que reiniciar la PC cada vez usando el control de volumen de PulseAudio seguido por alsamixer pero un sistema en el que tienes usar soluciones temporales para algo tan básico como el sonido es básicamente un sistema que no funciona 😦 .

Es cierto que también hay algunas mejoras en Debian 9 pero son fácilmente opacadas por todos los errores 😦 .

Desaventuras en la tierra de Linux, parte 12

Finalmente decidí actualizar mi versión de Debian Jessie a la nueva versión estable Debian Stretch. El proceso de actualización se ejecutó sin problemas hasta llegar al punto final de la instalación cuando reinicié mi PC para arrancar con la nueva versión del Kernel de Linux 4.9 y fui recibido con… una pantalla negra de terminal porque el modo gráfico no se pudo iniciar 😦 . ¡Este es el tipo de cosas por las que a la gente no le gusta Linux!. ¿El problema? Antes de actualizar, estaba usando el driver de video privado de AMD/ATI fglrx que fue desinstalado durante el proceso de instalación por lo que al reiniciar la PC, la configuración del X server no era válida. Para empezar, este es el tipo de cosas que la actualización debería verificar y solucionar automáticamente, quizás usando por lo menos una configuración predefinida para el X server. Si bien la solución fue relativamente simple y consistió en crear un nuevo archivo de configuración usando el comando Xorg -configure, si esto le pasa a una persona con menos conocimientos de Linux, es casi como una sentencia de muerte para su PC que quedaría en un estado inutilizable por lo menos hasta que le reinstalen el sistema operativo que, seamos honestos, casi con seguridad sería Windows porque en este punto es cuando la gente normal que quiso probar suerte con Linux regresa a Windows sin pensarlo. ¡El sistema de actualización no debería fallar en una parte tan fundamental como esta! ¡No puedes esperar que un usuario común y corriente pueda descifrar los errores crípticos en una ventana de terminal!.

¿Esa fue la única sorpresa al actualizar a Debian 9? Sí, al menos la única falla grave, del tipo que dejaría a un usuario normal sin poder usar su PC, pero es muy pronto para saber si hay más sorpresas. Algunas molestias menores que ya he notado son las siguientes:

El reproductor MPV ahora no recuerda el volumen de la última sesión. En realidad, al parecer, nunca lo hizo 😮 . Al parecer no es un problema de Debian sino una característica de MPV que antes modificaba el volumen global o por aplicación del sistema y ahora sólo modifica el volumen interno de la aplicación por lo que al abrirlo nuevamente carga el volumen definido en el control de volumen del sistema. Me gustaba más la forma en que funcionaba antes, no quiero que me reviente los tímpanos al abrir un nuevo video o hacer demasiado ruido cuando abro un video porno 😛 . Este problema al menos se puede solucionar fácilmente definiendo un volumen inicial bajo en el archivo ~/.config/mpv/mpv.conf de configuración de MPV:

monstruosoft@monstruosoft-PC:~$ cat .config/mpv/mpv.conf 
heartbeat-cmd="xscreensaver-command -deactivate >&- 2>&- &"
volume=10

Otro detalle menor que he notado es que algunas aplicaciones, en particular el editor de texto Mousepad, que tenía configuradas para usar una cierta combinación de color y/o tipo de letra fueron revertidas a su apariencia original 😦 . Este es un detalle menor pero no deja de ser molesto tener que volver a configurarlo. Si la configuración de estas aplicaciones estuviera guardada en el directorio de home, no debería haber sido modificada, lo que me hace pensar que el programa guarda los datos en algún directorio de sistema o bien que el formato del archivo de configuración cambió entre versiones, en cualquier caso es una molestia.

Por otro lado, actualizar Debian significa que finalmente tengo versiones más reciente de muchas aplicaciones, por ejemplo gcc ahora está en la versión 6.3, pero no todo son buenas noticias, GIMP aún no da el salto a la versión 2.9 porque aún es considerada inestable, lo que significa que Debian Stretch aún sigue con la versión 2.8.18 de GIMP y para usar la versión 2.9 tendré que seguir compilándola manualmente cada que quiera probar los cambios más recientes. LibreOffice se actualizó de la versión 4.x a la versión 5.2 y la verdad esperaba un cambio significativo pero al abrirlo descubro que ¡la interfaz sigue siendo horrible! LibreOffice es suficiente para mis necesidades pero seamos honestos, ¡es visualmente horrible!.

En fin, en los próximos días seguramente seguiré descubriendo más de lo bueno y lo malo de actualizar a Debian 9 Stretch.

         _,met$$$$$gg.           monstruosoft@monstruosoft-PC
      ,g$$$$$$$$$$$$$$$P.        OS: Debian 9.1 stretch
    ,g$$P""       """Y$$.".      Kernel: x86_64 Linux 4.9.0-4-amd64
   ,$$P'              `$$$.      Uptime: 1h 7m
  ',$$P       ,ggs.     `$$b:    Packages: 3628
  `d$$'     ,$P"'   .    $$$     Shell: bash 4.4.12
   $$P      d$'     ,    $$P     Resolution: 1366x768
   $$:      $$.   -    ,d$$'     DE: LXDE
   $$\;      Y$b._   _,d$P'      WM: OpenBox
   Y$$.    `.`"Y$$$$P"'          WM Theme: Onyx-Citrus
   `$$b      "-.__               GTK Theme: Clearlooks [GTK2]
    `Y$$                         Icon Theme: nuoveXT2
     `Y$$.                       Font: Sans 10
       `$$b.                     CPU: Intel Core i3 CPU 550 @ 3.2GHz
         `Y$$b.                  GPU: Gallium 0.4 on AMD CEDAR (DRM 2.49.0 / 4.9.0-4-amd64, LLVM 3.9.1)
            `"Y$b._              RAM: 869MiB / 3882MiB
                `""""

Tarea de programación Java: convertir números a texto

En este post escribiremos una clase de Java que nos permita convertir un número a su representación escrita en forma de texto. Existen algunas alternativas en español pero las que he revisado tienen límites muy pequeños como convertir sólo números entre 0 y 100, o tienen límites arbitrarios como 999,999,9991 sin ninguna razón aparente. Además, ya sabemos que me gusta hacer las cosas yo mismo 😛 . El código de este post puede convertir cualquier entero positivo de tipo int en el rango de 0 a 2,147,483,647 y, en teoría, cualquier número entero menor a 1,000,000,000,000 que debería ser suficiente en la mayoría de los casos 😛 :

Read More

Descarga GIMP 2.9 para Flatpak

En posts anteriores compilamos GIMP 2.9 para Flatpak. La ventaja de compilar tu aplicación para Flatpak es que puedes distribuirla y ejecutarla en cualquier distro de Linux que tenga Flatpak instalado. Hay dos forma de distribuir una aplicación Flatpak, montar un repositorio online o distribuir tu aplicación en un archivo único, llamado bundle en Flatpak, que los usuarios pueden descargar y ejecutar. Puesto que no puedo montar un repositorio online, veamos como distribuir y ejecutar GIMP como un bundle.

En primer lugar tengo que generar el bundle de GIMP desde la versión instalada en mi repositorio local de Flatpak, para esto usamos el comando flatpak build-bundle:

monstruosoft@monstruosoft-PC:~$ flatpak build-bundle repo GIMP-2.9.flatpak org.monstruosoft.GIMP

El comando anterior genera el archivo GIMP-2.9.flatpak a partir de la aplicación org.monstruosoft.GIMP en el repositorio de Flatpak en el directorio repo. Este es nuestro bundle de GIMP para Flatpak y podemos distribuirlo para que otros usuarios lo usen.

DESCARGA EL BUNDLE DE GIMP 2.9 PARA FLATPAK DESDE MEGA.NZ

Una vez descargado el bundle hay dos formas de instalarlo en nuestra PC, agregarlo a un repositorio local con el comando flatpak build-import-bundle o instalarlo directamente desde el archivo .flatpak. Para instalar el bundle de GIMP 2.9 usaremos en esta ocasión la segunda opción ya que es la más sencilla. Nota que debemos agregar el repositorio de flathub para instalar automáticamente el runtime necesario si es que no lo has instalado antes:

Advertencia: Recuerda que, aunque Flatpak ofrece cierta seguridad al ejecutar los programas en una sandbox, sólo debes instalar programas que provegan de una fuente confiable y nunca debes ejecutar ningún comando como root o sudo a menos que sepas exactamente lo que estás haciendo.

monstruosoft@monstruosoft-PC:~$ flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo
monstruosoft@monstruosoft-PC:~$ flatpak --user install --bundle ~/Descargas/GIMP-2.9.flatpak

Finalmente, ya que está instalada la aplicación de GIMP 2.9, podemos ejecutarla con el siguiente comando:

monstruosoft@monstruosoft-PC:~$ flatpak run org.monstruosoft.GIMP

¡Eso es todo 😀 !. Deja un comentario si descargas la aplicación y/o si tienes problemas al instalarla y ejecutarla.

 

Compilar GIMP 2.9 usando Flatpak – Parte 1

Si has seguido el blog sabrás que hace poco compilamos la versión 2.9 de GIMP para Debian. En esta ocasión repetiremos ese proceso pero esta vez usando Flatpak. Flatpak es un sistema de distribución de aplicaciones para Linux que ofrece seguridad, al ejecutar programas usando una sandbox, y portabilidad, al permitir ejecutar un programa en cualquier distro de Linux que tenga Flatpak instalado. En cierta forma, Flatpak es similar a los contenedores LXC de los que ya hemos hablado pero ofrece mayor facilidad de uso para el usuario final.

Read More