viernes, 21 de febrero de 2020

Instalar Thonny, el IDE para programar en python, en cualquier distro linux

Thonny es un interesante IDE para facilitar el desarrollo en python a quien empieza con este lenguaje de programación.

Aunque en la página de descargas hay paquetes para varias distros, se puede instalar en cualquiera de una manera muy sencilla a partir del código fuente:
  1. Instalamos todo lo necesario:
    sudo apt install git python3 python3-pip
    pip3 install jedi setuptools pyserial pylint astroid docutils mypy asttokens send2trash
  2. Nos vamos a la página donde está las últimas versiones de su código y nos descargamos la última para nuestra arquitectura:
    git clone https://github.com/thonny/thonny
  3. Descomprimimos e instalamos.
    cd thonny
    python3 ./setup.py build
    sudo python3 ./setup.py install
  4. Lo podemos lanzar desde consola con el comando thonny o...

[Opcional] Crear su acceso directo

Copiamos el icono:

sudo cp thonny/res/thonny.png /usr/share/pixmaps/

Si lo queremos en el escritorio:

sudo cp packaging/linux/org.thonny.Thonny.desktop $HOME/Desktop
(en algunas distros como Ubuntu en castellano sería Escritorio en lugar de Desktop)

Si lo queremos en el menú de opciones:

sudo cp packaging/linux/org.thonny.Thonny.desktop /usr/share/applications

Y ya está.
Por cierto hay versiones también para Windows, OSX y Raspberry pi.

viernes, 14 de febrero de 2020

Telegram picante: no para usuarios de Apple ni de determinados países

Hace un par de semanas tuve un episodio un poco desagradable en el grupo de Telegram, un troll se puso a subir imagenes porno en el grupo de madrugada, así que cuando me levanté por la mañana me encontré con este curioso e inquietante mensaje en el móvil.



Así que borré los mensajes del troll con sus imágenes, le bloqueé y también puse un bot con la adecuada configuración para evitar que se volviera a producir otra vez, ya que como se puede leer me conminaron para que no volviera a pasar en el futuro. Recordemos que el grupo tampoco va de ese tipo de contenidos.

Sin embargo, algo que me llamó poderosamente la atención, aparte de la premura de todo, fue que se bloqueara el grupo para determinados países y PARA LOS USUARIOS DE iOS, me recordó los tiempos de los dos rombos en España, cuando se calificaban películas solo para mayores de 18 años (hoy sigue existiendo esa censura con otro formato), lo que me ha hecho pensar si es que Apple considera a sus usuarios menores de edad, ¿ese es el respeto que les tiene a sus clientes?

Hablando con algunos usuarios del grupo y amigos me confirmaron que efectivamente algunos grupos no eran visibles por sistemas operativos de Apple pero sí desde Android y PC (tanto GNU/Linux como Windows).

Curiosa política puritana la de los de la manzana, mucha hipocresía y paternalismo mezclado a partes iguales.

viernes, 7 de febrero de 2020

Alternativas libres para crear juegos multiplataforma en GNU/Linux

Si estas pensando crear un juego no te plantees otra cosa que usar un motor que te permita crear desarrollos multiplataforma, sin pagar regalías y sin perder el control de tu trabajo, usar herramientas privativas por muy conocidas y extendidas que sean es regalarles más pronto que tarde tu duro esfuerzo.

Algunos motores libres para crear juegos en GNU/Linux.
  • Godot Engine, muy completo para trabajo en serio.
  • Pygame (librería python): sencillo y potente.
  • LÖVE, un sencillo framework open source para crear videojuegos 2D
  • LUA, lenguaje scripting para crear juegos y otros programas.
  • Pilas Engine: te permite crear tus propios videojuegos de manera didáctica y divertida
  • Ancurio/mkxp: para hacer juegos en Rubi.
  • Gdevelop: crea tus juegos sin programar.
  • Easyrpg.
  • OpenBOR: OpenBOR es un motor de juegos de desplazamiento lateral basado en sprites sin regalías.
  • Solarus: motor libre y multiplataforma para crear juegos en LUA tipo Zelda. 
  • Cube: motor para crear juegos de disparos en primera persona. 
  • Div Arena: la evolución del clásico Div Games Studio. 
  • BennuGD: lenguaje de programación, orientado al desarrollo de videojuegos en 2 y 3 dimensiones. Es una continuación de DIV Games Studio y Fénix y se distribuye bajo licencia GNU General Public License.
  • Cocos2d-x: framework multi-platforma para construir juegos 2D, libros interactivos, demos y demás aplicaciones gráficas.
  • libgdx: Framework java para el desarrollo de videojuegos.
