sábado, 30 de enero de 2016

Instalar CPCtelera en Ubuntu

La CPCtelera es una librería de bajo nivel C que facilita mucho las cosas a quien quiere programar para el Amstrad CPC, ya que permite añadirle diversos elementos y compilar el resultado directamente en un archivo DSK o CDT, imágenes de disco y cinta respectivamente para ejecutar en un emulador o pasar a un medio físico para ejecutar en un Amstrad CPC real.
CPCtelera

Instalación en Ubuntu 64 bits

  • Nos vamos a nuestro directorio $HOME y nos bajamos la última versión del código fuente tecleando:
git clone https://github.com/lronaldo/cpctelera
  • Instalamos todo lo necesario para su instalación:
sudo apt-get install build-essential bison flex libboost1.71-dev libfreeimage-dev wget unzip wine mono-runtime
  • Procedemos a la instalación en sí:
cd cpctelera
./setup.sh
Si faltara algún elemento lo dirá en el diagnóstico que hace durante la instalación / compilación.

Uso

Lo mejor es consultar en el manual de la propia CPCtelera o en los vídeos que hay en youtube sobre su funcionamiento.

Otros enlaces de interés

This article is also on English

sábado, 23 de enero de 2016

Instalar y configurar emulationstation en Ubuntu 14.04 64 bits

Emulationstation es un lanzador (front-end) que te permite organizar y lanzar desde un solo sitio todos tus juegos retro por plataforma emulada.


Admite temas y diversos mandos para controlar los menús.
Es software libre multiplataforma y está disponible para Debian/Ubuntu, Windows, Mac y Raspberry pi.

Descarga e instalación

Tanto si lo vamos a usar con Ubuntu como con Debian nos tendremos que bajar la versión para Debian, de la página de descargas.
Una vez descargado podríamos instalarlo desde consola con el comando dpkg pero en Ubuntu se puede hacer haciendo doble clic sobre el archivo, con lo que abriremos el paquete con el centro de software y una vez allí solo hay que pulsar el botón Instalar.

Configuración

Definición de ubicaciones (emuladores y ROMs)

Tenemos que definir donde están los emuladores que vamos a usar y donde están los juegos para ello hay que editar el archivo $HOME/.emulationstation/es_systems.cfg que en principio tendrá el siguiente contenido:
<!-- This is the EmulationStation Systems configuration file.
All systems must be contained within the <systemList> tag.-->

<systemList>
    <!-- Here's an example system to get you started. -->
    <system>

        <!-- A short name, used internally. Traditionally lower-case. -->
        <name>nes</name>

        <!-- A "pretty" name, displayed in menus and such. -->
        <fullname>Nintendo Entertainment System</fullname>

        <!-- The path to start searching for ROMs in. '~' will be expanded to $HOME on Linux or %HOMEPATH% on Windows. -->
        <path>~/emuladores/nes/consolilla/GAME</path>

        <!-- A list of extensions to search for, delimited by any of the whitespace characters (", \r\n\t").
        You MUST include the period at the start of the extension! It's also case sensitive. -->
        <extension>.nes .NES</extension>

        <!-- The shell command executed when a game is selected. A few special tags are replaced if found in a command:
        %ROM% is replaced by a bash-special-character-escaped absolute path to the ROM.
        %BASENAME% is replaced by the "base" name of the ROM.  For example, "/foo/bar.rom" would have a basename of "bar". Useful for MAME.
        %ROM_RAW% is the raw, unescaped path to the ROM. -->
        <!-- command>retroarch -L ~/cores/libretro-fceumm.so %ROM%</command -->
        <command>fceu -fs 1 %ROM%</command>

        <!-- The platform to use when scraping. You can see the full list of accepted platforms in src/PlatformIds.cpp.
        It's case sensitive, but everything is lowercase. This tag is optional.
        You can use multiple platforms too, delimited with any of the whitespace characters (", \r\n\t"), eg: "genesis, megadrive" -->
        <platform>nes</platform>

        <!-- The theme to load from the current theme set.  See THEMES.md for more information.
        This tag is optional. If not set, it will default to the value of <name>. -->
        <theme>nes</theme>
    </system>

    <system>
        <name>snes</name>
        <fullname>SuperNintendo Entertainment System</fullname>
        <path>~/emuladores/snes/roms</path>
         <extension>.smc .SMC</extension>
        <command>fceu -fs 1 %ROM%</command>
         <platform>snes</platform>
        <theme>snes</theme> 
   </system>

