Proyectos Open Source en TFGs

Cada año en la escuela de ingeniería de Bilbao, los alumnos de 4º de Ingeniería Informática deben desarrollar su TFG. Muchas veces el proyecto consiste en implementar algún tipo de aplicación, normalmente desde 0. Algo que no cuadra con lo que se encontrarán ahí fuera…

Suele haber trabajos muy buenos pero la gran mayoría termina en los cajones de la biblioteca (repositorio online ADDI) https://labur.eus/MsIOT. Este curso 2019/2020 decidí cambiar ese destino.

La idea era convencer a tres alumno/as brillantes para que su TFG estuviera dirigido a mejorar una aplicación de código abierto usada a nivel internacional: https://github.com/bardsoftware/ganttproject…@GanttProject

Tres alumnos/as (Oihane, Anaitz y Urtzi) dieron el paso y han estado trabajando duro para corregir errores de la lista de bugs:

https://github.com/bardsoftware/ganttproject/issues

Este mes Oihane ha presentado su TFG con los resultados (9.8! 💪). Trabajar para mejorar una aplicación de software libre nos ha traído múltiples beneficios, tanto a los alumnos como al profesor. Y también el propio proyecto se ha visto beneficiado. Por múltiples razones:

Lo primero que han aprendido es a trabajar con el flujo de trabajo GitHub Flow https://guides.github.com/introduction/flow/… En concreto, cómo crear un fork, cómo mantenerlo actualizado con upstream, cómo crear ramas, generar Pull Requests al proyecto…

También aprenden a crear issues (documentar bugs o nuevas funcionalidades) y a discutirlos, a crear PRs y a hacer frente a los code-review 🙂

Image

Deben persistir en el empeño durante días… Es fácil que un PR pueda llevar mucho más de lo esperado. Se acabó eso de “compila y funciona, ¡ya está!” No, ahora hay que pasar un control de calidad.

De hecho, aparte del code review, el código de los alumnos debe pasar los tests automáticos ejecutados por el sistema de integración continua de GanttProject.

Otro de los objetivos era crear documentación que realmente sirva en el futuro. En concreto, que sirva para que otros desarrolladores puedan empezar a contribuir con una curva de aprendizaje más suave que estos tres pioneros/as.

Me gustan los esquemas de diagramas de clase que han desarrollado de forma colaborativa

Image

Y sobre todo, un tipo de diagrama al que no le sabemos poner nombre, pero que considero de los más importantes. Son pantallazos de la aplicación etiquetados con el nombre de las clases principales que implementan alguno de los componentes. Un ejemplo:

Image

Esto, que puede parecer una tontería, es vital en un proyecto que contiene casi 800 clases Java y 95000 líneas de código.

Image

Finalmente, el propio proyecto open source GanttProject también se ha visto beneficiado. Estos son los commits en la rama master de cada uno de los alumnos (que a su vez sirven para dar lustre a sus curriculum con posibilidad de verificación pública):

Image

El curso que viene intentaré continuar con la idea. Y tal vez, extenderla hacia una asignatura (aunque me da vértigo, por el tiempo que requiere) en lugar de centrar los trabajos sobre OSS sólo en TFGs. ¿Alguien se anima a colaborar? 🙂

Compartir tu conexión a Internet a través de la tarjeta wifi

Como íbamos diciendo ayer

Update [2012/12/10]: a raíz de este artículo, se han puesto en contacto desde el servicio TIC de la EHU para tratar de solucionar este problema entre todos los implicados. Mi labor ahora es recoger información: direcciones MAC, configuraciones de los portátiles, zonas de no cobertura o cobertura con problemas, para empezar a indagar y corregir las causas. Tal y como en ocasiones señalo los defectos, ahora me toca anotar las virtudes: me ha gustado que se hayan molestado en responder personalmente a este post. Seguiremos informando 😉 </ update >

