Google Summer of Code 2008 - Ideas Page

Aptivate intends to take part in the Google Summer of Code 2008. This program is sponsored by Google as a means of promoting involvement by students in open source software development. More information about the program can be found here: http://code.google.com/soc/2008/.

Loband Ideas

Many Internet users in developing countries have to use low bandwidth connections. It is not unusual for an entire African university to have the same bandwidth as a single household in the US or Europe, 2 Mbps, yet pay $5000 - $10,000 a month for it. Consequently it is important that the most efficient possible use is made of the connection.

Loband is aimed at internet users in low-bandwidth environments, often found in developing countries. Loband provides a proxy browser that filters content from browsed pages, reducing webpage sizes by up to fifty times and making browsing possible over slower connections.

Loband is a free online service and the source code is open and available to download. The service receives thousands of hits a day from users in developing countries. Loband's source code is licensed under the GPL, and is written in Java as a servlet application. More information about the Loband project, and endorsements, can be found here.

Difficulty: Medium. Skills: Java, J2EE, HTML

Component API

Loband is built on a number of filters that process different types of content. The project is to modularise these filters, and give them a standard programming interface, so that they can easily be incorporated into third-party applications, such as websites, proxy servers, browser toolbars, etc.

This would help web developers to build websites that work well over low bandwidth (for example by building in a text-only version of the site) and help end users and network administrators to browse websites more effectively over low bandwidth.

New content filters

Loband currently only works on HTML web pages and JavaScript. There are many documents posted online in bloated formats that would be much more accessible through a lightweight HTML interface like Loband. The project is to create Loband filter modules that convert the following file formats into lightweight HTML:

Filter configuration

Loband currently does not allow users to adapt the level of filtering to their bandwidth and preferences. This project is to make the existing filters user-configurable for different levels of optimisation, such as turning images and layout on and off. This should make Loband more versatile, friendly and acceptable to a larger group of users.

Media transcoders

There are many high-bandwidth video and audio files on the web which are inaccessible to users with slow connections or which waste unnecessarily large amounts of bandwidth.

This project is to create transcoders that can be built into Loband and convert:

This will allow people to use such content more easily on slower connections than is possible at present. We would host the transcoder on our Loband website and servers.

Lomail

Most commercial webmail services are very inefficient on bandwidth, since they need to send a large amount of HTML with each page and cannot cache pages effectively. But they are very popular in developing countries because they allow users to access them from anywhere without being tied to a service provider or paying a fee. Their design means that they waste around 25% of the Internet bandwidth of universities in Africa and are almost impossible to block.

This project is to develop an ultra-lightweight, ultra-efficient webmail service (e.g. using AJAX). As well as the user interface, it would be ideal to provide it with backends to connect to POP and IMAP servers and popular webmail services, and POP and IMAP front-ends so that users can use an installed software client such as Thunderbird or Outlook Express to further reduce bandwidth use.

This project would be integrated into the Loband service to provide an alternative (and more efficient) way to access the commercial webmail services that currently cannot be used with Loband. We would host it on the Loband website and servers.

Email interface

Users with very slow and unreliable Internet connections may find it easier to request web pages using email rather than with a web browser. In some cases, direct web access is blocked or forbidden over such connections. There are existing web-to-mail gateways, but Loband does not have this feature yet. On the other hand, Loband should offer more document support in future (e.g. PDF, Microsoft Word documents) which the other gateways do not.

This project is to create an email interface to Loband through which users can request and receive filtered pages by email. This should make it possible to use Loband on an even lower-bandwidth connection than at present, and to access files in formats which are currently not accessible via email over low bandwidth.

Bandwidth tester

Many websites offer free "speed test" services. However, most of these are designed for testing broadband speeds and simply do not work (or take far too long) on low-bandwidth connections.

This project is to build client-side and server-side bandwidth testing tools into Loband that work properly and accurately in a low-bandwidth environment. This should help users to understand their own bandwidth availability better. We plan to publish aggregated results which should help to improve awareness and understanding of the problem to policy makers and the general public, and focus further Loband development and help content providers to understand the needs of their users and adapt their content accordingly.

Loband browser plugin

This project is to develop Loband plugins for popular browsers. For example, it could offer a keyboard shortcut to switch in and out of Loband view, to load a page through the loband simulator, to report a problem with a page or change the optimisation level. This should make Loband easier to use.

Speed Simulator

Add functionality to simulate low-bandwidth browsing using a plugin on the client side, to demonstrate the impact that Loband has.

PDA Software

Good up-to-date information is the lifeblood of any development project, from health projects to education and agriculture. Far from being technology for its own sake, PDAs appear in practice to provide a qualitative step change in the ability to collect and manage vital monitoring information. Questionnaires delivered using PDAs provide significantly more accurate data and dramatically decrease the time between data collection and analysis. In an example we worked with we estimated that a survey team with 8 PDA's would replace a 2 metre stack of paper questionnaires over the course of a single monitoring exercise lasting several weeks.

For PDA based monitoring we have been working with EpiSurveyor (http://sourceforge.net/projects/episurveyor), a free, open source tool enabling anyone to very easily create a handheld data entry form, collect data on a mobile device, and then transfer the data back to a desktop or laptop for analysis. Originally developed by DataDyne.org, NGOs use it for their monitoring and evaluation activities. DataDyne are working with the World Health Organisation to implement EpiSurveyor across Sub Saharan Africa, and Aptivate have been working with CAMFED and DataDyne using EpiSurveyor in Tanzania, Zambia and Zimbabwe.

It's a great tool and there are a many features and improvements we could add to make it even better.

At a high level, there are three areas to focus on:

Difficulty: Medium. Skills: Java, Eclipse, SuperWaba

Here are some ideas:

Workflow Support

The overall workflow of designing and producing surveys could be well supported by appropriate software.

The workflow needs to support multiple stakeholders involved in the process:

The following areas need particular attention:

Multi-Language Support

Surveys need to be conducted in local languages, while the design is often carried out in English.

Data Validation and Questionnaire Logic

Support for in-questionnaire data validation is where PDAs help increase data quality.

Online IDE

Large open source projects are challenging to engage with. For example, if you wanted to fix a bug in Firefox or OpenOffice, you have to wait hours while downloading and compiling source code that may not work anyway, install a ton of dependencies and work your head around very complex build scripts and procedures.

The idea for this project is to make it quick and easy to start hacking on these projects. Ideally you should be able to just visit a website to access a pre-built environment where the latest code is already checked out and compiled. Then you can just run it to try to reproduce a bug, run it in a debugger, modify it, incrementally build it, etc. This should massively increase the opportunities for skilled and busy people to contribute to open-source projects.

Implementation options are deliberately left open, with the only goal being to reduce the time taken for a new volunteer to be able to run or modify the latest trunk version of a large open-source project (over 100,000 lines of code) to 10 seconds. Implementation ideas/starting points:

Either way, all the necessary compilers, tools, libraries, etc. must be instantly available, along with the latest version of the code compiled as object files with debug support, so that building the project succeeds instantly with no changes, and after making a change, only the affected files need be rebuilt, as quickly and easily as possible.

We would then host the build environment for some open source projects, and they would be free to host it themselves.

Difficulty: Hard. Skills: Unix sysadmin, Java, C/C++