Publicado en Raspberry Pi, Videojuegos

RetroPie. Paso 2: Configurar mandos USB

Si has seguido el paso 1 para instalar RetroPie, lo primero que verás será la pantalla de bienvenida de EmulationStation donde te insta a presionar el botón A para empezar a configurar tu gamepad.

Hay que tener en cuenta que hay 3 tipos de mandos para configurar: mando USB, mando bluetooth y teclado.

Si tienes conectado uno de los primeros pondrá 1 GAMEPAD DETECTED, y al dejar pulsado el botón A aparecerá debajo el nombre del mando y comenzará el resto de la configuración de los botones.

Si tu mando tiene menos botones de los que RetroPie pretende configurar, tan sólo deja pulsado cualquier botón para saltar la configuración de cada botón que no tengas, hasta llegar al final.

Estos son los mandos más típicos y sus posibles correspondencias, obviamente la configuración es al gusto:

 

 

 

 

Si es un teclado USB, sin embargo, aparecerá el mensaje NO GAMEPADS DETECTED, porque es verdad, no es un gamepad, pero lo podemos convertir en uno. Pulsa la tecla que quieras que sea el botón A (yo utilizo la letra X) y sigue configurando el resto de botones.

Por último, si tu periférico se conecta mediante el bluetooth interno de la Raspberry Pi (únicamente en la 3), lamento decirte que requiere una configuración especial, por lo que vas a necesitar conectar un teclado USB.

Poner un teclado para dejar la Raspberry Pi perfectamente configurada al principio es algo que aconsejo mucho, aunque no es fundamental ya que podemos conectarnos por SSH para poder mandar comandos desde un ordenador, móvil o tablet.

Pero eso en el próximo paso que aquí hemos venido a configurar mandos. Por cierto, si después de configurar el primero, quisieras configurar más, solamente tendrías que acceder a Menú (botón select) > Configure Input (botón A) > Yes (botón A). Y comenzará el mismo proceso, que tendrás que cumplir con el siguiente mando a configurar.

Con esto tendríamos configurados nuestros mandos para movernos por los menús del EmulationStation (intefaz gráfica de RetroPie), así como para jugar a todos los emuladores. Hay algunos que requieren de una configuración de mandos extra, y a todos se les puede configurar los mandos de manera independiente, pero no suele ser necesario.

Finalmente nos quedaría poder configurar los mandos bluetooth, pero eso lo dejamos para un artículo a parte, que vamos a necesitar un teclado o una conexión SSH y todavía no hemos explicado como tener red en RetroPie.

Publicado en Raspberry Pi, Videojuegos

RetroPie. Paso 1: Descargar e instalar

Bien, ya hemos decidido que vamos a montar una recreativa en el salón con más de 50 emuladores de videoconsolas antiguas. Ahora necesitamos saber cómo hacerlo.

El primer paso es descargar la última versión de RetroPie, a día de hoy es la 4.2, pero lo mejor es acceder a la web oficial y elegir la versión para la Raspberry que tengamos en casa, ya sea la Zero o la 1 por un lado, o si es la 2 o la 3 (altamente recomendable). Esto nos descarga un fichero que será la imagen del sistema operativo, pero comprimido en formato .GZ. Hay que descomprimirlo para obtener un .IMG.

El segundo paso es meter la imagen del sistema operativo RetroPie en una tarjeta microSD. Debe ser de al menos 4 GB, aunque yo hace tiempo vengo utilizando una de 16, que luego le meto muchas cosas extras, aunque con una de 8 valdría también, lo difícil es conseguir una a día de hoy.

Si quieres pasar la imagen a la tarjeta desde un terminal Linux, se hace exactamente igual que cuando lo hicimos con Raspbian: ver tutorial. Pero si lo quieres hacer de manera gráfica yo aconsejo Etcher. Es un software multiplataforma (Linux, MacOS, Windows) extremadamente sencillo. Lo instalas, eliges la imagen, eliges la tarjeta o pendrive dónde quieres grabarla y ejecutas.

Como siempre, a mi me gusta tener el software actualizado mediante los repositorios oficiales, así que ahora voy a explicar cómo hacerlo para cualquier Linux basado en Debian (Ubuntu, Mint, etc.). Si vas a utilizar otro sistema operativo (MacOs, Windows, Linux RPM, etc.) puedes saltar las siguientes líneas e instalarlo directamente desde la web oficial de Etcher.