Ya tienes las herramientas, lo que hagas a partir de aquí ya depende solo de ti.

jueves, 30 de enero de 2020

tap2wav: conversor de archivos tap (imágenes de cinta de Commodore) a archivos WAV para GNU/Linux

En esta ocasión vamos a instalar las utilidades c64tapedecode para convertir convertir los archivos tap, imágenes de cintas del ordenador Commodore64, a archivo wav para poder reproducir los sonidos de la cinta y así poder cargar el programa en el ordenador de 8 bit original.
La herramienta también permite la operación contraria, crearte tu propio tap, etc...

Compilación e instalación

Es bien sencilla:
git clone https://github.com/lunderhage/c64tapedecode
cd tap2wav
make
sudo make install

Como siempre, si no has instalado los paquetes para compilación make y build-essential debes instalarlos antes de intentar compilar.


Uso

En la página oficial del proyecto tienes todas las instrucciones para su uso.
Si por ejemplo lo que queremos es convertir un archivo tap a archivo wav para su posterior reproducción para cargarlo en un Commodore real, el comando sería:
tap2wav archivo_origen.tap > archivo_destino.wav
En este caso tendrías que conectar la salida de audio del PC o raspberry pi al cassette del Commodore mediante una cinta adaptadora.


miércoles, 22 de enero de 2020

Manipular imagenes cas de cintas de MSX desde GNU/Linux

El formato cas es el formato principalmente usado por emuladores de MSX y castools es un conjunto de herramientas para pasar estos archivos a WAV para ser reproducidos en un MSX real entre otras manipulaciones.

Vamos a ver como se instalaría
  1. Instalamos los paquetes necesarios para compilar si es que todavía no los tenemos instalados:
    sudo apt install build-essential make
  2. Bajamos el código fuente:
    git clone https://github.com/joyrex2001/castools
  3. Compilamos:
    cd castools
    make
  4. Instalamos:
    sudo make install
Los comandos principales que tenemos son los siguientes:
  • cas2wav archivo_cas archivo_wav
    Convierte un archivo cas en un archivo wav que podemos reproducir con cualquier reproductor de audio y así cargar el programa en un MSX real conectando la salida de audio del PC con la entrada de cassette del MSX
  • wav2cas archivo_wav archivo_cas
    Convierte un volcado wav de una cinta MSX en un archivo cas
  • casdir archivo_cas
    Muestra el contenido del archivo cas.
Estos ejecutables tienen más parámetros para hacer más cosas, para saber todo que pueden hacer basta con ejecutar el comando sin parámetro alguno.

miércoles, 15 de enero de 2020

La búsqueda de la solución del puerto DVI (II): ¿cómo distinguir los buenos consejos de los malos?

En el anterior artículo vimos como arreglar un par de problemas que tenía para conectar un segundo monitor al puerto DVI dejando solucionado el problema, pero como os dije iba a poner un segundo artículo para quien quiera profundizar en la búsqueda y solución de este tipo de problemas.

Lo primero que hice fue informarme en foros especializados y redes sociales, aunque con estas últimas hay que tener más cuidado, en cierto grupo "para profesionales" la solución que me planteaban era actualizar a la última versión de Ubuntu, la 19.10, ¡UNA NO LTS! como una solución mágica al problema, también está el que recomienda su distribución favorita como respuesta a todo aunque nadie les haya preguntado eso.

En estos casos hay que desconfiar y antes de cambiar una versión LTS por otra que no lo es lo que os recomiendo es probar primero con un pendrive en modo live para ver si se soluciona el problema y no se presentar problemas nuevos.
Tal como mi imaginaba no solo no se solucionaba el problema sino que aparecían otros nuevos, recordemos de una versión no LTS, es una versión de pruebas no apta para entornos de producción.

En fin, hay gente que se pone a aconsejar lo primero que se les ocurre pero de manera irresponsable y además con una rotundidad de catedrático de carrera, otros movidos por una noble intención de ser de ayuda. pero el caso es que no ayudan, si hubiera sido un novato que les hubiera hecho caso y no solo no tendría solucionado el problema sino que tendría otros y con una complicada vuelta atrás, y una mala impresión, injusta e irreal imagen del mundo GNU/Linux.

Así que toca buscarse la vida...

¡Ojo! Los dos siguientes pasos pudieron terminar el pantallazo negro, aunque es reversible, yo sí os aviso.

Comprobé el driver que estamos usando, ya sea mediante menú:
Sistema ► Preferencias ► Hardware ► Controladores Adicionales 

