Entorno de acs

diciembre 29, 2006

El motor de Javascript Spidermonkey

Filed under: Tecnología — acs @ 6:47 am

En uno de los proyectos en GSyC/LibreSoft nos ha tocado aprender SpiderMonkey y extenderlo. Es una tecnología muy interesante: el motor de Javascript en C que se incluye dentro de Mozilla/Firefox. Se ha diseñado como una librería por lo que es muy sencillo incorporarlo a una aplicación, la cual desde ese momento puede ser extendida utilizando Javascript. Esta idea básica es la misma por ejemplo que la que permite extender Emacs con LISP. En GNOME muchas veces hemos hablado de opciones para tener un lenguaje de “scripting” y una librería ligera como SpiderMonkey podría ser una opción estupenda, aunque seguro que a más de uno el extender las aplicaciones o hacer “scripting” en Javascript le provocan sarpullidos ;-) (y creo tiene más que ver con problemas en las implementaciones de los navegadores que por el lenguaje en si).

Extender el modelo de objetos de SpiderMonkey para ampliar la API disponible desde Javascript, por ejemplo llamando a métodos nativos en C, es una funcionalidad soportada por lo que por ejemplo, si quisieras desde tu navegador manejar tu iPod bastaría con que extendieras SpiderMonkey con un objeto que representara a la iPod y por ejemplo, un par de funciones para parar e iniciar el iPod, que llamaran a métodos nativos en una librería en C que fuera capaz de manejar la iPod (sólo es una idea, seguro que se te ocurren otras cosas).

Pensando en Javascript recordé una demostración de SGI que habían implementado gran parte de las interfaces gráficas de gestión de un sistema operativo en Javascript y que te permitía desde el navegador gestionar todo el sistema (configurar la red, añadir usuarios …). De eso hace ya al menos cuatro o cinco años. ¿Encontrará el estándar Javascript nuevos horizontes en el ciberespacio? ¿Acabarás programando en Javascript?

diciembre 21, 2006

Google Web Toolkit: Primeras sensaciones

Filed under: Tecnología — acs @ 4:50 am

Después de que se anunciara la primera beta del Google Web Toolkit, y aprovechando que puede que me toque crear alguna interfaz web dinámica, he comenzado a ver que ofrece este entorno que sale de las fábricas de la compañía que ahora mismo más está innovando en el mundo web. Y con una licencia libre: Apache License v. 2.0 (above).

El Toolkit al final lo que hace es ofrecerte una API de programación Java con un conjunto de widgets para crear tu interfaz web. Estos widgets se manejan como se haría en una aplicación gráfica basada en eventos (muy similar por ejemplo a programar en GTK). El entorno de desarrollo por lo tanto es más completo que si directamente nos ponemos a utilizar Javascript y HTML directamente, y puede hacer uso de entornos como Eclipse. La integración de pruebas unitarias hace que se puedan probar la interfaz de forma sistemática (Ruby comparte estos conceptos, Windows.Forms …). Entre los widgets tenemos menús, popups, árboles … que se programan de forma realmente sencilla desde Java.

Una vez que hemos creado nuestra interfaz web en Java lo que hace GWT es generar las páginas HTML finales utilizando Javascript (incluyendo Ajax) y HTML, y tenemos finalmente interfaces web muy dinámicas y casi tan potentes como las de las aplicaciones de escritorio nativas. Aquí tienes todos los detalles.

Aún me queda por trabajar en la parte de la actualización dinámica de datos en la interfaz y por ejemplo, ver si es posible añadir nuevas entradas a los menús de forma limpia y sin tener que regenerar el código HTML desde Java de nuevo.

Para terminar, el entorno de desarrollo que incluye con un navegador y servidor de web propios (basado en Tomcat), ayuda a facilitar la visualización del trabajo antes de llevarlo a producción. Resaltar que toda esta experiencia la tuve en menos de una hora, está muy trabajado el entorno para que el desarrollador tenga resultados de forma muy rápida y con poco esfuerzo, algo a la que ayuda la estupenda documentación.

diciembre 20, 2006

Notas sobre librerías dinámicas en GNU/Linux

Filed under: Tecnología — acs @ 4:32 am

