Anunciados Google Summer of Code 2008

Google Summer of Code 2008

After last year’s experience, I applied again to Google Summer of Code. I did two proposals, one for ArgoUML, and one for WordPress, and the ArgoUML one have been selected (WP folks said me that my proposal was great, but that I’ve been selected by another org). I’ll post soon both proposals, but I want to advance that I’ll be working on “UI Code generation for ArgoUML property panels”. Last year, not only me, but two great friends from my school were selected, Marcos (Mono) and Ana (Debian). This year, again, some friends from my school have been selected, so we are:

Not in the University of Sevilla, but in the UNED, I want to remark another friend of mine:

  • Replace auto* with CMake (PHP), by Alejandro Leiva Rojas, mentored by Pierre A. Joye
  • This year ~66 Spanish students will have a great opportunity for showing their skills on an Open Source Project. More stats at the official announce.
    You can join Google Summer of Code next year, but you can begin contributing right now!


    Google Summer of Code 2008

    Tras la gran experiencia del año pasado, solicité de nuevo la Google Summer of Code. Hice dos propuestas, una para ArgoUML, y otra para WordPress, y la de ArgoUML ha sido seleccionada (la gente de WP me dijo que mi propuesta era buena, pero que había sido seleccionado por otra organización). Publicaré pronto ambas propuestas, pero adelanto que estaré trabajando en “Generación de código de UI para los paneles de propiedades de ArgoUML”. El pasado año, no sólo yo, sino que dos grandes amigos de mi escuela fueron seleccionados, Marcos (Mono) y Ana (Debian). Este año, de nuevo, algunos amigos de mi escuela han sido seleccionados, por lo que somos:

    No es estudiante de la Universidad de Sevilla, sino de la UNED, pero quiero mencionar a otro amigo:

  • Sustituir auto* con CMake (PHP), por Alejandro Leiva Rojas, dirigido por Pierre A. Joye
  • Este año cerca de 66 estudiantes españoles tendrán la gran oportunidad de mostrar sus capacidades en un proyecto de software libre. Más estadísticas en el anuncio oficial.
    Puedes unirte al Google Summer of Code el año que viene, ¡pero puedes empezar a contribuir ahora mismo!

    Advertisements

    Validando un XML contra un DTD

    Para validar un archivo XML contra un DTD desde un sistema con libxml instalado:

    $ xmllint --valid --noout test.xmi --dtdvalid 99-10-05.dtd

    Thanks

    ArgoUML

    El Google Summer of Code toca a su fin. Han sido tres duros meses, pero la recompensa ya casi está aquí: tenemos una versión funcional de los diagramas de secuencia, y casi completa. Faltan algunas características que podéis ver en la figura 89 de la especificación de UML.

    Básicamente, faltan los forks de la última columna, ya que las condiciones se pueden crear gráficamente.
    Una de las últimas cosas en la que hemos trabajado ha sido los mensajes al propio classifier role, y ha sido un poco chungo el crear los mensajes curvos, pero ya casi está finiquitado.

    Fig 89 from the UML specification

    No puedo menos que agradecer a Bob su paciencia, a la gente de ArgoUML la oportunidad y el cariño, y a Google el haber creado este fantástico programa… y por supuesto, tengo que agradecer a todos vosotros vuestro interés por el proyecto.

    Se acabó el Google Summer of Code 2007… ¡ya llega el Google Summer of Code 2008!

    Quizá quieras leer…

    Google Summer of Code final track

    Google Summer of Code

    Ya estamos en el último mes de la beca Google Summer of Code. Es hora de analizar cosas.

    Antes de comenzar con el proyecto, pensaba escribir ciertas entradas sobre mi trabajo. Al final no ha sido así. Quizá, involuntariamente, haya pasado más tiempo haciendo cosas que hablando. Eso no es del todo malo, salvo que en todo proyecto se debe documentar algo (por si te pilla un autobús), y los blogs son una manera de hacerlo.

    Así que, aunque no me vaya a meter en temas de código, si quiero dejar constancia de algunas cosillas.

    En primer lugar, participar en un proyecto del cual no conoces todo asusta. Al principio me fue algo complicado comenzar, pero gracias a código similar de otros diagramas o de la antigua implementación (recordemos que estoy reprogramando algo existente) se acaba tirando hacia adelante. Sin embargo, tengo la certeza de que este es el diagrama más “especial” de los que abarca actualmente ArgoUML, por lo que ha sido muy importante la guía del mentor.

    Sobre el mentor, Bob, sólo tengo buenas palabras. A pesar de que se nota que no me dedica todo el tiempo que le gustaría (cosa bastante común con los mentores en el programa SoC), su ayuda resulta indispensable. Una de las cosas que más me asustaba de adentrarme en ArgoUML es que no es la comunidad más comunicativa que he visto. O al menos eso pensaba antes. Sin embargo, he recibido feedback de algunos desarrolladores, e incluso algún parche.

    Sobre el proyecto, me he dado cuenta de lo que fastidia la incertidumbre. El no tener en la cabeza cómo debe ser el resultado final hace que todos tus balances tiendan a ser pesimistas, o al menos eso me ocurre a mí. Al menos, que Bob sí lo tuviera muy claro ha hecho que el proyecto avance sin demasiada dilación. Él siempre ha tenido una visión más optimista acerca del estado del proyecto. A estas alturas, yo tengo la sensación de que para cuando termine el plazo de la beca no estará terminado el proyecto. Sin embargo, creo que el resultado actual posee la mayor parte de las características de la versión antigua (excepto las no deseadas, claro está).

    Sobre la manera de trabajar con un proyecto Java sí que he aprendido mucho. Sobre Eclipse he aprendido millones de trucos, incluso le he perdido el asco al Subclipse (siempre fuí partidario de TortoiseSVN, pero me he obligado a usar Subclipse). Sin lugar a dudas, lo que más me ha gustado ha sido utilizar Checklipse. Checklipse no es más que un plugin para Eclipse que utiliza CheckStyle. Gracias a esto, saltarse las normas de estilo se puede considerar un fallo de compilación, o un warning, con lo que se mantiene el código con un estilo coherente constantemente.

    Sobre la infraestructura de Tigris, me he adaptado bien. Sin embargo, he echado en falta la interfaz amigable de Trac, así como la posibilidad de añadir hooks al repositorio de Subversion.

    Para el futuro, cuento con terminar la implementación del diagrama, así como añadir la sincronización con el diagrama de colaboración, soporte para ingeniería inversa al diagrama de secuencias, así como alguna sorpresa que mejor me guardo.

    Espero dentro de un mes volver a escribir sobre el tema, y que todo sean cosas positivas. Por mi parte, estoy seguro de ello 🙂

    Setting the environment

    ArgoUML

    Today I didn’t worked too much in ArgoUML, but I did some little things. I set up the homepage of argouml-sequence. It has no much contents, but at least it’s not the tigris default page.

    Bob commited a launch file for the eclipse project, but I had some problems with it, so he commited also his project configuration for eclipse. With that I will debug in a comfortable way!

    I had this problem with MaCMAS for a long time. I used to debug with sysout (I like very much Eclipse alias 🙂 ), and that’s a pain! He helped me sometime ago debugging some problems with MaCMAS, so he sent me his lauch file for MaCMAS, and with some little modifications, it worked for me too! So I can say that today has been a productive day.

    I think that I won’t work too much in ArgoUML this week, because my main goal right now must be finishing MaCMAS. And one of the next steps in my GSoC work must be reading the UML specification documents, so I won’t commit anything for a while!


    ArgoUML

    Hoy no he trabajado demasiado en ArgoUML, pero he realizado ciertas pequeñas tareas. He creado la página principal de argouml-sequence. No tiene demasiado contenido, pero al menos no es la página por defecto de tigris.

    Bob subió un archivo launch para el proyecto de eclipse, pero tuve ciertos problemas con él, por lo que subió también la configuración del proyecto de eclipse. ¡Con eso ya puedo depurar de una manera cómoda!

    Tuve este problema con MaCMAS hasta ahora. Solía depurar con sysout (me encantan los alias de eclipse 🙂 ), ¡y eso duele! Me ayudó hace tiempo depurando algunos problemas con MaCMAS, por lo que me ha enviado su archivo lauch para MaCMAS, y con algunas ligeras modificaciones, ¡funcionó! Por tanto puedo decir que hoy ha sido un día productivo.

    Creó que no trabajaré apenas en ArgoUML esta semana, porque mi objetivo principal ahora mismo debe ser terminar MaCMAS. Y uno de mis próximos pasos en mi trabajo para el GSoC debe ser leer la especificación de UML, ¡por lo que no subiré nada durante una temporada!

    First commit

    ArgoUML

    I had said nothing about this before, but my mentor and Linus Tolke (the leader of ArgoUML) had setup the environment for doing my work on Google Summer of Code. You can find it at http://argouml-sequence.tigris.org/ (I expect to update the main page soon).

    I have no much time for working on this yet (I must finish MaCMAS), but I want to have some work made before May. So I began reading again the cookbook, I configured a new workspace with the ArgoUML code templates and their coding style rules and I start coding a little proof of concept. I created a new plugin, and I add a menu item to the ArgoUML menu bar. This worked fine.

    After that, I played with enabling and disabling plugins, and I found that the UI had some problems with the menu bar. I add a call to updateUI in the enable/disable methods of my plugin and all worked fine. I think maybe this call must be at the add/remove method of the GenericArgoMenuBar class, I will suggest this to Bob tomorrow.

    I have done the installation of the plugin manually. I must learn about Ant and Eclipse for doing this automatically, because we will need debugging on the future.

    With this, Google Summer of Code has started for me 🙂


    ArgoUML

    No he dicho nada sobre esto en la entrada anterior, pero mi mentor y Linus Tolke (el lider de ArgoUML) han dispuesto el entorno para llevar a cabo mi trabajo en Google Summer of Code. Puedes encontrarlo en http://argouml-sequence.tigris.org/ (espero actualizar la página principal pronto).

    No tengo mucho tiempo para dedicarle a esto todavía (debo terminar MaCMAS), pero quiero llegar con algún trabajo adelantado a mayo. Por eso he comenzado a releer el Cookbook, configurado un nuevo workspace con las plantillas de código de ArgoUML y sus reglas de estilo en el código y he empezado a programar una pequeña prueba de concepto. He creado un nuevo plugin, y he añadido un item a la barra de menú de ArgoUML. Funcionó a la primera.

    Después de eso, jugueteé habilitando y deshabilitando plugins, y encontré que la UI tenía algunos problemas con la barra de herramientas. Añadí una llamada a updateUI en los métodos enable/disable de mi plugin y se arregló. Pienso que quizá esta llamada debería estar en los métodos add/remove de la clase GenericArgoMenuBar, se lo sugeriré a Bob mañana para ver que piensa.

    He hecho la instalación del plugin manualmente. Debo aprender acerca de Ant y Eclipse para hacer esto automáticamente, porque necesitaremos depurar en el futuro.

    Con esto, Google Summer of Code ha empezado para mí 🙂

    I have been GSoCed!

    Google

    Wednesday was a difficult day. Mark and I were very nervous because Google Summer of Code will be published at Thursday, 2 AM. We are good friends, but we have a very different way confronting the doubts. He spent the night at home, and he fell slept at 1:30 AM without knowing nothing about our applications. I went to drink something with some buddies, and I had no access to Internet. We both discovered that we have been selected at Thursday morning.

    Mark will work on WCF in Mono. You can read more about this in his blog (now Amelio is powered by tags!).

    I’m also very happy because another student of my school (Ana Guerrero) will work on Debian this summer under the Summer of Code program.

    ArgoUML

    I will work on ArgoUML. ArgoUML is a UML CASE tool for software architects and developers. I will work improving the Sequence Diagram support in the tool. Because my mentor (Bob Tarling) and I agree with working as far as possible of the ArgoUML core, I will work on this as a plugin. I’m experienced in that because I work on MaCMAS since 2006. I expect to have a good experience, and to complete a good work. I have been surprised also because a GSoC 2006 student on ArgoUML works this year as a mentor in the project. This demostrates that GSoC is not only a way for earning some money, the main goal is to keep working on the project.
    At last, I want to thank to Google, the ArgoUML community and my mentor Bob Tarling for their confidence, and to Mark and Joaquin Peña for their support.


    Google

    El miércoles fue un día difícil. Mark y yo estábamos muy nerviosos porque el Google Summer of Code se publicaría a las dos de la mañana del jueves. Somos grandes amigos, pero tenemos una manera muy distinta de afrontarnos a nuestras dudas. Él pasó la noche en casa, y se durmió a la 1:30 sin saber nada sobre nuestras propuestas. Yo me fuí a tomar algo con algunos compañeros, y no tenía acceso a Internet. Ambos descubrimos que habíamos sido seleccionados el jueves por la mañana.

    Mark trabajará implementando WCF en Mono. Puedes leer más sobre esto en su blog (¡ahora Amelio tiene tags!).

    También estoy muy feliz porque otra estudiante de mi escuela (Ana Guerrero) trabajará en Debian este verano bajo el programa Summer of Code.

    ArgoUML

    Yo trabajaré en ArgoUML. ArgoUML es una herramienta CASE para arquitectos y desarrolladores de aplicaciones. Trabajaré mejorando el soporte a los diagramas de secuencia en la herramienta. Debido a que mi mentor (Bob Tarling) y yo estamos de acuerdo en desacoplarnos lo más posible del núcleo de ArgoUML, desarrollaré esto como plugin. Tengo experiencia en esto debido a que trabajo en MaCMAS desde 2006. Espero tener una gran experiencia, y completar un gran trabajo. Me sorprendió que un estudiante que colaboró con ArgoUML el año 2006 bajo el programa GSoC trabajará este año como mentor en el proyecto. Esto demuestra que el GSoC no es sólo una manera de ganar algo de dinero, sino que el principal objetivo es seguir colaborando con el proyecto.
    Por último, quiero agradecer a Google, la comunidad de ArgoUML y a mi mentor Bob Tarling la confianza puesta en mí, y a Mark y a Joaquín Peña por su apoyo.