torch: el gadget que haría para PS3 si fuera Sony

Hoy os traigo un concept product render.

Se trata de un producto que se me ocurrió al ver el funcionamiento del sistema de iluminación contextual de los televisores de Phillips, ambilight.

El caso sería aplicar este concepto de “luz cambiante” al mundo del videojuego (desconozco si existe ya algo así).

En concreto he imaginado algo como lo que tenéis en la imagen para Sony PlayStation 3. Sería una especie de lámpara de diseño que se conecta vía USB a la PS3 y que contiene un array de LEDs DIM con los colores primarios (rojo,verde y azul). Gracias a estos LEDs se puede generar cualquier color que queramos.

Sony torch for PS3

Sony torch for PS3 (pulsa para ampliar)

Ahora os mostrare algunos casos donde puede ayudar a intensificar el game experience:

– Estas jugando al Modern Warfare 2 y de repente el enemigo viola la zona de seguridad, ¿cómo lo sabes? PS3 torch empieza a parpadear con un color rojo intenso mientras concurremente suena la correspondiente alarma.

– Indicador del nivel del vida, maná o cualquier nivel que queramos controlar fácilmente.

– Notificador de nuevos mensajes desde el juego (por ejemplo, un cambio de misión). También lo puede usar XMB para sus notificaciones (“descarga completada”, por ejemplo) mientras jugamos.

– Antorcha de luz blanca mientras nos adentramos en un laberinto oscuro infectado de zombis.

¿se te ocurre algún caso más de uso?

Sinceramente creo que este producto podría tener muy buena acogida por parte de los usuarios si el precio es atractivo (un array de LEDs no es nada caro). La API de programación sería también muy sencilla (fijar color, encender/apagar/parpadear a tal frecuencia).

¿quién lo compraría? ¿a qué precio? ¿alguien se anima a fabricarlo? (demasiadas preguntas 🙂 )

P.D: No he hecho ningún estudio de marketing, es sólo una intuición. Sobre el render, decir que está hecho con Blender.

Translate to:English
MenefanteMenéame TwitterTwitter

artLauncher: Lanzador de aplicaciones en PyClutter

Hoy os traigo mi última creación. Se trata de un lanzandor de juegos para varios quioscos que componen la exposición interactiva “Estación futura” en Intermediae (en el Matadero de Madrid).

Dicha exposición recoge una selección de juegos indies/independientes seleccionados por Javier Canderia (@candeira) . “candyman” es, entre otras muchas cosas, el creador de barrapunto.

Ahora mismo se encuentran disponibles dos selecciones de juegos distintas: “Los sueños euclídeos de Kenta Cho” y “Espacio, tiempo y  emoción“.

Algunos juegos de esta muestra se encuentran en el repositorio de Ubuntu, como es el caso de Gunroar.

Sobre la aplicación, primero quiero decir que el diseño es obra del artista Jaime Narvaez y Eva María García. Francamente han hecho un gran trabajo visual con el lanzador.

El “programa” está escrito en Python (cada vez me gusta más) y utilizo el framework de Clutter (y el respectivo binding para Python). PyClutter es el binding de Clutter para Python. Clutter es un framework sobre OpenGL para el desarrollo de aplicaciones gráficas. Gracias a esta es abstracción podemos sacarle jugo a la tarjeta gŕafica de una forma más sencilla. Actualmente Clutter esta patrocinado por Intel y se utiliza en la plataforma móvil Moblin.

Para la reproducción de vídeo, utilizo gstreamer (también con sus respectivos bindings). Clutter también puede incorporar vídeo de gstreamer como si de una textura se tratase. Creo que es la característica de Clutter que más me gusta.

El lanzador se configura (agregar nuevos listado de juegos, modificar,etc) mediante interfaz web. Esto es posible utilizando CherryPy (como servidor web), Storm (como mapeador de objetos-bbdd relacional) y Cheetah (como sistema de plantillas). El gestor de base de datos es  SQLite3.

Os dejo un video-captura del lanzador, pero os animo a que lo veaís in situ 🙂

P.D: el video no se ve tan fluido como es en realidad, se debe a que es el mismo sistema quien renderiza el OpenGL y graba los frames per second.

Actualización: Un par de fotos del día del estreno (gracias Santi por pasarlas 🙂 )

Estación Futuro: soporte

Estación Futuro: soporte

Estación futuro: probando

Estación futuro: probando

Translate to:English
MenefanteMenéame TwitterTwitter

[Tip] Deshabilitar dispositivos USB

Hay muchas bondades en usar GNU/Linux como sistema operativo. Una de las características que más me gusta es poder controlar en tiempo de ejecución el comportamiento de los dispositivos escribiendo cadenas de texto sencillas en algún fichero que cuelga de /sys o /proc.