En uno de los proyectos en los que estamos involucrados en GSyC/LibreSoft nos ha tocado migrar un entornos basado en C/C++ de Windows, con su carga dinámica de código con librerías dinámicas DLL, a GNU/Linux. Ha tocado recordar como se manejaban las librerías dinámicas en GNU/Linux y la verdad, resulta bastante más sencillo al menos a nivel de sintaxis que en Windows (no sé hasta que punto será culpa de la herramienta de Windows para generar código de uso de DLL).

Aprovecho para dejaros el típico microtutorial de creación de librerías dinámicas que muestra las dos opciones que existen al utilizar estas librerías: indicar en tiempo de compilación las dependencias con librerías dinámicas del código o bien, no indicar estas dependencias y cargar con “dlopen” las librerías dinámicas en tiempo de ejecución, lo que permite extender los programas sin necesidad de volverlos a compilar (siempre y cuando se mantengan unas APIs de uso de las librerías nuevas uniforme, idea básica detrás de los sistemas de plugins).

diciembre 13, 2006

¿Aún te gusta programar? ¡Pues claro!

Filed under: Tecnología — acs @ 7:35 am

Un compañero en la universidad me preguntaba ayer si me gustaba programar. ¡Pues claro le dije! Pero claro, si por programar no entendemos sólo la tarea de codificar una determinada especificación detallada en un lenguaje determinado. La actividad de programar yo la veo como compuesta por entender primero que se quiere programar (captura de requisitos), luego un diseño de como lo vamos a programar que nos llevará a una especificación y luego la parte de codificar en un lenguaje determinado y con unas tecnologías determinadas la especificación.

Según vamos codificando y utilizando tecnologías vamos aprendiendo mucho más de los requisitos más concretos de lo que programamos por lo que tenemos que ir con agilidad a la fase de diseño y rediseñar ciertas partes, detallar mejor los requisitos y volver a bajar a la parte de codificación para reflejarlos. Asociada a esta codificación deben de ir pruebas continuas que nos permitan realizar una codificación robusta y claro, hay que tener en todas las fases (diseño, especificación y codificación) en mente que el programa sea mantenible luego y se pueda evolucionar.

Es esta visión de un proceso continuo que se realimenta de forma constante a lo que yo llamo programar y que sin duda me encanta. Creo que las metodologías de desarrollo ágil capturan muy bien todo este proceso y sin duda, es con ellas con las que más se disfruta programando. ¡Espero jubilarme programando! ;-)

diciembre 10, 2006

Se acerca la San Silvestre 2006

Filed under: Sin Categoría — acs @ 10:48 pm

