Campus Party Europa 2010

Bueno, pues he sido uno de los 800 europeos que pueden asistir desde hoy Miércoles hasta el Domingo a la Campus Party Europa, un evento organizado por el Ministerio de Ciencia e Innovación dentro del marco de la presidencia española de la Unión Europea y que se celebra en el recinto Caja Mágica de Madrid.

Hay charlas, talleres y un sinfin de actividades que copan la agenda del evento (como Rasmus Lerdorf , creador del PHP; o Karlheinz Brandenburg, creador del formato MP3).

Al llegar y haberte registrado re regalan un «welcome pack» que contiene un libro de ASP.NET, un disco usb, un mapa de madrid, un libreto sobre información de Madrid, un bloc de notas, dos boligrafos, una gorra, una camiseta, una almohada y un portadocumentos:

Cuando he llegado, daban un catering:

Dentro de una la sala de participantes ya se podía ver el ambiente y todo lo que hay por ver:

El stand de la asociación de robótica y domótica de España, de la cual soy socio:

También se podían encontrar equipos de modding:

Otra sala llamada Campus Futura, pero que estaba cerrada cuando he llegado.

Los asistentes tienen los desayunos, comidas y cenas gratis y se pueden alojar en la zona de acampada:

A ver a cuantas charlas puedo ir, pero de momento la cosa promete.

Una ayuda eficaz para resolver el cubo de Rubik

Navegando por Internet me he topado con este sencillo cgi de Eric Dietz donde metiendole el estado actual de un cubo de rubik te calcula todos los movimientos que tienes que hacer para resolverlo (incluyendo gráficos). No son los pasos más optimos, pero siempre encontrarás la solución cualquiera que sea la configuración de tu cubo de Rubik. También puedes llevarlo a un estado determinado e incluso cambiar los colores. Una pasada.

Mis dos robots

Estos son los dos robots que hecho para la edición 2010 del Cosmobot:

El de Sumo:

Básicamente es un robot Predator con 6 motores de  12 v. – 120 r.p.m – 8,8 kg/cm. gestionados por dos drivers de motores Pololu MD01B. Tiene sensores CNY70 y un SRF05. El cerebro es una placa Arduino Duemilanove y el corazón una batería LIPO de 11,1 y 4 A/h. Como se puede ver en el video es capaz de arrastrar 3 kilos (3 briks de leche) sin inmutarse. El video fue una de las primeras pruebas, le he ido añadiendo alguna que otra estrategia y estructuras para hacerlo más competitivo.

El velocista:

Tiene elementos en común con el de sumo, como es la placa Arduino, los drivers de los motores y los CNY70. Sin embargo los motores son unos Banebots de 6 v. – 1366 r.p.m – 0,72 kg./cm. y una batería LiCoO2 de 7,4 v. y 2,2 A/h. Todavía estoy haciendo pruebas con él usando un algoritmo PID. La verdad es que promete, ya que  puede podría correr velocidades por encima de los 2,5 m/s.

Sin embargo es la primera vez que me presento a este tipo de concursos, por lo que estoy seguro que habré cometido fallos de diseño que podrán afectar al desarrollo de la competición. Pero bueno, por lo menos queda que al final he hecho unos robots con los que he aprendido multitud de cosas y adquirido experiencia.

Edición 15/03/2010:

En la competición de sumo el robot fué un poco desastre. Es cierto que me tocó con un grupo complicado, puesto que todos eran robots veteranos, pero el hecho de que tuviesen forma de cuña hizo que levantaran casi siempre a mi robot. Por lo que quedé último de grupo.

En la de velocista quedé 5º empezando por abajo con una velocidad media de 1,25 1,29 m/s. Así que no cumplió las espectativas.

Sin embargo me divertí tanto participando como observando a los demás, aprendiendo de mis errores y pensando en nuevas estrategias y caracterísiticas que intentaré aplicar en futuras competiciones.

