Project

General

Profile

GSoC 2012 ideas

DoudouLinux is a computer system (OS) targeted at children from 2 to 12 years old. The goal is to provide an interface as easy to use as a gaming console, immediately and fully in children native language, secure and reliable, with a bunch of activities developing many children skills or their artistic sensibility, and… being fun! If you want children be accustomed with free software as early as possible, join and help our effort to provide the best and funniest OS for kids!

We have several ideas to improve DoudouLinux, ranging from interface design, new tools, translation tools, and so. The source of inspiration is mainly our ticket list but not only. Of course we don't pretend to be the only ones able to propose good ideas for our project, so feel free to propose your own ideas too :). If you're interested in helping our project progress, by the mean of GSoC 2012 or just because you fell in love with our project, you can start by contacting us on our main mailing list, on our IRC channel or by standard email (see Contact us).

Template

We expect people filling ideas in this page to provide the following information:

  • Brief explanation: context of your idea, stakes and benefits
  • Expected results: what should be obtained in the end
  • Knowledge Prerequisite: technical skills required, eg. programming language and knowledge level
  • Mentor: the people of our team able to mentor this idea (may be filled later)
  • Links: links to discussions or tickets related to this idea

Wiki sample code:

h2. Next idea

*Brief explanation*
*Expected results*
*Knowledge Prerequisite*
*Mentor*
Not defined yet.
*Links*
"": (meta-ticket on our bug tracker)

List of ideas

Improve LxLauncher, the advanced activities environment

Brief explanation

Advanced activities such as “Mini DoudouLinux” and “Whole DoudouLinux” are using a simplified environment in which the desktop has been replaced with a tab interface showing applications icons: this is LxLauncher. While this is perfectly fine to ease the computer use, we'd like it to be nicer, more practical and funnier. We would like to have more freedom for placing icons, a better integration of the top toolbar into the desktop and ways to customize the tabs (background images and tab titles).

Expected results

The goal is to make an augmented version of LxLauncher able to embed components from LxPanel. Our expectations are the following:

  • Ability to change the arrangement of icons (in circle, ellipse, rainbow, spiral, etc.)
  • Have background images in tabs
  • Integrate LxPanel buttons in LxLauncher for a more uniform interface while having a way to change buttons and their arrangements
  • Similar rendering whatever the screen size and orientation, from handled devices to the largest TV sets

Knowledge Prerequisite

You will need good knowledge of the C/C++ language since both LxLauncher and LxPanel are programmed in C/C++. Knowledge of Gtk is a plus but not strictly necessary.

Mentor

Not defined yet.

Links

Improve lxlauncher (meta-ticket on our bug tracker)
LxLauncher: automatic icon size for a nicer interface (post on our blog)

Replace GDM with a standard application

Brief explanation

Currently the main menu of activities, which is displayed once DoudouLinux has finished to start, is made with GDM. Activities are indeed “fake” users whose default session just runs a single application (Gamine, Pysycache, Childsplay, etc.) or launches a simplified desktop environment based on a tabbed interface. This perfectly works but has several limitations or weaknesses: difficulty to share data between users, restart of X at session end, impossibility to change activities icon arrangement, etc.

Expected results

We'd like to have a standard application implementing our activities menu. This application would be started as the default desktop of a single DoudouLinux user or as a display manager replacement. In the first case autologin would be activated as in the second case, clicking on activities would enter the user session with a different session configuration. The application should let us tune the activities menu with enough freedom:

  • Arbitrary placement of icons
  • Ability to use animated images instead of icon images
  • Ability to fill the screen without distorting the displayed characters (people or animals) whatever the screen ratio or orientation
  • Ability to play audio messages at mouse hover
  • Handling interface translations through Gettext
  • Easy customization using a text file (XML?)

Knowledge Prerequisite

Good programming knowledge is required. For speed and loading time considerations we'd prefer this application to be coded in a compiled language such as C/C++. Compiled C/C++ libraries are also required for animations and audio playback. A prototype using exclusively an interpreted language can also be implemented to go faster and let more time to test and improve the application. In this case Python is preferred.

Mentor

Not defined yet.

Links

Replace GDM session menu with a Gtk application (meta-ticket on our bug tracker)

Parental controls settings

Brief explanation

DoudouLinux is currently shipping an Internet filter as parental controls, based on DansGuardian. On the one hand we'd like to add another parental controls tool to be able to limit computer hours of use. On the other hand we'd like to be able to set several parameters of DansGuardian: filtering severity level, white and black list of websites, authorized topics to avoid to block pages that are safe, languages tested in pages, etc. For example my children are watching LEGO™ animations on Youtube™ and some of them may be blocked with high security level settings.

Expected results