El problema, como muchas otras veces, es sencillo: estoy en clase con mis alumnos y necesitamos conectarnos a Internet. «¡Usemos Eduroam!» Muy bien, el problema es que la configuración de esa red, en mi centro, es «muy mejorable». Da igual que uses Windows, Linux o MacOSX. A veces conectas (¡milagro!) para que a los dos minutos, sin razón aparente, pierdas la señal. Y no, no es un problema aislado de Linux. De hecho, ni siquiera es un problema de Eduroam, sino de la configuración de Eduroam en algunos centros de la UPV/EHU. Recientemente estuve en Valencia (SWERC) y no tuve ningún problema con la wifi Eduroam allá configurada. Se conectó a la primera, se mantenía la conexión perfectamente durante toda la sesión y era posible conectar desde cualquier aula.

No, no es que el punto de acceso esté alejado. Me he puesto con el portátil en las manos justo físicamente debajo de varios AP, por si acaso alguno estaba estropeado o saturado, y nanai de la china, sigo sin conectar (o conectando a ráfagas)

En fin, a lo que iba. Como nos ha sido imposible convencer a los técnicos de que es una mala configuración por su parte (y no un fallo de la configuración del usuario), he preferido buscarme (nuevamente) la vida por mi cuenta. La cuestión es que el profesor, en el aula, sí que tiene conexión a Internet a través de cable, pero los alumnos no (tienen que ir por -la mal configurada – wifi Eduroam… u otra pública, llamada EHUGuest, que funciona igual).

La pregunta entonces sería: ¿cómo configuro mi portátil para que la tarjeta wifi haga de punto de acceso, los ordenadores de mis alumnos se conecten vía wifi a mi portátil y éste enrute sus peticiones a través del cable ethernet de mi portátil? Claro, lo ideal es que en cuanto conecten con mi tarjeta wifi mi portátil les asigne dinámicamente una IP y un DNS.

Bien, tras todo este rollo, la solución en una línea:

Open Settings->Network->Wireless and create a new Ad Hoc network

Se creará una red Ad Hoc con tu tarjeta wifi (creará automáticamente una red wifi llamada UbuntuAdHoc) que asignará IPs dinámicamente a los alumnos y los enrutará a Internet a través de la tarjeta ethernet del portátil. Si, a mí también me ha parecido magia 😉

Cómo pedir ayuda para corregir un problema de programación

Estimado amigo/a,

acabo de leer tu descripción del error y petición de ayuda:

«He probado algunas cosas y la aplicación Java me falla siempre diciendo no sé qué error. Ya no sé qué hacer. Ayúdame»

Tengo algunos consejos para poder ayudarte. En concreto 10, que se resumen en uno: especifica el error. Si no describes con más detalle el error que obtienes no sabré ni por dónde empezar a ayudarte. El siguiente decálogo es un mínimo, cualquier otra informacióna adicional contribuirá a que pueda ayudarte con más posibilidades de éxito:

1) Una descripción detallada de lo que quieres ejecutar y cuál es el resultado esperado.

2) Una descripción detallada de lo que tu aplicación devuelve al ejecutarla. El mensaje de error en texto Y si es posible, una captura de pantalla adjunta. Es decir, el resultado obtenido.

3) Una descripción detallada del proceso que has seguido, punto por punto, hasta llegar al mensaje de error.

4) Un programa mínimo, que aísle las líneas de código de tu aplicación que crees que fallan. Ese programa, como te indico, debe ser lo más pequeño posible y debe demostrar la situación de error que quieres corregir. Envíame su código fuente (NO el ejecutable) junto con al menos un caso de prueba (cuantos más casos de prueba, mejor, pero al menos uno que demuestre el error).

5) Para el/los caso(s) de prueba del programa anterior, indica también cuál es el resultado que obtienes y cuál es el que esperabas obtener

6) Especifica el sistema operativo que estás usando en tus pruebas (nombre, versión, idioma). Si tu aplicación requiere a su vez de otras aplicaciones para ser ejecutada (bibliotecas de funciones o navegador o una configuración especial del sistema), indica todos los datos posibles de esas otras dependencias (como mínimo nombre y versión)