</systemList>
Aunque el archivo tiene comentarios explicando donde va cada cosa, voy a aclararlo sobre todo para los novatos o los que no dominan el inglés:
  • La parte que está en negrita es la definición de un sistema que trae el archivo por defecto, está parte hay que duplicarla y ponerla en la correcta posición para cada sistema, como yo he hecho en la parte que está en gris (y que no es del archivo original).
  • Shortname: es el nombre interno del sistema para identificar este sistema, lo importante es no repetirlo y que tenga coherencia.
  • Fullname: es el nombre del sistema completo.
  • Ruta a las ROMs: Ubicación a partir de la cual emulationstation buscará las ROMs del sistema.
  • Extensiones a buscar: terminación de los archivos que emulationstation considerará ROMs.
  • Comando del emulador: lo que habría que ejecutar desde consola para lanzar el emulador y ejecutara automáticamente la ROM (definida como %ROM%), también hay que incluir parámetros para que se ejecute a pantalla completa.
    He puesto tanto la línea original comentada como la que realmente uso.
  • Scraping: Nombre de la plataforma para buscar capturas de los juegos e información extra en internet (debe estar definida en el archivo PlatformIds.cpp).
  • Theme: etiqueta opcional con la que definimos el tema gráfico del sistema.
    Para ver que temas hay disponibles mirad en THEMES.md
Esta parte de la configuración, aunque fácil, es algo tediosa pero una vez que la tienes te queda muy chulo.

Controles

La primera vez que ejecutamos emulationstation (por ahora lo haremos desde consola) detectará cualquier mando que tengamos conectado al ordenador, o no detectará ninguno si solo tenemos conectado el teclado.
En este caso cuando nos pida que pulsemos una tecla la pulsamos y la dejamos pulsada hasta que cambie el menú y empiece a pedirlos las teclas para navegar por los menús.
Al final pulsamos OK con la tecla que hayamos definido como botón A y ya está configurado.
Insisto que aquí definimos las teclas PARA EL MENÚ DE SELECCIÓN DE EMULADORES, luego cada emulador tendrá su propia configuración.
La tecla definida como el disparador B es la que nos permitirá ir atrás en los menús.

Uso

Lo lanzamos desde consola o creamos un acceso directo para hacerlo fácilmente desde el escritorio gráfico.
El uso no tiene mucho misterio, navegamos por los diferentes sistemas y diferentes ROMs, cuando queremos algo pulsamos en el disparador A y cuando queremos volver para atrás en el B.

En próximos artículos veremos como instalarlo y configurarlo en raspberry pi y otros detalles.

Continuará...

viernes, 15 de enero de 2016

Instalar Samba en Centos 6

Para instalar el servicio samba en Centos 6 para compartir archivos hay que hacer lo siguiente:

Servidor

Instalamos los paquetes

yum -y install samba samba-client samba-common

Iniciamos los servicios

service smb start
service nmb start

Hacemos que los servicios arranquen automáticamente

chkconfig smb on
chkconfig nmb on

Creamos una carpeta para compartir y le otorgamos los permisos

mkdir /opt/compartido
chmod 777 /opt/compartido

Configuramos samba para que ofrezca el directorio

Editamos el archivo /etc/samba/smb.conf y le añadimos las siguientes líneas:
# Material para compartir
[compartido]
comment = Material para compartir
path = /opt/compartido
public = yes
writable = yes
printable = no

Damos de alta al usuario linux como usuario samba


smbpasswd -a bobu

Abrimos el cortafuegos

Editamos el archivo /etc/sysconfig/iptables y le añadimos las siguientes líneas:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 135:139 -j ACCEPT
-A INPUT -m state --state NEW -m udp -p udp --dport 135:139 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 445 -j ACCEPT

Reiniciamos los servicios

service iptables restart
service smb restart
service nmb restart

Como cliente

Temporalmente

mkdir /mnt/smb
mount.cifs //servidor/compartido /mnt/smb

Permanentemente

Editamos el archivos /etc/fstab y añadimos la siguiente línea:
servidor:/compartido /mnt/smb cifs default 0 0

Y por supuesto otros sistemas pueden ser clientes:




miércoles, 30 de diciembre de 2015

Mis juegos y utilidades favoritos para Android

Estos son los juegos para android que me gustan más, por orden de preferencia:
Y estas las aplicaciones (también en orden de utilidad)

Como veis no son muchas, pero seleccionadas.

domingo, 13 de diciembre de 2015

Calendario 2016 homenaje a los desarrolladores de Amstrad CPC hecho con herramientas libres

¿No tienes calendario para 2016? No te preocupes, aquí tienes el calendario 2016 homenaje a los que siguen desarrollando para Amstrad CPC

Calendario 2016 CPC RetroDev
Lo puedes descargar en formato PDF listo para imprimir.

¿Cómo lo hice?

  • Pues utilicé tres herramientas libres digiKam , libreoffice.org y PDFShuffer, se pueden instalar gráficamente desde el centro de software o herramienta similar de tu distro o desde consola con el siguiente comando:
sudo apt-get install digikam pdfshuffler libreoffice
  • Antes de empezar generé capturas de los 12 juegos con un emulador (capriceRPi2 para PC) y los copié en una carpeta dentro de la carpeta Imágenes.

digikam

  • La primera vez que arrancamos digikam nos pregunta por el directorio de trabajo, yo le he dejado la carpeta Imágenes que es la opción por defecto.
  • Seleccionamos la carpeta con las capturas y las seleccionamos todas.
  • Nos vamos a las opciones Herramientas - Crear calendario y seguimos los pasos del asistente, algunas cosas las podemos personalizar como lo que va a ocupar la imagen respecto al propio calendario.
  • Al final nos dice de imprimir el resultado, basta con selecciona que queremos generar un PDF en lugar de nuestra impresora habitual.
  • Cerramos digiKam porque esta primera vez seguro que va a seguir analizando nuestro disco duro en busca de todas las imágenes que hay en la carpeta Imágenes.