A nice, easy to use graphical interface to set:

  • Hours of the day allowed to use DoudouLinux (eg. from 10AM to 09PM)
  • Hours of use per day, per week (eg. no more than 2 hours/day and 10 hours/week)
  • List of website to block (blacklist) or to allow (whitelist)
  • List of positive words and their score, that lower the page score evaluation (eg. LEGO™)
  • Languages tested in pages to scan their content (this would allow faster page filtering)

Starting the application should require a password.

Knowledge Prerequisite

The Python language is the preferred language. As our desktop components use the Gtk library, it is better to use this library to lower resource use and speed-up application loading time, but the Qt library can be used as well since DoudouLinux also ships Qt-based applications. The language knowledge level required is middle level.

Mentor

Not defined yet.

Links
"http://team.doudoulinux.org/issues/520":Choose Dansguardian languages checked against at install (ticket on our bug tracker)
Allowed hours of day and/or total use by day (ticket on our bug tracker)

Easy installer

Brief explanation

Currently the only official way to install DoudouLinux is to perform a Live-like installation on hard disk. We then get a system similar to an USB Live system. This process wipes out the entire hard disk! On the other hand we do not want to ship the official Debian Live installer because it takes space on CD and may be too much complicated to use for many users.

Expected results

A simple graphical installer that is able to:

  • wipe a disk if needed
  • install DoudouLinux in a partition existing or not existing
  • install the bootloader if needed
  • tweak the existing bootloader or not,
  • remove live packages and install additional packages in a chrooted environment

Knowledge Prerequisite

Good knowledge of system internals, Linux tools and Python.

Mentor

Not defined yet.

Links
A real DDL installer (ticket on our bug tracker)

Online sound translation portal

Brief explanation

Our translation process is using the online translation portal Transifex. It can handle several translation file formats but for text only. Since small children cannot read, we are looking more and more at adding audio messages in DoudouLinux. This requires an easy way for translators to discover audio messages to be translated and to upload translations.

Expected results

An online audio translation portal showing the sets of audio messages (eg. start/stop messages, information messages, icon messages, etc.). Its organization can mimic the Transifex one. As authentication is required to avoid to loose data, we propose to authenticate users using their Transifex account and grab their language. The portal should then:

  • Authenticate users on Transifex
  • Show obvious information about the audio file format to be used and ways to record audio with enough quality
  • Allow users to upload translations for their language only
  • Anonymous users should be able to browse and listen to files

Knowledge Prerequisite

Good knowledge of any web interpreted language and database but preferably Php/MySQL for ease of hosting. Note that Transifex is using Python, which means this could be a good target language if we find a way to host a Python web server. Object-oriented programming is also required.

Mentor
Not defined yet.
Links
Wiki translation portal (main wiki project page on our bug tracker)

Local blog engine embedded in DoudouLinux

Brief explanation

There are still people believing it is worth teaching children office suites intensively from their earliest ages. We don't believe this! Office suites are bloated and over-featured for many people, so they are for children. On the contrary being an actor on the Internet, which is much more motivating than writing office-like documents, requires to be at ease with blogs, wikis, forums, etc. We would then prefer to embed in DoudouLinux a local blog engine, working in the web browser but not serving pages to the network.

Expected results

A light and easy to use blogging application that performs the tasks necessary for a basic page layout:

  • text formatting
  • image insertion and “upload”
  • wiki markup language with formatting toolbar
  • preview mode
  • page organization by topic, sub-topic, etc.
  • home page fixed or showing the latest entries
  • prefer to store data in flat text files instead of a database

Knowledge Prerequisite

Good knowledge of an interpreted language, preferably Python. The language must be already shipping along with DoudouLinux and must provide a light web server engine to serve pages to localhost. Basing this work on an existing blog engine is highly recommended.

Mentor

Not defined yet.

Links
My first blog (ticket on our bug tracker)

Tools for ARM™ migration

Brief explanation

Complete scripts, tools and GUI to make the Migration to ARM™ platforms as simple as possible.
Our current tools have a lot of necessary manual steps to build and update new DoudouLinux ARM™ Releases.
We would prefer to have a custom generic tool, to automate all these steps of building an ARM™ image.
We also need a GUI tool to convert the reference rootfs common to all ARM™ into a disk image for a specific hardware.

Expected results

Give the community, DoudouLinux and GNU/Linux, simples tools to make the Debian derivative build process customizable for any ARM™ computers.

Knowledge Prerequisite

CrossBuild, debootstrap, multistrap, polystrap, and other Debian cross platform and multi-architecture tools.

Mentor
Not defined yet.

Links
Migration to ARM (meta-ticket on our bug tracker)

LxLauncher menu editor

Brief explanation

The most advanced activities of DoudouLinux are using LxLauncher as desktop. Applications are arranged into tabs and sub-tabs thanks to an Xml menu file conforming to the Free Desktop standards. Although there is no problem for us to edit this file directly, it may happen that users would also like to change their menu. For example they may have installed extra software that is not correctly arranged in tabs or may want to hide/show some applications to fit their needs (eg. schools).

