Summer of Code 2008
This page is for ideas and proposals for the Google Summer of Code 2008
Use XMPP Jingle for P2P connections in the collaborative source editor Saros
The collaborative source editor software Saros currently uses XMPP in-band filestreams to communicate between users. To speed things up, we are seeking a student to enable direct P2P connections using XMPP extension XEP-176 (Jingle), which also probably means to improve the XMPP implementation (Smack), which we are using. If this proves too easy we would love to see actual voice chat integrated as well.
- Skills/Languages: Java, no fear about network protocols
Visualization of time line data using semantic zooming in Piccolo
The qualitative data analysis GmanDA developed here at Freie Universität makes use of the excellent graphics framework Piccolo developed at Human-Computer Interaction Lab at University of Maryland. The framework was build to enable elegant zooming UIs, yet has some short-comings that need to be addressed. This project aims to improve the support for semantic nodes, i.e. nodes that display differently at different levels of zooming. For instance when displaying a network view of the internet one would not display individual computers at the overview level, but rather add more and more detail as the user zooms in on individual networks.
- Skills/Languages: Java, some knowledge about graphics programming
Peer-2-Peer Bibtex Sharing for JabRef
Collecting bibliography entries is still a cumbersome task, even though search engines like Google Scholar now provide BibTeX export. The idea in this project is to link up all running instances of the reference manager JabRef to form a P2P network that each user can search for BibTeX entries. Essentially this project entails to use a distributed search engine (YaCy for instance) or develop a search layer on-top of a existing DHT implementation (Bamboo, OceanStore JDHT, OpenDHT).
A Platform for Non-Coding RNA Detection
In the last two years, so called non-coding RNAs have made a big splash: instead of being a passive information carrier, they were found to be actively involved in a large number of cellular processes (some even related to cancer). There are several tools for the detection of non-coding RNAs like RNAz or Evofold, but it lacks a unifying platform. The task is to implement a website/webservice that allows the user to simply upload the genomic sequences and the data to be analyzed in various ways.
- Skills/Languages: Experiences with web services, no biological knowledge required.
Open Position Acquisation Module for Symbian OS
The objective of this project is to implement an open positioning layer for Symbian OS > V9.2 allowing easy integration of additional position acquisition techniques. The Symbian OS Location Based Service (LBS) subsystem introduced with V.9.2 provides only GPS/A-GPS based position aquisition, simple cell-based positioning or advanced cell based techniques such as TA,E-OTD or TDOA. Unfortunately not every network operator and UI platforms provide an accessible implementation of this service and mostly lacks of important features such as mapping of cellIds to geo positions to be generally usable for free software projects.
The position acquisition layer to be implemented shall integrate the LBS subsystem provided with Symbian and additional free position acquisition techniques like WLAN positioning using free HotSpot databases like wigle.net or cellId based positioning using free cellId databases like cellspotting.com. Such techniques should be made available as plug-ins to provide a convenient way to enhance available positioning services. Additionally services like skyhookwireless.com providing high accuracy by using hotspot fingerprints should be made available as a plug-in.
The resulting software is meant to be used in a free navigation system based on openstreetmap.org data and other opensource LBS systems.
- Required Skills/Programming Languages: Advanced C++, Knowledge of Symbian OS beneficial.
Visualization for OSM-based Mobile Navigation System (Android)
The OpenStreetMap (OSM) project aims at providing free geographical data for any place in the world. For many places, especially metropolitan areas, the data quality is nearly on the level of data offered by commercial providers.
A group at the Computer Science Institute of FU Berlin has launched a project to build an open source navigation system based on OSM data. The system is targeted for mobile devices (cellulars, etc.) using J2ME and Android. Similar to the commercial mobile routing service offered by NokiaMaps, the routing is done entirely on the local device. No server connection is necessary at the time of routing. Therefore the OSM map data is converted to a binary format and stored on the device. It is accessible through a MapDataService API. Similarly the core routing functionality is accessible via a RoutingService API.
The task of this project is to build the visualization for the navigation system using the Android platform. The project can be subdivided into three major parts:
- Provide basic GUI for user input, system settings, menus, etc.
- Provide MapRender API and implementation using MapDataService (may borrow from subset of Google Maps API)
- Provide destination guidance by combining the following:
- visualization of the route on a map (rendered on the fly using MapRender API)
- simple arrow based guidance (e.g. turn left in 300 meters)
- Required Skills/Programming Languages: Java, Knowledge of the Android platform.
Interactive source code questions in Moodle
We want to build more support in Moodle for building learning communities around source code; the aim is to make learning and understanding given source code more fun by interactive online learning.
Currently we're working on source code questions (see e.g. this discussion in Moodle) to allow easier construction of interactive exercises with given source code. Examples are puzzles, quizzes, etc.
In code summer three things should be done:
- invent and build more generic question types (templates)
- invent and build a mechanism which allows automatic construction of concrete source code questions from given source code and given generic question templates
- implement a concept for tagging source code. The tags should support finding source code for new questions, and it should support new ideas for 1.