7) Especifica la versión exacta de Java que estás usando.

8) Indica qué pruebas has realizado hasta ahora y por qué no han funcionado.

9) Indica, si es posible, cuál crees tú que es la causa del error y qué cadenas de búsqueda has utilizado en Google/Bing/Yahoo para rastrear dicha causa… Si no lo has hecho hasta ahora, no busques sólo en castellano, hazlo también en inglés. Y utiliza portales especializados (p.ej.: StackOverflow.com) y grupos de discusión (Google Groups).

10) No te quedes parado tras pedir ayuda. Informa de avances en tu búsqueda y pruebas. Sigue investigando por tu cuenta. Pregunta en distintos foros siguiendo las normas de lanzar consultas técnicas sobre errores de programación de este mismo decálogo y si encuentras alguna pista más, infórmame de la misma.

Un «bonus» consejo más: cuida tu ortografía, gramática y expresión en los mensajes de texto que envíes. Pero de esos puntos ya hablé aquí en Enero y Diciembre de 2009, así que te recomiendo encarecidamente su lectura.

Quedo a la espera de tu respuesta.

Jornada Software Libre: GNOME3 y otros 8 proyectos libres :-)

Oier Mees y Jon A. Hernández. Quiero empezar citando sus nombres porque muchas veces nos olvidamos de que detrás de los eventos relacionados con el software libre hay personas que dedican días (más que horas…), por amor al arte, a atar multitud de cabos para que dicha jornada, meeting, party o lo que fuere salga adelante en condiciones ( decidir ponencias, buscar ponentes, reservar sala, diseñar el cartel, gestionar horarios, distribuir y repartir publicidad, preparar la sala, la web, recoger el material, solicitar permisos, …) A medida que pasa el tiempo veo que quedan pocos «mohicanos» (¿estamos ante la última hornada?) capaces de ilusionarse y mantener un ambiente universitario que vaya más allá de ir a clase, coger apuntes y largarse. Gente que se implica y que con su motivación, arrastran a otros. Mentes que no sólo se dirigen guiadas por las bondades técnicas del software libre sino también porque creen en la filosofía que hay detrás de este movimiento.

En fin, me gustan especialmente las jornadas que organiza ITSAS. La que nombraré a continuación es una pero también me quito el sombrero ante el trabajo de mi amigo Dani Gutiérrez, que ha sabido moverse (y soportar algún que otro palo metido entre las ruedas) en la burocracia universitaria para conseguir una subvención, un programa de actividades y un suelo bajo techo con conectividad. Con todo ello traerá a Bilbao la KDE Edu Sprint 2011 entre el jueves 7 y el lunes 11 de Abril, orientado a desarrolladores KDE y usuarios relacionados con la educación y el software libre para este escritorio.