En el tip de hoy vamos a ver como habilitar o deshabilitar un dispositivo USB (un pendrive).

Lo primero que hay que hacer es identificar de donde cuelga nuestro pendrive. Hay multitud de opciones para hacer esto (por ejemplo, escuchando el bus system de D-Bus).

Voy a usar un método más “raw“. La información/control del bus USB se encuentra bajo el directorio /sys/bus/usb.

Empezemos buscando bajo que bus se encuentra nuestro pendrive.

lsusb -t
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=ehci_hcd/8p, 480M
        |__ Port 2: Dev 2, If 0, Class=hub, Driver=hub/4p, 480M
        |__ Port 1: Dev 3, If 0, Class=HID, Driver=usbhid, 1.5M
        |__ Port 1: Dev 3, If 1, Class=HID, Driver=usbhid, 1.5M
        |__ Port 7: Dev 6, If 0, Class=stor., Driver=usb-storage, 480M

Vemos que nuestro dispositivo cuelga del bus 1 y está en el puerto 7. Para localizar la información de nuestro dispositivo, sólo tenemos que acceder a la ruta: /sys/bus/usb/usb1/1-7. Si hacemos un listado sobre ese directorio obtenemos:

1-7:1.0
authorized
bcdDevice
bConfigurationValue
bDeviceClass
bDeviceProtoco
bDeviceSubClass
bmAttributes
bMaxPacketSize0
bMaxPower
bNumConfigurations
bNumInterfaces
busnum
configuration
descriptors
dev
devnum
driver
ep_00
idProduct
idVendor
manufacturer
maxchild
power
product
quirks
serial
speed
subsystem
uevent
urbnum
version

De todos estos ficheros, el que nos interesa en este caso es authorized. Este fichero acepta los valores “0” y “1” (correspondientes a habilitar y deshabilitar respectivamente).
Por defecto este valor vale 1 (cat authorized). Luego si queremos deshabilitarlo sólo tenemos que ejecutar:

echo "0" > authorized

Os animo a que hagáis la prueba y veáis que ocurre.

Gracias a esta interfaz, es muy sencillo implementar un sistema de seguridad en el lenguaje de programación que queráis (sólo tiene que tener gestión de ficheros).

Translate to:English
MenefanteMenéame TwitterTwitter

[Tip] Recupera fotos borradas

Seguramente alguna vez te ha ocurrido que sin querer has borrado de tu cámara digital las fotos del último cumpleaños o de aquella fiesta de fin de curso.

Si alguna vez te ha pasado o te pasa lo primero que tienes que hacer es: ¡extraer la tarjeta de memoria!

En la mayoría de los casos, cuando se manda borrar un archivo, lo que realmente se hace es eliminar dicho nombre de fichero del directorio. Se borra el nombre, no el contenido. Esto es análogo en borrar de una cinta VHS (si alguién las usas hoy en día :))el título de la película y dejarla en el montón de cintas vírgenes (para se reegrabada).

Os voy a enseñar un procedimiento sencillo para recuperar las fotos (u otros archivos) perdidos.

Lo primero que tenemos que hacer es introducir nuestra tarjeta SD/MMC/Memory Stick o lo que sea en nuestro PC con Ubuntu (por ejemplo).

Abrimos una ventana de terminal y vemos donde ha montado el dispositivo:

mount
   .
/dev/sdb1 on /media/disk type vfat (rw,nosuid,nodev,uhelper=devkit,uid=503,gid=503,shortname=mixed,dmask=0077,utf8=1,flush
   ·

Si os fijáis en este caso es el dispositivo /dev/sdb1 el que se ha montado en el directorio /media/disk. Luego ahora vamos a obtener una volcado físico de la tarjeta entera a disco. De esta forma ya no nos importa que la tarjeta se sobreescriba. Como root (sudo bash) ejecutamos:

dd if=/dev/sdb of=/home/usuario/imagen.dump bs=4096

Ahora para recuperar nuestras fotos, vamos a hacer uso del programa foremost. Si usas Ubuntu, basta con “sudo apt-get install foremost“.

Foremost requiere sólo el fichero de dumpeo para empezar a trabajar:

foremost imagen.dump

Si todo ha ido bien, se habrá creado una carpeta output, donde hay otra subcarpeta para cada tipo de formato detectado. Los principales formatos son: JPEG, GIF, MPEG, PNG, EXE, RAR, etc. Puedes ver los formatos disponibles en su man.

En nuestro caso, el “trofeo” debe estar en la carpeta “jpeg”.  Si hemos tenido suerte, lo siguiente debe ser grabarlas en un CD o DVD para “inmortalizar” esos preciados recuerdos en forma de fotos.

Espero que este tip os sea de utilidad 🙂

Translate to:English
MenefanteMenéame TwitterTwitter