Agregar el repositorio:

echo "deb https://dl.bintray.com/resin-io/debian stable etcher" | sudo tee /etc/apt/sources.list.d/etcher.list

Obtener llave GPG:

sudo apt-key adv --keyserver hkp://pgp.mit.edu:80 --recv-keys 379CE192D401AB61

Actualizar repositorios e instalar:

sudo apt-get update
sudo apt-get install etcher-electron

Perfecto, ya tenemos RetroPie en la tarjeta microSD. Ahora la ponemos en la Raspberry Pi, la encendemos y, tras un reinicio automático para expandir el sistema de ficheros (fundamental), nos aparecerá el primer arranque de Emulation Station, que será la capa gráfica para manejar todos nuestros emuladores, mandos de juego etc. Pero eso ya en el próximo tutorial.

RESUMEN: descargar imagen de RetroPie de su web oficial y descomprimir, descargar Etcher de su web oficial, conectar microSD al ordenador, abrir Etcher, seleccionar imagen de RetroPie, seleccionar microSD, ejecutar, desconectar microSD del ordenador, conectar microSD a la Raspberry Pi, encender Raspberry Pi.

Publicado en Raspberry Pi, Videojuegos

RetroPie: consolas antiguas en tu Raspberry Pi

Hacía mucho tiempo que tenía ganas de hacer este tutorial, así que voy a aprovechar el descanso estival para ello. La idea es montar una máquina recreativa en el salón de casa ocupando el espacio de una tarjeta de crédito. ¿Cómo? Instalando RetroPie en una Raspberry Pi.

Antes de nada tienes que saber lo que es una Raspberry Pi, mira este artículo que escribí hace 2 años, han actualizado algunas cosas, pero el concepto es el mismo: una placa base diminuta con la potencia suficiente para ser nuestro centro de entretenimiento casero.

Ya vimos como montar un centro multimedia completo, ahora vamos a montar una máquina recreativa con emuladores de las más famosas videoconsolas antiguas: MAME, Neo-Geo, ScummVM, PlayStation, Super Nintendo, Game Boy, etc.

RetroPie no es más que un sistema operativo para Raspberry Pi que, sobre base Raspbian, viene con todo lo necesario para disfrutar de más de 50 emuladores para todos los gustos. Ya que, además de los propios emuladores, viene con un montón de drivers para hacer compatibles mandos USB, mandos bluetooth, y los mandos propios de la PlayStation 3 y 4, la Xbox 360 y muchos más. Por no hablar de ports míticos como Doom, Transport Tycoon o Wolfenstein 3D.

Además es importante el dato de Raspbian ya que, gracias a ello, además de convertir la Raspberry Pi en una recreativa, podrás instalar todo lo que la RPi soporta: Kodi, Transmission, Samba, etc.

Ya sabemos lo que queremos hacer así que a partir de ahora iré haciendo artículos independientes con cada parte: instalación, configuración de emuladores, configuración de mandos, instalación de paquetes adicionales, etc. ¡Vamos allá!

Grandes enigmas modernos

A raíz de este tuit de @PeliCornia:

¿Sois conscientes del gran enigma que debe significar para los niños cuando van al baño y les decimos “tira de la cadena”?

Se pueden llegar a plantear nuevos enigmas lingüísticos modernos como “colgar el teléfono”. Acciones que algunos hemos realizado de manera cotidiana pero que a día de hoy no tienen mucho sentido literal, y que el día de mañana lo seguirán utilizando sin tan siquiera saber muy bien porqué se dice así.

Pero esto no es nuevo, nosotros también utilizamos expresiones sin saber de dónde vienen o que su significado literal no tiene mucho sentido a día de hoy. Os dejo como tarea que me pongáis algunas que conozcáis. Venga, empiezo yo: “morder el polvo”.

Publicado en Bitácora, Internet

Hoy cumple 12 años la criatura

12-years

Doce años. Más de un tercio de mi vida. Y hablando de tercios, hoy habrá que tomarse alguno en honor al nacimiento de este humilde blog. Ya sé que muchos me dirán que casi no escribo, cierto, pero es que yo también he ido cumpliendo años. Además, la tecnología evoluciona, ahora perdemos más tiempo en redes sociales que antes ni existían. Pero sí, lo tengo abandonado al pobre.

