Robots y modelos

Notas sobre pruebas, modelado y aventuras en Java y Android

Posts Tagged ‘java

Eclipse Commiter en Epsilon

leave a comment »

Me alegra decir que acabo de entrar como Committer en el proyecto Epsilon de Eclipse GMT. La verdad es que llevaba desde verano del 2009 contribuyendo pequeños cambios para cubrir fallos que me encontraba y necesidades que tenía.

Ahora estoy de estancia en la University of York con los desarrolladores de Epsilon (Dimitris Kolovos y Louis Rose), realizando una contribución más grande, y decidieron invitarme al proyecto. La verdad es que está siendo muy interesante y están saliendo cosas curiosas. Estoy ocupado desarrollando EUnit, un marco de pruebas unitarias para temas de modelos, basado en Epsilon. Tengo en la cola de prioridades un artículo acerca de él: cuando tenga algo más definido, hablaré un poco más de EUnit por aquí.

Por lo pronto tengo 50 commits que limpiar y subir al SVN de Eclipse :-D. Por supuesto, estoy usando git-svn: es una alegría ver que puedes replantear tus 50 últimos commits limpiamente sobre los últimos cambios de Dimitris y Louis en SVN.

Anuncios

Written by bluezio

18 de abril de 2011 at 15:09

Publicado en Desarrollo

Tagged with , , , ,

Manual del Desarrollador

leave a comment »

Bueno, como de costumbre el toro me ha pillado con otras cosas y no he podido ponerme tanto como quisiera. He aprovechado este rato libre que me deja la Semana Santa para escribir una primera versión del Manual del Desarrollador.

Es algo escueta, pero que creo cuenta todo lo importante. En principio pensaba escribir un tutorial de cómo desarrollarlo, pero después me di cuenta que realmente no sería instructivo, ya que me pasaría más tiempo hablando acerca del procesado concreto que se fuera a hacer que de las particularidades de desarrollar para XMLEye.

Dicho y hecho: ya está subido a la web y los enlaces puestos en la forja. Cualquiera que lo desee es libre de mejorarlo y comprobarlo.

Por lo pronto, lo primero que me gustaría hacer antes de seguir es trabajar en una traducción inglesa de XMLEye, y posiblemente también después del post-procesador de ACL2. Casi todo está internacionalizado, salvo quizás por los POD de los módulos Perl: aún no me he puesto en ello. Lo siguiente sería traducir el propio código, que sí lo veo más difícil en el lado Perl, donde no tengo las herramientas de factorización de las que disfruta Java. En fin, supongo que para algo están las pruebas de regresión :-D. De todas formas no creo que me dé tiempo.

Empecé el visor con vistas a ACL2, pero estoy viendo que realmente se puede usar para cualquier cosa. Ahora mismo voy apuntando muchas posibles ideas y mejoras como Feature Requests en la forja, desde mejoras en usabilidad hasta nuevos formatos, pasando por cambiar a XSLT 2.0/XPath 2.0 e incluso crear una versión “headless” del programa, al que pudiera accederse con un navegador. Esto da para largo :-D.

Written by bluezio

21 de marzo de 2008 at 15:34

Publicado en Uncategorized

Tagged with , , ,

Módulo YAML/JSON->YAXML y Manual de Usuario

leave a comment »

Esta semana he estado escribiendo el Manual de Usuario (está entre los documentos del proyecto de la forja), y empecé el Manual del Desarrollador. Por lo pronto ya tengo las instrucciones de compilación, pero aún queda mucho por escribir. Más que nada lo hago porque la gracia de XMLEye está precisamente en que se escriban muchos tipos de documento para él.

Se me ocurrió que sería bueno tener un ejemplo sencillo en dicho manual, ya que definitivamente ACL2::Procesador no serviría como “ejemplo sencillo”: 6000 líneas aproximadamente de código Perl orientado a objetos, fábricas y demás, y sin contar la infraestructura necesaria para que todo funcione como un módulo Perl estándar.

Dicho y hecho: se me ocurrió que YAML podría ser un buen candidato, siempre que pueda escapar la ira de sus usuarios por ensuciarlo convirtiéndolo a XML :-D. Así se pueden usar más tecnologías XML sobre él, como XML Schema o XSLT.

Así que he creado un módulo Perl basado sobre YAML::Syck (un binding Perl de la biblioteca Syck de serialización) que convierte YAML a XML, e incluye una hoja XSLT que devuelve el XML así creado a YAML. Integra pruebas de unidad para asegurarse de que no se producen pérdidas de información en el proceso YAML->XML->YAML. Todo se ha hecho siguiendo las directrices de un binding experimental de YAML para XML, YAXML, disponible en http://www.yaml.org/xml.html.

Además, tiene sus propias hojas de usuario y descriptor de tipo para preprocesamiento y visualización para XMLEye, con lo que nos saltamos algunas de las limitaciones de XML a la hora de visualizar, como no poder tener elementos como “Pepito el de mi pueblo”, que sí son claves de tabla hash válidos en YAML, o nombrar como “Elemento 0” a los elementos de una lista. La hoja de visualización es una especialización de la hoja XML que añade elementos de los elementos con atributo alias a sus anchor correspondientes.

Se encuentra también en mi repositorio Debian, junto con una versión más reciente de XMLEye que corrige algunos fallos de los que me he dado cuenta desarrollando este ejemplo, dentro del paquete libyaxml-reverse-perl. Puede usarse como un módulo más, o a través del guión yaml2xml que incluye el paquete.

Ah, y de paso: este módulo (y XMLEye por lo tanto) también acepta documentos JSON, ya que dicho estándar no es más que un subconjunto de YAML. Si alguien conoce un vocabulario estándar basado en YAML o JSON, que me lo comente y veré si me puedo montar una especialización de las hojas de usuario para YAXML.

Al final creo que no he conseguido un ejemplo sencillo de preprocesador, pero por lo menos las hojas de visualización y preprocesado sí que son bastante sencillas :-D.

Written by bluezio

9 de marzo de 2008 at 21:07

Publicado en Uncategorized

Tagged with , , , , , ,