Campus Party 1999, la segunda a la que fui

Madre mía… En una lista de correo que tenemos unos colegas, uno ha puesto el enlace a un vídeo de Youtube que es un montaje que hizo nuestro amigo JLuis con los aproximadamente 20 tíos de Huelva que fuimos a la Campus Party en 1999; sin duda, la party en la que mejor me lo he pasado.

Luego de esa fui a las de 2000 y 2001, pero no fueron igual… como en Mollina, creo que en ninguna parte.. ;)

A la mayoría que lea esto no le importará nada, pero lo dejo aquí puesto para acordarme de lo bien que lo pasamos ¡¡hace 10 años!!

Mmmm… por cierto, esto me recuerda a la captura de pantalla del programa HYNews… se puede ver un email de David a mi en 1996… ¡¡trece años!! :D

Posted in Informática, Internet, Juegos, Tecnología | Leave a comment

Pymaldi: Accediendo a los lectores Kimaldi desde Python

Mi amigo David y yo estamos desarrollando una aplicación para el control de acceso a instalaciones, y la gestión de turnos de trabajo. Básicamente se trata de que cada trabajador tenga una tarjeta RFID con sus datos y foto, y que esa tarjeta la sirva para entrar a las instalaciones abriendo las barreras, para abrir puertas, para picar el comienzo de su jornada laboral, para poder comer en el comedor, etc… En fin, muchas cosas que ya contaré en profundidad cuando la terminemos, y si es que nos proponemos venderla a otros clientes además de para el que inicialmente la estamos haciendo, que será lo más probable, ya que su diseño es totalmente abierto.

El caso es que para implementar nuestra solución optamos por usar lectores de la empresa Kimaldi, concretamente el Biomax2, que tenía muy buena pinta. El problema es que el SDK que provee la empresa es sólo para Windows, así que tuvimos que coger el manual del aparato, mirar el protocolo de comunicaciones para intentar hacernos “algo” y así poder interactuar con él desde cualquier sistema operativo, pero principalmente desde Linux, que es el que nos interesaba.

Aprovechando que había descubierto las cualidades de Python colaborando en el desarrollo del Cherokee-Admin, propuse que usásemos Python. Es un lenguaje que te da muchas facilidades para programar cualquier cosa y es muy portable. Hacer eso en C no nos daría más que dolores de cabeza y mucho más tiempo de programación.

Así que nada, puestos manos a la obra, pensamos que lo mejor sería hacer una librería que intentase emular el comportamiento del componente OCX que proporciona Kimaldi, incluyendo los mismos nombres de funciones de éste. ¿Qué conseguíamos con esto? pues que el que estuviese habituado a ese API tuviese más facilidad para programarlo, ya que nuestra idea era liberar esa librería con algún tipo de licencia de código abierto.

Después de un tiempo de desarrollo inicial y de que todo lo básico funcionase, la liberamos, y está disponible en la página del proyecto Pymaldi en Google Code. Desde entonces hemos ido añadiendo nuevos métodos y hemos mejorado algunas cosas.

La librería funciona en base a eventos, es decir, el programa que usa la librería puede enviarle comandos al lector en plan: “pon esto en el display”, “activa el relé 1 durante 2 décimas de segundo”, etc… pero además puede recibir eventos que se produzcan en el lector, como cuando una tarjeta se pasa por él, cuando se pulsa una tecla del teclado, cuando se reinicia el lector, etc. Todo esto de una forma muy simple, como se puede ver en el ejemplo adjunto:

from pymaldi import Pymaldi

class MyPymaldi (Pymaldi):
    def __init__(self):
        Pymaldi.__init__(self)

    def onReadCard (self, card_id):
        if card_id:
            msg = 'Card ID: %s' % (card_id)
        else:
            msg = 'Error reading card'

        rc = self.WriteDisplay(msg)
        if rc:
            print "ERROR (WriteDisplay): %d" % rc

reader = MyPymaldi()
reader.OpenPortUDP('192.168.2.22')
rc = reader.SetUpBIOMAX2()
if not rc:
    print "BIOMAX2 ready!"
else:
    print "ERROR (SetUpBIOMAX2): %d" % rc
    raise SystemExit

while True:
    try:
        reader.wait_events()
    except KeyboardInterrupt:
        raise SystemExit