Después de tantas transformaciones, tanto estéticas como de contenidos, me estoy planteando volver al formato “personal”. Total, aquí ya no entro ni yo, así que igual desparramo un poco lo que se me pase por la cabeza. Ya veremos, igual lo sigo dejando como bloc de notas, o igual no escribo más. Eso sí, el dominio lo tengo con renovación automática.

En fin, que son 12 años ya, 12 como 2 packs de 6 birras, ya sabes. Sean buenos, pero no demasiado.

Publicado en Internet, Microsoft

SQL Server: obtener fecha u hora de un datetime

Parece algo bastante obvio, pero más de una vez habrás tenido que obtener la fecha, sin la hora, de un campo datetime de SQL Server, probablemente para compararla con otra fecha, y has terminado por comparar día, mes y año por separado. Pues bien, hay una manera más fácil y limpia de conseguirlo.

Supongamos que queremos obtener solo la fecha de hoy:

CONVERT(DATE,GETDATE())

Si queremos la hora exacta de ahora mismo sin la fecha:

CONVERT(TIME,GETDATE())

Funciona exactamente igual con cualquier campo datetime y, por supuesto, devuelve un datetime.

Publicado en Cine y televisión, Tecnología

Acceso FTP para Qviart Mini

Ya tenemos nuestro Qviart Mini educado y sabemos agregar canales nuevos o que hayan cambiado de frecuencia. Pero a poco que lo hayáis usado, os habréis dado cuenta de que transferir ficheros desde el móvil o PC hacía el decodificador, o viceversa, es un poco tedioso; siempre con el pendrive para arriba y para abajo, ya sea para actualizar el firmware o cambiar la lista de canales.

Por eso vamos a simplificar una acción tan común configurando el cliente FTP que trae el Qviart Mini, bastante escondido, por cierto:

Menú > Aplicaciones de red > Other Apps > Descarga FTP

En esta pantalla tenemos que poner los datos de nuestro servidor FTP: nombre del servidor, IP, puerto, nombre de usuario y contraseña.

Qviart Mini FTP

Al darle a “Conectar” nos aparecerá el mismo gestor de ficheros que tenemos al acceder a los USB. Buscamos el fichero que queremos y al darle a “OK” sobre él nos dará dos opciones:

  1. Download to USB: guarda el fichero en el USB, ideal para reutilizarlo varias veces
  2. Update directly: ejecutar una actualización de firmware o de canales directamente sin necesidad de guardar el fichero en el USB

Qviart Mini FTP

Eligiendo la primera opción, se nos creará una nueva carpeta en el USB llamada FTP_DOWNLOAD donde se guardarán todos los ficheros que descarguemos de esta manera.

Publicado en Internet

ColdFusion: Listar columnas devueltas por CFQUERY en orden correcto

Normalmente sabemos qué columnas nos traemos de una query, y por eso las pintamos en el orden que nos interesa. Pero si quisiéramos mostrar los datos de una query sin necesidad de saber las columnas que traemos o, simplemente, son tantas que es muy laborioso escribir una línea para cada una, necesitas obtener el listado de columnas que nos devuelve la consulta.

ColdFusion nos ofrece ColumnList, pero si lo has probado sabrás que devuelve el listado de columnas pero en orden alfabético, no en el orden de la tabla o el especificado en la query.

<cfquery name="qry_alumnos" datasource="facultad">
  SELECT id_alumno, nombre, apellidos FROM Alumnos
</cfquery>
<cfoutput>#qry_alumnos.ColumnList#</cfoutput>

Nos devolvería:

apellidos,id_alumno,nombre

Sin embargo, hay una manera de conseguir mostrar los campos ordenados, y es utilizar la función getColumnList().

<cfset columnas = ArraytoList(qry_alumnos.getColumnList())>
<cfoutput>#columnas#</cfoutput>

Esto nos devolvería:

id_alumno,nombre,apellidos

Y así es como tendríamos un array de campos perfectamente ordenado tal y como debe ser, y no en orden alfabético.

Para completar os dejo el código para mostrar los resultados en una tabla HTML:

<table>
   <tr>
      <cfloop index="i" list="#columnas#">
         <td><cfoutput>#i#</cfoutput></td>
      </cfloop>
   </tr>
   <cfoutput query="qry_alumnos">
      <tr>
         <cfloop index="i" list="#columnas#">
            <td>#evaluate(i)#</td>
         </cfloop>
      </tr>
   </cfoutput>
</table>

