Planet

De vuelta al trabajo.

Hola de nuevo a todos, quería daros la noticia de que he retomado con nuevas fuerzas y entusiasmo el proyecto :). Desde que empecé a comercializarlo, no se cuanto tiempo hace ^^, he vendido un total de 75 unidades, tanto a terreno nacional como importando a países de la Unión Europea, por ejemplo, Rusia, Italia, Inglaterra… Cuando me disponía a fabricar nuevas unidades me replanteé un poco el diseño y he realizado algunos cambios:

  • El cristal lo he cambiado a 20MHz, para conseguir llegar a velocidades CAN de 1Mbs.
  • Los leds que señalizan el estado de los bufferes de recepción los he invertido, antes estaban siempre encendidos y se apagaban cuando tenían un mensaje almacenado. Esto generaba un consumo extra innecesario.
  • Al transceiver, MCP2551, le he cambiado de encapsulado, ahora uso SMD, que es más rápido y barato para el montaje.

Además de los cambios Hardware estoy preparándome para los software

  • He instalado un servidor Sub-Version en casa para poder llevar un mejor control de la librería y poder mejorarla, sin perder nunca versiones anteriores y facilitándome la búsqueda de posibles fallos. Además si alguien se incorporase algún día al proyecto un control de versiones sería absolutamente necesario, así que ese camino que llevamos andado.
  • Estoy empezando a desarrollar todo usando Eclipse, facilita mucho el trabajo a nivel de librerías para Arduino y ya puesto también es bastante cómodo para crear aplicaciones. He creado un tutorial para el que le interese el tema Arduino+Eclipse. Además usando Eclipse es muy cómodo para trabajar con el Sub-Version.

La idea general es darle una repasada a la librería y buscarle alguna vuelta de tuerca para hacerla más fácil y cómoda para los usuarios. Además para empezar publicaré algunos ejemplos prácticos usando la librería para facilitar en la medida de lo posible su comprensión.
Para terminar dar la noticia que tengo pedido el conector OBD, espero que antes del verano tengamos a Arduino+ArCan sacando estadísticas del coche :).
Tengo algunas preguntas para todos los usuarios,

  1. ¿ Veis importante los conectores atornillables ? si los que están al borde de la PCB
  2. ¿ Pensáis que sería mejora cambiar el conector CAN por un DB9 o algún otro tipo de conector ?
  3. ¿ Queris sugerir algún cambio en el diseño ? ahora es el momento

Participar todos y contribuir al proyecto ArCan.

Versión 0.13 ya disponible

Después de un largo tiempo de inactividad en el proyecto, ya está disponible una nueva versión del proyecto, la 0.13, con la novedad de que dispone de un paquete Debian para que el proyecto pueda ser fácilmente instalable en cualquier sistema Linux basado en Debian, como Ubuntu, por ejemplo. A partir de esta versión, ya no me planteo, de momento, hacer versiones compatibles con Windows, así que Unimail sólo funcionará a partir de ahora en Linux. Esta vez no lo he traducido al español, pero dejaré esta tarea para una próxima versión más completa y estable.
Las novedades que trae esta versión son pocas y casi inapreciables por el usuario, pero son muy importantes. Los procesos de búsqueda, envío y descarga ahora se hacen en procesos aparte, por lo que ahora es muy fácil cancelarlos, cosa que ya se puede hacer pulsando un botón. Además, la aplicación se queda en el tray, por lo que se puede dejar haciendo una transferencia de fondo sin que moleste. También, los errores ahora aparecen notificados mediante mensajes emergentes, por lo que es fácil saber cuándo algo ha ido mal.
El hecho de haber creado el paquete Debian y haber separado los procesos de búsqueda y transferencias de la interfaz de usuario me ha motivado bastante para seguir adelante con el proyecto, así que habrán más versiones de Unimail en el futuro.
Esta nueva versión está disponible en la sección de descargas, como siempre.

[RECETA] Desplegar MediaServer para cámaras Axis