O desde consola:
ubuntu-drivers devices
A mi me sale que la mía es nvidia 390

A continuación lo que hice fue quitar los drivers que tenía, al final creo que este paso era innecesario y peligroso, bastaba con actualizarlo después de añadir el ppa:
sudo apt-get purge "nvidia*"

Y metemos el driver nouveau en la lista negra, para ello creamos el archivo /etc/modprobe.d/blacklist-nouveau.conf con el siguiente contenido:
blacklist nouveau
blacklist lbm-nouveau
options nouveau modeset=0
alias nouveau off
alias lbm-nouveau off
Y a partir de aquí puse el ppa e instalé el driver de la nvidia 390 como comenté en el artículo anterior.

Si hubiera tenido un pantallazo negro, es decir, que no arrancara las X, lo hubiera solucionado probando con mover el archivo de la lista negra a la carpeta $HOME por ejemplo para desactivarlo o habría probado a buscar e instalar diferentes paquetes con el comando apt search paquete o apt install paquete respectivamente.

Todo tiene solución, aunque estas cosas pueden asustar a los más novatos.


jueves, 9 de enero de 2020

Domando el puerto DVI en Ubuntu Mate 18.04

Desde hace tiempo he estado usando dos monitores en mi i7, un moderno full HD como principal por HDMI y viejo televisor LCD Samsung por VGA, pero ahora quería conectarle también mi viejo pentium 4 que tiene sistemas arcaicos que van bien por VGA, así que la solución más sencilla era conectar mi segundo monitor del i7 por DVI... o eso creía.

Parece que el viejo conector DVI es un potro salvaje que da la lata en todos los sistemas en los que se conecta, por eso he tenido que domarlo, ha costado pero lo he conseguido.

Los problemas y sus soluciones

Nada más conectarlo me he encontrado con dos problemas:

Letras enormes al arrancar

Este problema ocurre en los dos monitores, se soluciona provisionalmente cambiando el tema de mate y volviendo a poner el que tenías, pero esto no es una solución definitiva.
La solución ha sido actualizar a los últimos drivers de la tarjeta gráfica... a través de un PPA, que ya sabéis "lo mucho que me gusta usarlos", pero no ha habido otro remedio.
sudo add-apt-repository ppa:graphics-drivers/ppa
sudo apt update
sudo apt -y upgrade
sudo apt install xserver-xorg-video-nvidia-390


Reiniciamos y ya deberíamos estar con el driver nuevo.

Overscan

Los usuarios de raspberry pi estarán más familiarizados con este concepto, es cuando la imagen ocupa más que la pantalla del propio monitor provocando que no se vea partes importantes como los botones para maximizar, minimizar o cerrar ventanas o las barras de menús en caso de ser el monitor principal.



Lo he solucionado con la aplicación NVidia X server settings, que en Mate está en las opciones menús Sistema ► Administración.

Tenemos que acceder a la opción X Server Display Configuration, pulsar en el monitor que queremos corregir, vamos aumentando el valor de la casilla Overscan hasta que consigamos que no se pierda imagen por arriba y por abajo y no queden tampoco espacio en negro (underscan).



Para corregir la pantalla que no vemos por la derecha y la izquierda pulsamos sobre el botón Advanced

Vamos cambiando solo el ancho, es decir, el primer valor de la resolución ya que el alto ya está bien, lo vamos haciendo de 20 en 20 en los campos ViewPortIn, VideoPortOut y Panning.


En estas imágenes puedes los valores que tenía antes de la corrección y con los que se queda después.

En el caso del campo ViewPortOut veis que he modificado el primer multiplicando de la operación pero también el primer sumando añadiéndole la mitad de lo que le he quitado.
¿Y por qué es así? porque si sumáis el primer multiplicando (espacio de trabajo) con el doble del primer sumando (espacios que se dejan a los lados) debe daros la resolución horizontal.
Si hacéis la operación con el segundo multiplicando y el segundo sumando os debe salir la resolución vertical.

No olvides pulsar en el botón Save to X Configuration File o perderás lo que has hecho en el próximo reinicio.

¡Ah! Como curiosidad, NO ES UN PROBLEMA DE GNU/LINUX, ya que antes de hacer todo esto probé usar el puerto DVI con el pentium IV de los 4 sistemas y en todos ellos tuve el problema del overscan, con una tarjeta ATI y además solo era subsanable en MX Linux.

Quien quiera puede saber más de la búsqueda de la solución puede ver este otro artículo, pero por ahora lo vamos a dejar aquí, ya que con esto se soluciona el problema.


Enlaces de interés