En el primer bucle cfloop pinto los nombres de los campos y en el segundo los datos de cada registro.

Publicado en Cine y televisión, Tecnología

Agregar canales nuevos al Qviart Mini

Ya vimos como educar el Qviart Mini para poder ver los canales de pago por satélite de manera gratuita y sin tener que tocar nada en el futuro. Sin embargo, las frecuencias por las que se emiten los canales pueden ir cambiando con el tiempo (Nick Jr.), así como crearse nuevos canales (BeIN Sports Spain) o destruirse los que ya había (Discovery MAX).

Ante esta situación hay dos posibles acciones por nuestra parte: esperar a que alguien cree un nuevo listado de canales, descargarlo y ponerlo en nuestro decodificador, o buscar nosotros mismos ese canal concreto y ponerlo en el sitio que queramos.

Obviamente aquí voy a explicar la segunda opción, que sirve igualmente para el Qviart Mini como para el Qviart Unic. Lo primero es saber dónde está el canal que queremos, para ello vamos a acceder a la siguiente web:

http://es.kingofsat.net/pack-digitalplusa.php

Podemos utilizar filtros para encontrar lo que buscamos o, más rápido todavía, pulsar Ctrl+F y escribir el nombre del canal. En cualquier caso, una vez sepamos donde está, nos tenemos que fijar en la barra superior que lo contiene. Por ejemplo, vamos a buscar MTV Rocks.

Como ves, lo primero que pone en la barra es 19.2ºE y justo después Astra 1M. Éste es el satélite al que apunta nuestra parabólica. Si es otro, obviamente no nos vale esta información, pero es el más típico y al que apuntan casi todas las antenas comunitarias.

Después vemos que pone 11739.00 V 66, Astra 1M, DVB-S, QPSK, 27500 3/4, ASTRA 1, 38.0 Mbps, NID:1, TID:1066.

Lo que nos interesan son el 11739 y el 27500 que marco en negrita. Son los dos datos que vamos a tener que poner en el decodificador para poder sintonizar, tanto el canal que buscamos, como el resto de los que hay bajo la misma cabecera, en este caso nos encontrará: VH-1, MTV Rocks, Nickelodeon Spain y Nick Junior.

Qviart Mini

Teniendo apuntados los datos que necesitamos, ahora nos vamos al decodificador y accedemos a Menú > Instalación > Configuración de antena. Aquí hay que modificar 3 cosas:

  • Trasponder: 11739/V/27500/3/4
  • Tipo LNB: 09750
  • Empezar la búsqueda: Buscar TP

Al pulsar OK te hará un par de preguntas, responde a ambas que NO (eliminar canales existentes y búsqueda por red) y cuando termine tendrás los nuevos canales al final de tu lista. Luego ya es cuestión de colocarlos donde te guste.

Sólo un apunte más, el tipo LNB 09750 es el típico de las parabólicas comunitarias, si la tuya es individual tendrás que buscar tu tipo LNB.

Publicado en Internet

Comprobar si existe un archivo en el servidor con JavaScript

Como ya sabrás, JavaScript se ejecuta en el cliente, por lo que no puedes preguntar por cosas del servidor. Sin embargo, sería muy bueno tener una función que nos dijera si un archivo existe en el servidor para poder tomar decisiones al respecto.

Pues bien, la solución nos la da AJAX. Pedimos la cabecera del archivo que queremos comprobar y si nos devuelve un 404 es que no existe, así de fácil. Sé que al leer AJAX tendemos a tirar por jQuery, pero en este caso, al ser algo tan sencillo voy a explicarlo en JavaScript puro, que siempre es más rápido que tener que cargar un framework.

function existeUrl(url) {
   var http = new XMLHttpRequest();
   http.open('HEAD', url, false);
   http.send();
   return http.status!=404;
}

Como puedes ver, ni siquiera necesitas cargar el archivo ya que solicitamos sólo el ‘HEAD’ (no hacemos ni GET ni POST), por lo que aunque sea de 100 megas tendrás una respuesta rápida. La misma función se podría hacer preguntando si el status es 200, que sería que existe el fichero y la cabecera del mismo es correcta.

Por cierto, el false del open es para que la consulta sea síncrona y así el return se ejecute cuando haya terminado de solicitar la cabecera, no vaya a ser que la conexión sea muy pobre y no le de tiempo a hacer el send antes de tener la respuesta del open. La url es relativa al sitio web.