Este código lo que haría es conectar con el lector que tiene la IP 192.168.2.22 y se queda a la espera de que pasen una tarjeta por él. En cuanto se pasa una tarjeta, se ejecuta una función que lo que hace es decirle al lector que ponga en el display el texto: “Card ID: ” seguido del número de tarjeta. ¿A que es fácil? :-)

Si sólo queremos pintar algo en la pantalla, nada más simple que:

from pymaldi import Pymaldi

class MyPymaldi (Pymaldi):
    def __init__(self):
        Pymaldi.__init__(self)

reader = MyPymaldi()
reader.OpenPortUDP('192.168.2.22')
rc = reader.SetUpBIOMAX2()
if not rc:
    print "BIOMAX2 ready!"
else:
    print "ERROR (SetUpBIOMAX2): %d" % rc
    raise SystemExit

rc = reader.WriteDisplay("Hola SKaRCHa ;)")
if rc:
    print "ERROR (WriteDisplay): %d" % rc

raise SystemExit

Y este sería el resultado:

Biomax2 usándose con Pymaldi

¿Se puede hacer más fácil? :D

Bueno, pues termino ya, que sólo pensaba hacer un comentario para anunciar la liberación de la librería y ha salido una entrada más larga de lo esperado. Si has llegado hasta aquí es porque te interesa la programación y/o el cacharreo, si no, no te entiendo… :D

Librería Pymaldi.

Posted in Programación | Tagged , , | 8 Comments

Me tragué mis palabras

Como todo el que me conozca personalmente ya sabe, de vez en cuando suelo comerme mis palabras, y como era de esperar, así ha sido una vez más.

Allá por febrero de 2007 (ya ha llovido desde entonces), escribí una entrada en el blog que se titulaba: “twitter aka chorrada 2.0“. En esa entrada contaba, como su propio título indica, que Twitter me parecía una chorrada, una tontería, y que esperaba no usarlo jamás. Si os fijáis bien, nunca dije que no lo usaría nunca, más que nada porque por esas fechas ya tenía la barriga bien llena de todo lo que había tenido que tragarme… O:)

Más adelante, en abril de 2007, escribí otra entrada en la que decía dos utilidades que se me habían ocurrido para Twitter, pero seguía sin verle el sentido a eso.

A lo largo de este año me he dado cuenta de, en mi opinión, una de la mejores utilidades de Twitter, y es la de poder seguir totalmente en directo todo lo que está pasando en cualquier parte del mundo, contado por la gente que está allí, en el sitio.

Otra utilidad que me gusta mucho es la de seguir a gente de la cuál te interesa su opinión, o lo que dice; bien porque suelen poner enlaces a cosas interesantes, o porque cuentan en qué están trabajando, sus proyectos, etc… Además, puedes responderles y suelen responderte, porque como son mensajes cortos, da menos pereza contestarte a un twitt que a un correo electrónico.

Así que hoy, no sin pasar algo de vergüenza, anuncio que estoy usando Twitter, y que si alguien quiere seguirme, esta es mi cuenta: http://twitter.com/skarcha

P.S.: Salgo a comprarme la moto… :D

Posted in Internet | Tagged | Leave a comment

Cherokee y rTorrrent

Como mi amigo JLuis me preguntó si podía usar Cherokee con rTorrent, me puse a preparar una entrada explicando cómo configurarlo todo; pero hablando con Álvaro llegué a la conclusión de que iba a ser mejor invertir ese tiempo en escribir un asistente para Cherokee-Admin, así que ayer subí un parche que implementa el asistente que permite configurar Cherokee para conectar con rTorrent.

Tan sólo tendríais que configurar rTorrent poniendo algo como esto en vuestro rtorrent.rc:

scgi_port = localhost:5000

La parte de Cherokee la hará el asistente. Disponible ya en la versión 0.99.24.

¿Cómo? ¿que todavía no usas Cherokee? ¡¿A qué estás esperando?! :D

Posted in Informática, Internet, Programación, Tecnología | Tagged , , | Leave a comment

EMTEC S800. No es lo que esperaba

Tener el reproductor multimedia definitivo es algo que llevo esperando desde hace tiempo, pero parece que tendré que seguir esperando.

