Ya he recibido el lector de Tractis

Hoy he recibido el lector de tractis, la verdad es que un poco más tarde de las 2 semanas que iban a tardar si tenían pensado repartir el 21 de Octubre. Aunque a su favor puedo decir que me avisaron el 3 de Noviembre de que lo acababan de enviar y sólo ha tardado una semana en llegar.

El lector es de color negro, muy fino, con publicidad de jazztel y venía en un sobre de cartón duro metido en un plástico de burbujas junto con un cable usb y dos panfletos de publicidad.

lectorusb

El problema radica en que cuando lo he enchufado en el ordenador con Windows XP no me lo ha reconocido y se queda como un dispositivo desconocido llamado EMV Smartcard Reader. En la web de tractis he visto que el lector es un Costar US777-A Slim Reader y para descargar sus drivers hay que hacerlo desde aquí.

Curiosamente los drivers empiezan por Au9520, que es otro lector de smartcards de la empresa Alcor Micro aunque con unas especificaciones superiores a las del lector de Costar.

Adiós dominios, adiós

Me he deshecho de dos dominios de internet que ya no quería seguir manteniendo.

Uno de ellos es quejateportodo.com. Este es muy antiguo y data de 2001. Su función principal fue albergar una especie de foro donde la gente expusiera sus quejas sobre los temas que quisieran. Estába organizado por secciones para poder clasificar mejor las quejas. Como anécdota os puedo contar que una vez me llamó la Policía Local de Granada por una denuncia que había puesto el dueño de unos parkings por unas criticas feroces a su gestión publicadas en la web; como le pedí una orden judicial para darle los logs del servidor web se calló y no volví a saber nada de el (¿Sería el propio dueño de los parkings haciendose pasar por la policía?). Finalmente como hice varios cambios y veía que no tenía mucho éxito lo dediqué a otras cosas.

El segundo es horaylugar.com. Una web donde podías crear citas, eventos, reuniones, etc y localizarlas en un mapa para después enviarselo a quien quisieras. Lo presenté al único concurso de mashups de Google Maps y quedó 4º, pero debido a su poco éxito lo abandoné a su suerte.

Actualmente ya sólo tengo los dominios sistemasorp.com (el dominio que apunta a mi servidor casero basado el linux), sistemasorp.es (el dominio asociado a mi cuenta de hosting) y sistemasorp.es (este blog)

Geocities cierra

Hoy me he enterado que Geocities cierra, la web de hosting que operaba desde 1994 y que más tarde fue comprada por Yahoo.

La verdad es que me ha entrado un poco de nostalgia. No en vano fue mi primer sitio de hosting allá por 1996 (me dí de alta en hotmail y geocities con un equipo que estaba en el SIMO conectado a Internet).

Aún recuerdo cuando me compré un libro de bolsillo de HTML de Anaya y pocos días después fuí con un disquete de 720 kbytes al primer cybercafé que hubo en Madrid (no recuerdo su nombre) en los bajos de Azca y subí todos los ficheros de lo que fué mi primera página web. Por aquél entonces tenías que elegir tu vecindario donde clasificar tu web, yo usé SiliconValley.

Ha llovido mucho desde entonces, pero es bueno saber que yo, como muchos, fuimos testigos de la revolución que Internet estaba a punto de ser.

Antes de Internet mi conexión era por modem a BBS y hasta fuí punto de Fidonet, de Subnet y de Darknet. Era otro mundo: frontdoor, fmail, golded…

Es una lástima cómo van cayendo los veteranos de Internet al igual que fue una lástima ver como Fidonet y las BBS fueron desapareciendo y perdiendo importancia.

El galileoscopio que no llega

El 6 de Agosto me compré un galileoscopio. El caso es que siguiendo la web del estado de envío me encuentro con que aún no se ha procesado mi pedido (que está cerca del 30.000) y encima no creen que se distribuya hasta finales de noviembre.

Aunque el producto parece que es una buena herramienta a un muy buen precio, la planificación que han hecho es un desastre. Primero al repartirlo dan más prioridad a los estadounidenses que al resto del mundo (toma idea del negocio) , segundo van pidiendo remesas cada cierto tiempo en vez de haber pedido todo de una sola vez y haberlos distribuido a medida que van entrando los pedidos, y tercero ya van desfasados de fechas: primero dicen que tardan de 4 a 6 semanas, luego que a mediados de octubre y finalmente dicen que a finales de Noviembre.