Cosmobot 2010. Participantes y agenda

Acabo de recibir un mail de los organizadores del Cosmobot en el cual se detalla el número de participantes:

52 equipos
32 robots de sumo
46 robots velocistas

Y de la agenda de los días 13 y 14.

La verdad es que no contaba con que hubiese tanta participación, pero esto es positivo ya que asienta la competición y la hace más emocionante. Ahora sólo hace falta que la asistencia de público y medios de comunicación sea masiva.

De momento ya tengo terminado el robot de sumo a falta de algunos retoques y en breve voy a empezar con el velocista.

Seguimiento de objetos con un sensor de ultrasonidos y un servo

Si no he escrito antes es porque estoy con un nuevo proyecto que me va a llevar un tiempo tenerlo finalizado, y es presentar dos robots (un velocista y uno de sumo) al Cosmobot 2010. Este concurso se celebrará como en ediciones anteriores en el edificio Cosmocaixa de Alcobendas el día 13 (sumo) y 14 (velocistas) de Marzo.

De momento he comprado la piezas (motores, drivers, carcasas, sensores, baterías, etc) para ir montándolo poco a poco y hacer pruebas para afinarlos y tenerlos listos para competir esos días (¡¡¡ dan premio hasta en el 8 puesto de la clasificación !!!). Ya veremos como sale, aunque esta vez si que puedo decir que lo bonito es participar y haberse enfrentado a una multitud de inconvenientes como problemas mecánicos, eléctricos, lógicos, etc. mientras montaba los robots.

Por el momento estoy fabricando el sistema de seguimiento que tendrá el robot de sumo para detectar al contrincante y perseguirle. Este está formado por un sensor ultrasónico SRF05, un servo (en mi caso un TowerPro SG5010) y la placa de control Arduino.

El servo está continuamente girando en su rango de 180º mientras que el sensor está midiendo constantemente la distancia. Si encuentra un objeto el servo se para y según donde se haya parado (a la izquierda o a la derecha) se moverá el robot en consecuencia para seguir al contrario y echarle del dojo. He grabado un video donde practicaba estos conceptos (pero sin robot):

En este otro video de un robot de sumo se hace un seguimiento más efectivo que aún no he conseguido llevar a cabo, pero todo es probar y probar y probar:

Finalmente esto es lo que debería hacer el robot de sumo:

Base de datos de IPs

Hoy en día se puede saber de cualquier IP a qué ciudad pertenece (incluso a veces hasta el barrio). Para ello existen bases de datos en Internet donde se puede consultar este tipo de información.

En concreto voy a comentar sobre un sitio que ofrece este servicio gratis y es mantenido por donaciones. Se llama IPInfoDB. Provee varios servicios:

Los usos que se le pueden dar son muchos: Saber desde donde te envían los comentarios, crear un servicio en internet destinado a un país o ciudad en concreto, conocer donde están ubicados los datacenters de un dominio determinado, personalizar el idioma de una página al usuario que la visita, etc.

La información se actualiza a principios de cada mes.

Manifiesto en defensa de los derechos fundamentales en internet

Ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

Este manifiesto se ha realizado por el esfuerzo conjunto de muchas voces y pertenece a todos. Si estas de acuerdo con el, pásalo y/o publícalo.

Ejecutar un script nada más recibir un correo con postfix

El servidor de correo Postfix es muy potente y altamente configurable.

Ente sus multiples opciones, una de ellas es permitir realizar una acción al recibir un correo y esto se puede aprovechar (como se verá más adelante) para ejecutar un script o programa al recibir un correo.

La ventaja con respecto a estar comprobando cada cierto tiempo un buzón de correo es que el script se ejecuta inmediatamente al recibir un correo , no hace falta tener un servidor pop3 y no hace falta borrar el mensaje porque postfix se lo pasa a la aplicación y no lo guarda en ningún sitio.