Expected results

We need a simple graphical tool to edit the LxLauncher menu file. As the Free Desktop standards allow to use application icon file names or application icon categories to sort out and arrange applications, the tool needs to be able to show the final menu in real time using user's specifications. Users should then be able to change the menu either by using icon file names or categories and sorting rules (logical and, or, etc.).

Knowledge Prerequisite

The preferred language for this task is Python with the Gtk library. Good knowledge of Xml processing is required too.

Mentor

Not defined yet.

Links

A tool to change LxLauncher menu (ticket on our bug tracker)

Theme customization tool

Brief explanation

The DoudouLinux theme involves several images and settings: early boot splash (Grub/Syslinux), boot splash (Plymouth), main menu (GDM), session start splash and, we hope soon, desktop background (LxLauncher). Alternatively users may also want to cahnge of icon theme, window decoration or mouse pointer.

Expected results

We still need a simple interface to choose nice images, convert them into the correct image format, and write them where needed (+ modify the configuration files!). When it is possible to launch a test (eg. with gdmthemetester or plymouth) the test application should be started using a test button. The tool should also list available themes for the mouse, the window decorations and the icons in order to let users change them.

Knowledge Prerequisite

The preferred language for this task is Python with the Gtk library. Conversion of image format should use the smallest library possible. Knowledge of Linux theming appreciated.

Mentor

Not defined yet.

Links

No link available.

ISO image customization tool

Brief explanation

There are many different keyboard layouts around the world. Even for a given language there may be several different layouts that depend on countries. So people downloading DoudouLinux can have the correct default language but not the correct default keyboard layout, which is annoying especially when children start typing! Moreover some people are requesting to be able to boot DoudouLinux with a kernel build for older computers, for instance 486 instead of 686. To let users customize DoudouLinux at least for these purposes, we need a tool able to unpack a CD/USB image file, change settings and files, then repack it.

Expected results

We first need a command line tool to perform these tasks. If the user asks to change the kernel, the tool should download the kernel package from the official Debian repositories. Once the command line tool is ready, a graphical interface can be built, showing the list of keyboard layouts available and a button to optionally change the kernel. The command line tool will be used in the future for an online customization tool to avoid people's headaches :). People will then be able to ask our servers to customize the CD/USB image file a bit before downloading.

Knowledge Prerequisite

The preferred language for this task is Python since we may want to make it run under MacOS® and Windows® in the future. The tools used to unpack/repack the DoudouLinux image should then be multi-platform in case externals libraries are needed. The graphical interface can use Gtk or Qt.

Mentor

Not defined yet.

Links

Dealing with alternative keyboard layouts (ticket on our former bug tracker)

Analyze and improve Dansguardian performances

Brief explanation

On low-end devices such as ARM™ computers, web page rendering is incredibly slow is we do not set Dansguardian correctly. On Genesi computers we've seen the page rendering time decrease from 60 seconds to 10 seconds only by changing the default settings that were used on the DoudouLinux CD. As Dansguardian provides many setting parameters, we need to evaluate the effect of each parameter on page rendering. Note that we don't know if Squid, the proxy software redirecting web requests to Dansguardian, plays a role too or not in the long page rendering time.

Expected results

First a detailed analyze of the parameters that seem to play a role in page rendering time is required. The expected output is kind of table with parameter names, roles and effect on the rendering time. From this table sets of parameters should be elaborated for different computers, from the slowest to the quickest ones. We expect that improving the rendering time is somewhat deteriorating page filtering severity. Parameter sets should take this issue into account. Finally, a strategy to setup Dansguardian correctly at installation is wanted. For example the CPU bogomips value can be used to get an idea of the computation power and then the adequate settings should be selected.

Knowledge Prerequisite

This is not particularly a programming language that is required for this task but a more general knowledge of computers in order to perfectly understand how Dansguardian is working: processes, HTTP requests, ASCII/binary, encodings, etc.

Mentor

Not defined yet.

Links

Tune DansGuardian at startup on CPU bogomips (ticket on our bug tracker)

Show persistence status in the panel

Brief explanation

There is currently no easy way to know that data persistence is active or not when DoudouLinux is used as a Live system. Of course this may be very important for users to know whether persistence is active or not since when it is not, they may loose their work.

Expected results

We'd like a notification icon in the desktop panel LxPanel that shows if:

  • persistence isn't set (no persistence file/partition found at boot)
  • persistence is active and what is the total free space available
  • persistence has been discarded at boot

The icon should show a detailed information box at mouse hover. An audio message should also be triggered at session startup to tell users when persistence is not on.

Knowledge Prerequisite

The programming language is Python since it is shipping within DoudouLinux. The required programming knowledge level is low since there is no complex data structure to be processed and the user interface is very light.

Mentor

Not defined yet.

Links

Users don't know if persistence is really active (ticket on our bug tracker)