Como los últimos tres años el 31 de Diciembre correré la San Silvestre de Madrid (sin Flash no se ve nada :-( ) . Es una bonita forma de acabar el año y además consumes todas las energías que luego justifican que te peges una buena cena para recuperarte. La carrera es realmente bonita, 10 Km desde el principio de la calle Serrano hasta el estadio del Rayo Vallecano, pasando por todo el centro de Madrid (Castellana, la puerta de Alcalá, Atocha …).

Este año vamos a ser 20.000 así que la emoción del comienzo está asegurada. Cuando llegas a las 17:30 a la salida y te mezclas con la marabunta de gente recibes un montón de energías positivas. La gente disfruta mucho. Y los momentos de la salida cuando todos nos ponemos en marcha son muy especiales. Todo el recorrido suele estar con bastantes espectadores, en especial cuando nos acercamos al barrio de Vallekas. Y la llegada a la meta es uno de los momentos más bonitos del año, después de los duros tres kilómetros finales por las cuestas de Vallekas.

Hoy he corrido ya 14 Km a buen ritmo y me encuentro ya recuperado de unas semanas flojillas así que me pondré el objetivo como cada año de bajar de los 45 minutos. A ver si este lo logro. Y como promesa de fin de año, correr la maratón el año que viene. Aunque eso ya son palabras mayores.

Ya tenemos los dorsales listos.

diciembre 6, 2006

Y llegó el puente y el descanso

Filed under: Sin Categoría — acs @ 7:28 am

Después del ajetreo de los últimos meses me va a venir bien unos días de descanso con unos amigos en un pueblecito de Salamanca llamado Villarino de los Aires. El fin de año se presenta movitido así que habrá que aprovechar para desconectar y recuperar energías.

diciembre 4, 2006

Trac como herramienta de gestión de proyectos

Filed under: Tecnología — acs @ 11:39 am

Dentro de mis tareas como coordinador de proyectos en GSyC/LibreSoft uno de los principales hitos que hemos logrado ha sido de la tener herramientas que nos permitan organizar los proyectos de forma eficiente. Y ha sido gracias a la herramienta Trac y a su filosofía KISS (Keep It Simple Stupid) que a día de hoy todos los proyectos tienen su web de gestión y de forma sencilla podemos saber la actividad en el grupo. Para ello utilizamos la vista “Timeline” (cambios en el Trac de subversion, wiki, tickets o planificación) y la sindicamos con el RSS de dicha vista utilizando PlanetPlanet, de forma que tenemos un planeta de actividad del grupo. Hemos incluido en dicho planeta umbrales muy sencillos para reflejar mediante caras con emociones la actividad de los proyectos resumida, con lo que de un vistazo rápido podemos saber como de “felices, serios o tristes” están nuestros proyectos.

Si alguno utilizáis Trac, los sindicáis con PlanetPlanet y queréis los parches necesarios para tener esta funcionalidad no tenéis más que pedírmelos.

diciembre 3, 2006

Servicio de Alertas de Google: Primeras sensaciones buenas

Filed under: Tecnología — acs @ 1:13 pm

Acabo de comenzar a utilizar el servicio de alertas de Google para seguir los temas de calidad dentro del mundo del software libre y la verdad, el primer correo que me ha enviado tenías dos noticias sobre el tema y once enlaces a sitios web con información relevante. De todo lo que me ha enviado no ha habido nada que no me haya resultado interesante y he descubierto información, como el modelo de organización de Morfeo, que hasta ahora no había leído.

Quizá sea porque es la primera vez que me envía información y lo ha tenido fácil, pero la primera sensación ha sido muy buena. Y ya se sabe que cuenta mucho.

Semanas ajetreadas de proyectos europeos

Filed under: Tecnología — acs @ 11:18 am

Sin duda una de mis principales motivaciones para unirme al grupo GSyC/LibreSoft fue el poder trabajar en proyectos europeos y la semana pasada ha sido la más intensa en ese sentido: reuniones en Bruselas sobre forjas y repositorios de software libre en busca de ideas y sinergias para la forja europea, la primera reunión de trabajo del proyecto QualOSS donde ya se comienzan a percibir la realidad del proyecto y los próximos pasos que daremos, y el gran kickoff del proyecto QualiPSo, un proyecto con 21 participantes con universidades y empresas de toda europa, que busca dar confianza a la industria a la hora de apostar por el software libre (Open Source).

La verdad es que la experiencia que he tenido en los tres meses que llevo en el grupo está siendo justo lo que esperaba y la tranquilidad de trabajar en proyectos de dos o tres años de duración está creando un ambiente muy bueno en el grupo y seguro que facilitará el hacer cosas realmente interesantes. Sólo espero ir sacando algo más de tiempo para poder ir describiéndolo por aquí. El ver desde dentro de los proyecto como se apuesta en la Comisión Europea por el Software Libre es una gran recompensa a todos los años de implicación en el mundo del software libre.

diciembre 2, 2006

Y SUN publicó Java como software libre (GPL)

Filed under: Tecnología — acs @ 11:31 am

No he comentado nada de la publicación de SUN de Java como software libre, nada más y nada menos que con licencia GPL, pero sin duda ha sido para mi la noticia del año. En mi última etapa en Ándago me tocó volver a desarrollar en plataforma Java y entornos J2EE y puede vivir de primera mano uno de los campos más activos dentro del mundo del software libre, el de Java. Era una pena que los pilares de este campo no fueran software libre y que hiciera temblar toda la construcción. Con la publicación de la implementación de Java de SUN (máquina virtual, compilador y librerías) como software libre GPL se da un paso enorme para el impulso y aceptación de este entorno como uno de los principales dentro del mundo del software libre.

Siempre Abierto. Ahora Libre.