En esta receta explicaré como poner en funcionamiento uno de los elementos de Argos: el MediaServer especializado para las cámaras IP de marca AXIS.InstalaciónComo ya comenté en otras entradas, el MediaServer está implementado como servicio IceGrid. Por ello, he distribuido un binario en forma de paquete DEB para Debian. Para poder instalarlo, añade lo siguiente en tu archivo /etc/apt/sources.list deb http://babel.esi.uclm.es/gnesis/ unstable mainUna vez hecho esto tan solo hará falta hacer lo siguiente: # aptitude update; # aptitude install libaxismediaserverDicho paquete instalará las dependencias necesarias para hacer funcionar "el invento" y, además, incluye un fichero XML con la configuración mínima para poder cargarlo en IceGrid-GUI y ver como configurarlo. Dicho fichero se encuentra en /usr/share/doc/libaxismediaserver/template.xmlPuesta en marchaPara la puesta en marcha supondré que tenemos una cámara Axis en la IP 192.168.0.5. El servicio se puede arrancar de dos formas: a mano, ejecutando icebox y pasándole un fichero de configuración con los parámetros correctos o bien utilizando IceGrid-GUI y la plantilla suministrada con el paquete.Usando icebox y dicheros de configuraciónPara arrancar el servicio "a mano" necesitaremos dos ficheros de configuración diferentes:

  • El primero será en el que le especifiquemos a IceBox que librería cargar y una serie de configuraciones de administración de los servicios ejecutándose en ese IceBox.
  • El segundo es el que IceBox pasará a la librería y que contendrá parámetros que utilizará el MediaServer para Axis para funcionar.

Ejemplo del primer fichero de configuración:IceBox.Service.AxisMediaServer=AxisMediaServer:createAxisMediaServer --Ice.Config=config_AxisMediaServerIceBox.InstanceName=AXIS.192.168.0.5IceBox.LoadOrder=AxisMediaServerIce.Default.Locator=IceGrid/Locator:tcp -h locator.ip -p 4061En este fichero deberíamos configurar el nombre del fichero pásado en la primera línea a nuestro servicio, si tuviera otro diferente, y el proxy del Ice.Default.Locator de la última línea. El nombre de instancia de IceBox no es problemático, pero si convendría adaptarlo a nuestro escenario.El segundo fichero de configuración contendría información relativa a nuestro entorno:AxisMediaServerAdapter.Endpoints=defaultAxisMediaServer.IP=192.168.0.5AxisMediaServer.User=userAxisMediaServer.Password=passPropertySetFactory.Proxy=PropertySetFactory @ AutoPropertyService.AdapterIce.Default.Locator=IceGrid/Locator:tcp -h locator.ip -p 4061Al igual que en el ejemplo anterior deberemos adaptar la configuración del Default Locator y, en este casi, de la propiedad "PropertySetFactory.Proxy". Para tener funcionando este servicio de propiedades podemos recurrir a la documentación del paquete libpropertyservice33.Usando IceGrid y plantillasUtilizando ZeroC Ice, existe la posibilidad de utilizar IceGrid. Esta utilidad es un servicio avanzado del middleware para la administración de grids de nodos que ejecuten diferentes servicios.En el paquete libaxismediaserver se incluye un fichero template.xml. Este fichero puede abrirse utilizando IceGrid-Gui y utilizar las plantillas en él definidas para copiarlas a una aplicación dentro de nuestro registry.La ubicación de dicha plantilla es la siguiente:/usr/share/doc/libaxismediaserver/samples/template.xml

GECO en novatica

Hace poco escribí un artículo para la revista Novática, por ser un proyecto finalisata en la tercera edición del CUSL.
Ya se ha publicado la revista y aquí dejo el resultado final.El artículo puede leerse en la versión en papel en el número 203.

La poca creatividad de los vándalos

Hace unos días generé una tabla teniendo en cuenta las reversiones realizadas por AVBOT durante 63 días entre el 20 de febrero y 3 de mayo de 2010 (algunos de los cuales estuvo inactivo por mantenimiento).En este periodo, AVBOT intervino 29157 veces. Las 560 expresiones regulares que aparecen se dispararon al menos una vez en ese intervalo, y en total se activaron 39435 veces.La más frecuente es p+[^a-z0-9]{,3}u+[^a-z0-9]{,3}t+[^a-z0-9]{,3}[ao]+[^a-z0-9]{,3}s* (puta y derivados) con un 8,2%. El 50% de los vandalismos revertidos por AVBOT queda cubierto con las 19 primeras expresiones regulares. El 75% con las 56 primeras. El 90% con las 149 primeras. El 95% con las 224 primeras. Y el 99% con las 375 primeras.Como podeis comprobar, los vándalos no se caracterizan por tener una gran creatividad, de ahí que se dediquen a destruir en vez de a mejorar lo existente.

Offtopic: Fox Splitter