¿No sabían cuantos galileoscopios iban a vender?, ¿es que no se pueden haber asesorado minimamente o hacer un estudio de mercado?.

En fin, a aguantarse tocan hasta finales de Noviembre. Buena iniciativa, mala planificación.

¿Por qué escribo tan poco?

Parece que el blog está dedicado a artículos que la gente encuentra por Internet cuando busca algo en vez de artículos que se lean asiduamente. Culpa mía.

Un blog es un sistema de comunicación que tiene más o menos éxito dependiendo del caso que su autor le haga. Hace tiempo que solía escribir más a menudo, pero dada la naturaleza del blog, en el cual, salvo excepciones, sólo escribo artículos de cosecha propia (nada de enlazar a otros artículos ni copiar y pegar más de un 25%), prefiero escribir cada cierto tiempo para no agobiarme ni dejar a los posibles lectores colgados.

Mi blog nunca será de éxito, porque no estoy navegando por Internet continuamente para ver las cosas más curiosas y publicarlas, tampoco saldrá en los rankings de los más visitados puesto que los artículos que aparecen no están orientados para la mayoría de la audiencia.

En definitiva, no es un blog para las masas. Es un blog para usuarios de distinta índole cuyos intereses a veces coinciden con lo que publico.

Pero tranquilos, seguiré escribiendo artículos a mi ritmo y de la forma que he hecho hasta ahora.

Programar la cámara IP Zaapa CIPRW (ZA-CIPRW) en .NET

Uno de los problemas que veo con la cámara IP Zaapa que me compré es que sólo se puede manejar desde un navegador Internet Explorer, y la verdad es que eso le quita mucho potencial a una cámara tan completa y barata como esta. Por eso me he puesto manos a la obra para desengranar un poco el funcionamiento y poder crear una aplicación de escritorio para poder manejarla.

Todo el trabajo de investigación ha estado centrado en ver cómo funciona el código fuente javascript de la página web que ofrece la cámara zaapa, ya que buscando por internet no he encontrado nada sobre cómo manejarla.

Lo primero que nos encontramos es que instancia un objeto llamado DVM_IPCam2.ocx. Buscando por internet he encontrado muy poca información sobre ese fichero en cuestión y mucho menos de la API OLE que encierra.

Por suerte el Visual Studio .NET puede incorporar ocx y ver de una tacada todos los métodos, propiedades y eventos que maneja el control ocx. Para ello dentro del Cuadro de herramientas, se pulsa con el botón derecho en Componentes y se selecciona Elegir Elementos… Después se pulsa sobre la pestaña Componentes COM y se selecciona DVM_IPCam2 Control.

dvmipcam2

Si no existiese es que no está registrado en Windows. Entonces habría que descargar el ocx desde la dirección http://<ip de la camara>/codebase/DVM_IPCam2.ocx, guardarlo en c:\windows\system32 y desde una consola de ms-dos ejecutar regsvr32 c:\windows\system32\DVM_IPCam2.ocx y después volver a repetir el proceso de Visual Studio.

Con esto ya tendremos el componente ocx para insertarlo en el formulario. Ahora para acceder a la cámara hay que seguir los siguientes pasos:

  • Conectar con la cámara usando el método MonitorConnect, pasándole como parámetros la dirección host o ip de la cámara, el puerto por el que escucha (normalmente el 80), el usuario y la contraseña.
  • Capturar el evento OnMonitorConnectResult y si la conexión ha sido satisfactoria pasar al siguiente punto
  • Empezar a recibir las imágenes dentro del control ocx usando el método PlayVideo.
  • Esperar a recibir las imágenes con el evento OnPlayVideoResult.
  • Hacer el resto de operaciones: mover la cámara con el método DecoderControl, hacer fotografías con el método Photo2, grabar un video con el método StartRecord2, reiniciar la cámara con el método RebootCamera, etc.
  • Cuando se termine de trabajar con la cámara llamar a los métodos StopVideo, StopRecord y MonitorDisconnect.

He desarrollado una pequeña aplicación que muestra estos conceptos. No hace comprobaciones de errores para simplificar el código:

aplicacioncamara

Podeis descargar el código fuente en c# y un ejecutable desde aquí.

El siguiente paso sería tratar de hacer que funcionase el firefox para windows y en un futuro conocer el protocolo para manejarlo desde linux, desde un iphone o desde cualquier otro entorno.

Capturar el escritorio o una ventana de windows con .NET