Para explicar como configurarlo, parto de la base de que ya se tiene configurado el postfix con un dominio y recibe correos en ese dominio. En mi caso tengo el dominio sistemasorp.com dirigido a mi servidor casero.

Como no quiero que interfiera con el correo de mi dominio actual, he de crear un nuevo registro MX en mi servidor DNS para añadir un subdominio, por ejemplo servicios.sistemasorp.com (esto también me dá una ventaja que comentaré más adelante).

El siguiente paso es acceder como root a la consola y entrar en el directorio /etc/postfix (o donde se encuentre el directorio de configuración del postfix).

Editar el fichero main.cf y añadirlas siguientes lineas (si no existían ya)

transport_maps = hash:/etc/postfix/transport

local_recipient_maps=

Editar el fichero master.cf y añadir la siguiente linea:

XXX unix    –       n       n       –       1       pipe  flags= user=YYY argv=ZZZ ${sender} ${recipient}

  • XXX indica el nombre de una alias, en mi caso servicios
  • YYY es el usuario del sistema con el que se ejecutará el script (escoge uno que tenga persmisos para lo que quieras hacer)
  • ZZZ es la ruta del script o programa que quieres que se ejecute, en mi caso /usr/local/bin/emailprueba.sh
  • ${sender} y ${recipient} son dos variables que le pasamos por parámetros al script.

Editar el fichero transport y añadir la siguiente linea:

subdominio      XXX:localhost

  • subdominio es la parte entera del dominio, en mi caso servicios.sistemasorp.com
  • XXX indica el nombre del alias que usamos en el fichero master.cf, en mi caso servicios

Finalmente ejecutar postmap /etc/postfix/transport para crear la base de datos de transportes de postfix.

Con esto, cualquier correo que se dirija al subdominio que hemos creado se pasará directamente a nuestro script. De ahí nuestra ventaja que comentaba antes: da igual el nombre que aparezca a la izquierda de la arroba, no hace falta que esté dado de alta como usuario en linux, por lo que podemos usarlo como un identificador de servicio, el número de un móvil, etc.

Postfix lo que hace es ejecutar el script pasándole por la entrada estandar todo el contenido del mensaje (cabeceras y cuerpo) y como parámetros los que se le indiquen en el master.cf : la variable ${sender} es la cuenta de correo electrónico del remitente y ${recipient} es el nombre que aparece a la izquierda de la arroba, aunque hay muchos más.

Así por ejemplo si queremos tener un servicio de envío de sms podemos crear un mensaje dirigido a 699999999@servicios.sistemasorp.com desde nuestra cuenta google@gmail.com, por lo que el script además de recibir el mensaje entero recibe como parámetros google@gmail.com y 699999999.

Otro ejemplo es tener un servicio de envío de ficheros y uno de traducción de palabras. En el primer caso si enviamos un correo desde nuestra cuenta google@gmail.com a enviame@servicios.sistemasorp.com y como asunto ponemos una URL nos enviaría de vuelta como fichero adjunto el indicado en la URL. En el segundo caso si enviamos un correo desde nuestra cuenta google@gmail.com a traduce@servicios.sistemasorp.com y como asunto ponemos una palabra en inglés nos enviaría de vuelta la traducción del termino. En ambos casos el script es el mismo y se encarga de saber qué servicio estas solicitando por el nombre de la cuenta de correo al que va dirigido y actuar en consecuencia.

Un script sencillo para ir probando los conceptos es este:

Simplemente recibe un correo y vuelve a enviar al remitente otro correo con los datos que envió. Lo podeis probar enviando un mensaje a pepe@servicios.sistemasorp.com, prueba_de_concepto@servicios.sistemasorp.com, asdfhasdjlfhasdjkfhjkdfh@servicios.sistemasorp.com o el destinatario que querais@servicios.sistemasorp.com y un asunto cualquiera (si no lo recibis mirad que no se haya puesto en vuestra carpeta de spam).