Durante este año he tenido que estar escribiendo mucho en inglés, y no es que se me dé mal tampoco, pero hace mucho que no estudio gramática y en ocasiones no estoy muy seguro de si escribo bien. Desde hace un tiempo me he dado cuenta que cuando tengo que escribir en inglés casi siempre tengo las Google Language Tools abiertas en dos pestañas de Firefox: la primera con español-inglés y la segunda con inglés-español. Mi forma de trabajar es sencilla y voy escribiendo en una y en otra, pero cuando llega un momento en el que termino cansando de estar cambiando de pestañas continuamente.El caso es que esta tarde estaba buscando una extensión para el Firefox cuando me he encontrado otra que sin duda me va a ser útil: Fox Splitter. Esta extensión hace algo que llevo queriendo hacer desde hace mucho tiempo, y es poder poner dos pestañas de Firefox una al lado de la otra. Mirad que bien queda para el caso que comentaba de las Language Tools: Parece útil ¿verdad?HTH!

Final en Albacete y ¡premio!

Esta mañana nos hemos venido mi bien y fiel amigo Manuel y yo a Albacete a la final del Concurso y a las actividades relacionadas. Un día de software libre en plan hermandad, comilona por la cara y claro, la presentación del proyecto.He sido el primero, rompiendo el hielo, con dos.... y ha ido bien, pero siempre se puede mejorar. Como primera exposición con bastante gente delante de mi vida no me puedo quejar, aunque me dejé un par de cosas en el titnero que me hubiera gustado decir.Me llevo para casa un premio, el de mejor utilidad. ¡Me siento muy orgulloso!El ganador ha sido el proyecto Tivio de otro culipardo (Ángel Guzmán, a.k.a. Shakaran). ¡Felicidades amijo!Por el Twitter llevo todo el día actualizando, así que para enteraros de algo... allí estoy

¡Finalista!

Escribo hoy, festivo en Ciudad Real, para deciros que me han seleccionado como finalista del Concurso Universitario de Software Libre de Castilla-la Mancha.Es todo un honor y una alegría poder ir a Albacete a pasar un día con amigos del Software Libre. Además, las charlas que han preparado tienen muy buena pinta.Las presentaciones de los 6 proyectos finalistas empezarán a eso de las 12, pero la mañana estoy seguro de que empezará mucho antes con algunas charlas que seguro que me encantan (Android, ¡allá voy! :D)Bueno, solo pido que me deseéis suerte con la presentación de Argos. ¡Espero no ponerme muy nervioso!

MediaRender: en dos sabores

Cuando terminé el MediaServer, que comenté hace unas cuantas entradas, empecé a desarrollar el MediaRender.MediaRender pretendía ser algo muy parecido al MediaServer y que lo complementa: el MediaRender representaría de alguna forma en otro sitio lo que el MediaServer estaba distribuyendo.Empecé a programarlo siguiendo una estructura casi igual que la del MediaServer: un servicio IceBox que, por un lado, anunciara en un canal de eventos al objeto y, por otro, lidiara con la representación del flujo. Conseguí hacerlo en poco tiempo, reutilizando mucho código del que estaba escrito para el MediaServer (aunque con bastantes arreglos menores) y conseguí poner en marcha un MediaRender basado en Gstreamer que fuera capaz de crear una ventana a pantalla completa y representar el flujo enviado por el MediaServer de Axis que ya tenía.Tras verlo en funcionamiento, y a sugerencia de mi director de proyecto David Villa, empecé a desarrollar algo similar en Python: un MediaRender que también iba a usar Gstreamer pero que sería completamente diferente en cuanto a utilización por parte del usuario.A diferencia del primer MediaRender, escrito en C++ como servicio IceBox, este nuevo sería en Python y la parte relacionada con Ice sería más simple. La forma de utilizar uno y otro se diferencian de forma drástica: mientras el servicio IceBox estaba pensado para ejecutarse en la sesión del usuario, de forma transparente para él (y sin ningún control por su parte), el MediaRender hecho en Python sería un applet de escritorio de Gnome, de forma que ofreciera al usuario algún tipo de control sobre el programa (por ejemplo, arrancar o detener el servicio, tiempo entre anunciamientos, modo ventana/pantalla completa...).Ambos sabores de MediaRender están disponibles, aunque por razones de tiempo, para el Concurso de Software Libre no pude realizar la parte de applet de escritorio para Gnome como tenía pensado, así que por ahora se trata tan solo de una aplicación de escritorio sin demasiadas posibilidades de configuración.Ésta será una de las líneas a seguir durante los próximos días en el desarrollo de Argos, así que no os extraéis si en pocos días tengo novedades al respecto.¡Saludos!

Documentación para el Concurso

Dentro de la evaluación del Concurso Universitario de Software Libre se pide una documentación sobre el proyecto, en la que se explique su filosofía, objetivos, puesta en marcha...Publico aquí la documentación, por si alguien además de los evaluadores quisiera verla. Estoy abierto a todo tipo de comentarios. ¡Participad!Documentación de Argos

Distribuir contenido