Pero en este post me quiero centrar en la jornada organizada en Donostia (Facultad de Informática, seminario 3.1) por ITSAS el 7 de Abril (sí, otra vez ITSAS que en Abril tira la casa por la ventana 🙂

Aprovechando la publicación oficial de GNOME 3 el 6 de Abril, el 7 nos hablarán (Íñigo Illán, al que todos señalamos cuando nos preguntan sobre quién es el que más controla de GNOME en la FISS 😉 sobre las novedades de este entorno de escritorio: cómo hemos llegado hasta GNOME 3 y cuáles son las principales novedades. Hay muchas… y es la razón de que la charla dure más que las demás, 1 hora (y seguro que se nos hace demasiado corta!). La organización se puso en contacto con la Fundación GNOME y ésta les envió un pack de camisetas, pins y merchandising GNOMEro que se repartirá entre los asistentes 🙂

Jon A. nos hablará sobre KestrelHPC (un proyecto que busca facilitar la creación y administración de clusters con nodos live). ¿Qué es eso? Nada mejor que acudir a la charla para enterarte 🙂 Jon A. ha dedicado gran parte de las vacaciones de verano a trabajar a destajo en este proyecto, por lo que sus explicaciones parten de la experiencia desde dentro.

Julen Ruiz nos hablará de Librezale, un grupo que trabaja incansablemente en la traducción de herramientas libres al Euskera. Julen es además un desarrollador experimentado (Pootle, Euskalbar, XuXen…) muy respetado en la comunidad, por lo que será todo un lujo atender su charla (espero que la haga «a là» L. Lessig, como en SLUN’08 🙂

Ander Martinez nos hablará del port de Google Web Toolkit a Python (proyecto conocido como Pyjamas). Ander es un todoterreno que lo mismo nos asombra con las interioridades del kernel FreeBSD que con las novedades de C++ o un framework para desarrollo de aplicaciones RIA. Un placer oírle.

Oier Mees (organiz. principal) nos hablará del uso de Launchpad para gestionar las traducciones de Ubuntu al Euskera. Coordinador oficial del proyecto EU en Ubuntu, autor de tutoriales de «euskaldunización» de Java, políglota… Atentos a sus explicaciones!

Streaming de canales de TDT en redes VLC. Sugerente título para una charla impartida por una mente inquieta del CIDIR, un administrador de sistemas profesional (nada de BOFH 🙂 con el que he tenido el gusto de trabajar en un proyecto actual (debería de decir futuro, porque estamos en beta-testing) para implantar OpenMeetings en la UPV/EHU. Bueno, pero me estoy adelantando a acontecimientos futuros 🙂

Sistemas de control de versiones centralizados vs. distribuídos. Oier Mees, tras descansar de su charla anterior, nos ayudará a comprender las diferencias, el porqué de la elección de Git o Mercurial frente a Subversion ( o $DEITY no lo quiera, CVS). Los alumnos que se iniciaron en el control de versiones con Subversion en la asignatura de ProgII o SoftIng. no deben perderse esta charla bajo ningún concepto.

Servidor (torrent, SAMBA, ssh, HTTP) de bajo consumo eléctrico con OpenWRT. Aitor Cuartango, hombre Linux en el CIDIR, e impulsor de numerosas iniciativas relacionadas con soft. libre en la UPV/EHU nos explicará cómo aprovechar nuestro viejo router con la distro OpenWRT para que haga las veces de servidor. Los usuarios de torrent, jDownloaders y demás juguetitos (o sea, el 100% de los FISS-ianos) seguro que no dejan una silla libre en esta charla 🙂

Babelium Project. Impartida por un servidor, Juanan Pereira. Junto con muchos alumnos y sobre todo con mis compañeros del grupo GhyM, hemos creado la primera aplicación RIA que permite la práctica oral de segundas lenguas con evaluaciones colaborativas. Por si eso fuera poco hemos liberado el código fuente hace una semana 🙂 (haremos el tar.gz de la v1.0 en el IEB). En la charla de ITSAS os hablaré de este proyecto en el que llevamos trabajando año y medio… que se dice pronto !

Iñaki Alegría (profesor de la FISS), una de las personas más conocidas y respetadas del mundo del software libre en Euskadi, nos hablará de 2 plataformas (Apertium y Matxin), un servicio (OpenTrad) y una iniciativa (Wikipedia + traducción automática).

Creo que no me dejo nada. El día 7, id a la facultad, a disfrutar, aprender y compartir vuestros conocimientos con esta charlas y estos ponentes. Nos vemos en Donostia!

Jornadas de la UPV/EHU “Software libre en la Gestión de negocios”

Copy&Paste del blog de Dani: «La semana que viene, el martes 23, miércoles 24 y jueves 25 tendrán lugar de 11:30/12:00 a 14:00 las jornadas “Software libre en la Gestión de negocios” en la Escuela Universitaria de Estudios empresariales de Elkano (Bilbao)»
Sigue leyendo Jornadas de la UPV/EHU “Software libre en la Gestión de negocios”