Ahora mismo en casa usamos una combinación de cacharros para poder ver la tele que nos gusta:

  • Tenemos un televisor Philips LCD que es HD Ready (1080i como máximo), pero que no tiene conectores HDMI (le tengo puesto un convertidor de HDMI a DVI), ni TDT. Lo compramos en 2005, nos costó una pasta y no lleva nada de eso… pero bueno, su calidad de imagen es buenísima. No he visto muchas teles que se vean mejor que esta.
  • Para ver los canales TDT usamos un iPlus, que lleva doble sintonizador de TDT y de satélite. Nos hemos dado de baja de Digital Plus, pero como es nuestro, lo podemos seguir usando para ver la TDT; y con el doble sintonizador podemos grabar un canal a la vez que hacemos timeshift en el que estamos viendo. Tiene soporte de HD (Alta Definición) en satélite y en TDT.
  • Además, para complementar la oferta televisiva, tenemos una Xbox (de la primera generación) en la que tenemos instalado el Xbox Media Center, que es sin duda “el programa” para usar en una Xbox. Con ella vemos todo lo que descargamos de Internet, los videos caseros, las fotos, escucha música… Reproducimos tanto lo que está en su disco duro o lo que está en el servidor usando la red.
  • Mi viejo ordenador (un Pentium 3) actuando como servidor de ficheros y con un programa de torrents (rTorrent) para descargar contenido multimedia de la Red. Este ordenador puedo además encenderlo y apagarlo desde la propia Xbox usando un script en Python.

El otro día, buscando algo, me encontré con el EMTEC Q800… No tenía mala pinta: sintonizador analógico (ya para nada) y de TDT, disco duro de 1TB, red, programar grabaciones, timeshift, modo NAS, reproducción por red usando Netbios, etc, etc… Pero lo que más me llamó la atención es que se podía modificar para usar en él una Debian, y hay gente que instala Transmission como cliente de torrents… Mmmmm… Se me pusieron los ojos como platos, ahora podría usar un sólo cacharro para sustituir a la Xbox, el iPlus y al ordenador que descarga de Internet… Además, seguro que consumiría menos electricidad que el Pentium 3 mientras descargaba de Internet.

El viernes pasado fui al Media Markt y allí estaba… pero al final pillé el S800 porque lleva euroconector, y no sé porqué, pero en mi tele lo que no es HD se ve mejor por euroconector que por DVI. Total: 269€

Me lo llevé a casa y lo probé el mismo viernes por la noche… ¿Resultado?: a las dos horas lo tenía empaquetado en su caja y pendiente de llevarlo de vuelta para que me devuelvan el dinero. Comento las razones, y no por orden de importancia:

  • La calidad viendo la TDT era un poco inferior a la que me da el iPlus. No mucho, pero ya que cambio… :-)
  • Lleva un sólo sintonizador de TDT. Si voy a quitar un aparato que lleva dos, no voy a sustituirlo por otro que lleva uno solo. Además, que uso bastante esta característica.
  • No lleva soporte de TDT HD. La misma razón que el punto anterior… tengo que pasar a un aparato que tenga Alta Definición en la TDT.
  • XBMC. Sobran las palabras. Hice pruebas y todas las películas que probé se veían mejor usando XBMC que usando el S800. Ese programa aplica ciertos filtros que mejoran mucho la calidad de imagen. Además, el soporte de subtítulos es muuuucho mejor (creo que el S800 ni siquiera lo tiene). Y mejor no hablar de la velocidad de los menús y del resto de características que disfruto en XBMC, como la Biblioteca… En fin, ni punto de comparación.
  • No puedo encender el servidor desde el S800 usando el mando a distancia. Parece una tontería, pero lo uso demasiado… No me apetece levantarme del sofá y andar unos 20 metros para encender el ordenador… :)

Llegados a este punto ni siquiera me pensé el probar nada de instalar Debian ni mucho menos…

A destacar del S800, si no buscas lo que busco yo:

- 1TB de disco duro interno.
- Bajo consumo.
- Grabación de la tele (analógica y digital). Programable.
- Timeshift.
- Reproducción de archivos multimedia, tanto en disco local como por red.
- Lo puedes usar como servidor de ficheros.
- Creo que buena relación calidad precio.

En resumen: tendré que seguir esperando hasta que salga un buen Media Center que cumpla mis expectativas, o me tendré que decidir un día, comprar un mini ordenador con un Atom y montar algún software que me permita hacer todo lo que quiero.

¿Alguien recomienda algo? Estoy abierto a sugerencias… :-)

Posted in Linux, Tecnología, Televisión | 4 Comments