En el trabajo los usuarios nos envían incidencias de las aplicaciones, pero en muy pocas ocasiones adjuntan un «pantallazo» del error. Entiendo que el proceso de pulsar Impr Pant, irse al paint, pegar la imágen, guardarla en JPG y adjuntarla a la incidencia es algo que no saben muchos usuarios.

Por eso se me ocurrió crear una aplicación sencilla en c# que gestionase todo ese proceso (excepto adjuntar la imágen a la incidencia). Tomando como base este artículo he desarrollado la aplicación CapturaVentana (ciertamente no me he escornado buscando el nombre) debido a que el escritorio o una ventana son lo mismo para windows.

ventana

Su uso es muy sencillo. Elegimos si queremos copiar el resultado al portapapeles o a un fichero jpg y pulsamos sobre el botón correspondiente de lo que queremos capturar (escritorio entero o una ventana individual). En el caso de capturar el escritorio la aplicación se esconde momentaneamente para que no aparezca en la «foto». Si se trata de capturar una ventana hay que pulsar con el ratón sobre la ventana que queremos fotografiar después de haber pulsado el botón.

El código fuente se puede descargar desde aquí.

alarma

Hacía tiempo que no desarrollaba un proyecto con la fonera. En esta ocasión voy a hacer un sistema de alarma, la cual se activa cuando se pulsa un botón. Para ello me he hecho con lo siguientes materiales:

Emisor de 1 canal

Receptor de 1 canal

Fonera

getfile

Cuando alguien pulse el mando emisor, el receptor (alimentado por la fonera) recibirá la señal e informará a la fonera que se ha activado. Después la fonera se conectará a una página web para mandar un mensaje sms a un número de teléfono. Esto es útil por ejemplo para ancianos que desean solicitar asistencia, con sólo llevar el emisor colgado ya pueden enviar la alarma. Otra aplicación es una tienda donde se solicite ayuda en caso de robo, guardando el emisor debajo del mostrador o en el suelo.

Para ello, lo primero que se debe tener es la fonera con el firmware openwrt. Los pasos se pueden seguir aquí.

Después hay que instalar el módulo gpio. Los pasos se pueden seguir aquí.

A continuación hay que hacer que la fonera sea independiente del cable de red y se conecte como cliente al router wireless. Primero editamos el fichero /etc/config/wireless y ponemos lo siguiente:

Donde SSID es el nombre de la red wireless y CLAVE HEX la clave wep en hexadecimal (Para otras configuraciones mirar el documento de configuración aquí)

Segundo editamos el fichero /etc/config/network y ponemos lo siguiente:

Con estas configuraciones hacemos que el router de la fonera se conecte al punto de acceso como cliente y coja una ip mediante dhcp, sin la necesidad de tener un cable de red, por lo que podemos ponerla en cualquier lado. Por si acaso se deja una ip 192.168.1.200 en el puerto ethernet por si hubiera que conectarse a ella y no funcionase el wifi.

El siguiente paso es crear el script que recibirá por el gpio la señal del receptor. Creamos el fichero /usr/bin/alarma.sh con este contenido (poniendo el usuario, contraseña, numero de móvil y el mensaje a enviar):

Lo que hace el script es comprobar la salida del receptor cada segundo, si está activada enciende el led wlan de la fonera y accede a una página web php que envía mensajes sms con la API de envío de SMS del open movil forum, este es el código fuente:

El fichero SMSSenderAPI.php lo podeis descargar aquí. Los campos LOGIN y PASSWORD son para la api de open movilforum, el campo DESTINO es el número de móvil del destinatario y el campo MENSAJE el texto que se le enviará.

Después se edita el fichero /etc/firewall.user y se añade al final la siguiente linea sh /usr/bin/programa.sh &.

En la parte hardware he sacado los cables de GPIO de la fonera y alimentación y masa al exterior:

imgp0885imgp0886

Igualmente he quitado en el receptor el integrado 7805 para alimentar el circuito directamente desde la fonera con dos cables (alimentación y masa):

imgp0887

Y soldado al pin 1 (el que se pone a 5 voltios si el circuito ha recibido una señal) del chip HEF4013BP un cable que irá directamente conectado al gpio 1 de la fonera:

imgp0888

Y como colofón un video demostrativo:

En el vídeo se puede ver como pulso el botón del emisor, después el led de la fonera se pone en verde y finalmente se recibe un mensaje de texto indicando Alarma activada.