Proyectos de Estudiantes¶
En Sidelab ofertamos los siguientes proyectos de fin de carrera para que los realicen los alumnos de las ingenierías en informática (Ingeniería Técnica o Ingeniería Superior) o los másters oficiales.
Estudio de librerías de estructuras de datos y algoritmos¶
- Resumen: El alumno tendrá que realizar una evaluación de las librerías de estructuras de datos disponibles en las plataformas de desarrollo más importantes. Al menos la evaluación deberá realizarse sobre las plataformas Java, C/C++ en Linux y Windows, JavaScript y Python. La comparativa se realizará tanto desde un punto de vista cualitativo como desde un punto de vista cuantitativo (realizando experimentos empíricos)
- Conocimientos deseables: Java y C/C++
- Tutor: Micael Gallego (micael.gallego@urjc.es)
- Titulaciones: Cualquiera
Optsicom RES, ejecución remota de aplicaciones Java en Eclipse¶
- Resumen: Se desea ampliar y mejorar un plug-in para Eclipse que permite desplegar y ejecutar una aplicación Java en una máquina remota (real o virtualizada). La idea es realizar el desarrollo en una máquina, y después lanzar la aplicación desarrollada en otra diferente. Esto incluiría, si fuera necesario, arrancar una máquina virtual para desplegar la aplicación en la misma.
- Conocimientos deseables: Java, Eclipse, RMI, administración de linux
- Tutores: Francisco Gortázar (francisco.gortazar@urjc.es) y Micael Gallego (micael.gallego@urjc.es)
- Titulación: Ingeniería Técnica en Informática o Ingeniería Informática
Sistema de ejecución de experimentación en un cluster o en la nube¶
- Resumen: El objetivo del proyecto es desarrollar una aplicación distribuida que permita la ejecución de algoritmos en un cluster de ordenadores. La aplicación gestionará el despliegue de los algoritmos, su ejecución y el análisis de resultados. El sistema de control tendrá un interfaz web y un interfaz como plugin de Eclipse. Además, permitirá la ejecución de experimentos en la nube. * Conocimientos requeridos: Java nivel medio
- Tutores: Francisco Gortázar (francisco.gortazar@urjc.es) y Micael Gallego (micael.gallego@urjc.es)
- Titulación: Ingeniería Técnica en Informática, Ingeniería Informática o Máster
- Más información:
- Para que la aplicación sea lo más genérica posible, se utilizarán APIs estándar para controlar nubes (http://www.kinlane.com/2010/08/deltacloud-universal-cloud-api/). Otras dos APIs: http://www.opencloudinitiative.org/ y http://openstack.org/ de Rackspace.
- Herramientas de gestión de nubes: http://brightcomputing.com, http://www.perceus.org/
- http://www.infoq.com/news/2011/07/jclouds_release_1_0
Instalación de aplicaciones Java con Maven: Generación de Instaladores, servicios nativos, paquetes y publicación en las tiendas de aplicaciones¶
- Resumen: El objetivo del proyecto es estudiar y poner a punto las herramientas y plugins necesarios para la creación de los diferentes paquetes para la instalación de aplicaciones Java. Por ejemplo, se estudiarían las aplicaciones de generación de instaladores para windows, la adaptación para convertir un .jar en un servicio de una máquina linux, un paquete .deb, etc. Además se tendrán que estudiar las implicaciones en los diferentes mecanismos de instalación de las posibilidades de actualización de la aplicación instalada.
- Conocimientos requeridos: Java nivel medio
- Tutores: Micael Gallego (micael.gallego@urjc.es) y Francisco Gortázar (francisco.gortazar@urjc.es)
- Titulación: Ingeniería Técnica en Informática, Ingeniería Informática o Máster
Preparación de una distribución y un generador de distribuciones para SidelabCode (en desarrollo: SidelabCodeDistro)¶
- Resumen: El objetivo del proyecto es construir una distribución Ubuntu que contenga todos los servicios de SidelabCode, de forma que pueda instalarse en una máquina y tener la forja disponible inmediatamente. Además, será necesario proporcionar un generador de distribuciones automático que a partir de una descripción de los servicios de la forja genere la distribución Ubuntu correspondiente. El generador es necesario para poder actualizar las versiones de Ubuntu que se utilizan, las versiones de los servicios instalados y poder añadir o eliminar servicios. Para este proyecto será necesario echar un vistazo al proyecto YUD.
- Conocimientos requeridos: Java nivel medio, usuario de Ubuntu/Linux (nivel medio)
- Tutores: Francisco Gortázar (francisco.gortazar@urjc.es) y Micael Gallego (micael.gallego@urjc.es)
- Titulación: Ingeniería Técnica en Informática, Ingeniería Informática o Máster
Implementación de plugins para Redmine¶
- Resumen: Redmine es una herramienta colaborativa para la gestión de proyectos software. El objetivo del proyecto consiste en implementar plugins para esta herramienta. Entre otras cosas, se implementarán plugins para facilitar la edición de documentación y la gestión de ficheros: Editor wysiwyg para el wiki, subida de ficheros con Dropbox y/o webdav, funciones avanzadas de gestión del wiki, control del flujo de peticiones, control fino de privacidad, mejora de notificaciones por correo, digramas de Gantt, etc.
- Conocimientos deseables: Programación en Ruby (pero no es imprescindible)
- Tutores: Micael Gallego (micael.gallego@urjc.es)
- Titulaciones: Cualquiera
Visualización de la evolución de repositorios de código¶
- Resumen: el alumno deberá desarrollar una aplicación web que permita visualizar la evolución de un repositorio de código. Como herramienta de partida se utilizará la aplicación de línea de comandos gource, que simplifica la animación del repositorio de código. Como objetivos no solo se marcan la mera visualización del repositorio sino también la posibilidad de interaccionar con el mismo como si de un video se tratará, modificar
su punto de vista, limitar el número de ficheros a visualizar, la velocidad de evolución (segundo/día), salvar el resultado en disco, subir el resultado a youtube, etc. - Conocimientos deseables: Desarrollo de aplicaciones web con Java
- Tutores: Francisco Gortázar (francisco.gortazar@urjc.es) y Raúl Cabido (raul.cabido@urjc.es)
- Titulaciones: Cualquiera