libreoffice

Con la suite ofimática escribimos las páginas de introducción al calendario y generamos un pdf que podemos llamar cabecera.pdf
Si así lo deseáramos también podíamos crear en otro pdf aparte una hoja final del calendario.

pdfshuffler

Con este programa lo único que vamos a hacer es unir los pdf en uno solo, para ello:
  • Pulsamos en el signo + verde y añadimos los pdf
  • Seleccionamos todas las hojas
  • Seleccionamos Guardar como e indicamos el nombre del pdf final
Bueno, en realidad utilicé 5 aplicaciones libres si incluimos GIMP (para algunos retoques menores en las capturas) y el propio emulador CapriceRPi2, aunque en realidad se podría haber hecho sólo con digikam de forma automática, las otras 4 las he usado para dejarlo más fino.

Actualización 18-12-2015

He creado otro calendario sobre SuperTuxKart y los karts de Tente 3D:


Actualización 27-12-2015

A petición de los compañeros del foro Exin Castillos, he hecho el tercero y último de este año dedicado a este juguete y en concreto a la Exposición de Pamplona del año pasado.



¡¡¡ Felices fiestas y feliz 2016 !!!

martes, 8 de diciembre de 2015

Lo que no trago de android

Las 5 cosas que más odio de android


1º. Paternalismo digital: no podemos hacer con nuestro dispositivo lo que queramos, y si conseguimos rootearlo podemos perder la garantía y/o terminar con un ladrillo.

2º. Obsolescencia tecnológica salvaje: el dispositivo tiene la versión de android que tiene, alguno te deja alguna actualización pero dejan de funcionar cosas. Si quieres nueva versión a comprar otro dispositivo.
Lo único que necesita un sistema basado en unix es estar actualizado para ser seguro y android, en la práctica, no se puede actualizar.

3º. El modelo de market y su falsa sensación de seguridad, te venden que si te lo descargas todo por el cauce oficial y pagas estás seguro pero no es cierto, el lobo está cuidando de las gallinas.

4º. Dependencia tecnológica: quedas atado a un sistema y a una forma de hacer las cosas porque te hacen dependiente de ciertas aplicaciones que hacen lo mismo que otras que han existido toda la vida, ya sabéis de cual hablo.

5º. Tener que validarte, dando tus datos y usar la nube para todo, tus muebles en casa ajena.
Pero lo pero es que las otras dos alternativas hegemónicas de sistemas para móviles no es que no tengan también estos defectos, además tienen otros... y la industria y su marketing se encargan que los sistemas que respetan al consumidor no lleguen muy lejos.


sábado, 28 de noviembre de 2015

Exportar directorios por NFS en Centos 6

NFS es un protocolo para compartir directorios de una manera rápida y sencilla, sobre todo si sigues los pasos aquí expuestos.
Asumimos que el servidor y el cliente tienen como IPs, 150.214.150.21 y 150.214.150.22 respectivamente.

En el servidor

  • Crea al menos una carpeta para compartir y ponle los permisos adecuados a tu necesidad, por ejemplo:
mkdir /opt/compartido
cd /opt
chmod 777 compartido
  • Instálate los paquetes necesarios:
yum install nfs-utils
  • Iniciamos los servicios:
service rpcbind start
service nfs start
  • Para que el servicio esté activo al iniciar el servidor
chkconfig nfs on --level 35
  • Indicamos los directorios que queremos exportar editando /etc/exports y añadiéndole una línea como ésta por cada directorio a exportar
/opt/compartido    192.168.150.0/24(rw,sync,no_root_squash,no_all_squash)
En esta línea indicamos la ruta a exportar, la máquina (o máquinas) autorizadas como clientes y entre paréntesis las opciones de exportación.
  • Por último reiniciamos el servicio
service nfs restart

En cada cliente

Uso temporal

Creamos un punto de montaje y montamos el directorio exportado:
mkdir /mnt/nfs
mount 192.168.150.21:/opt/compartido /mnt/nfs 

Uso permanente

Editamos el archivos /etc/fstab y le añadimos la siguiente línea: 
192.168.150.21:/opt/compartido /mnt/nfs/compartido nfs defaults 0 0
El servidor debe estar arrancado siempre antes de iniciar el cliente o de lo contrario éste tendrá problemas para arrancar con normalidad.

Advertencias finales

  • Puede que no funcione porque iptables corte la salida de nfs del servidor, en tal caso habrá que definir una regla para que deje salir este tráfico o parar iptables.
  • Cuidado con los permisos y con el conjunto de clientes que definamos si no queremos que personas no autorizadas modifiquen, vean o borren los archivos. Quizá haya que restringir más los permisos tan generosos que he puesto en la carpeta.