Talk:Application Developers: Difference between revisions

From OLPC
Jump to navigation Jump to search
No edit summary
(No difference)

Revision as of 20:17, 15 December 2006

Overview

There are people in the OLPC management team, the OLPC offices and laboratories and working on the OLPC project as part of their employment at various companies and orgnaizations.

There are also people around the world who are interested in the project and who would like to participate in developing applications to run on the laptop.

This page is intended to be a gateway to resources that will be useful to external developers. For example the following is a link for the page on Setting Up a Sugar Development Environment on Windows.

How to get started developing an application

First of all, begin by understanding the OLPC Python Environment. Most external developers will be using Python to develop their application. Next, make sure that you understand the constructionist philosophy of education. The OLPC is not simply a stripped down PC for kids to play with and for teachers to use as babysitters. In the western world, kids do not get much educational benefit from computer use but there are other sources of education to compensate. The OLPC will be going into an environment where these other sources do not exist or will be marginal.

Expect that the kids have no paper, pens, pencils, books or trained teachers. Many OLPCs will be deployed into just such an environment. Of course, not all of the target children are equally deprived, but the point is that your application must actually help children learn something.


Ideally you will take some time out to install and play with Squeak especially the etoy environment for schools described at Squeakland.

Are there projects to join ?

Yes, of course. For one, the Squeak environment is being adapted for the OLPC and has an active community behind it involved in developing educational applications.

There is also a Developers Program for people who have a project which would benefit from having a prototype of the OLPC to test it on.

The OLPC team has a git repository hosting several applications. You can check out a copy of the source code and work on one of these.

Some external projects such as Evince will need to be adapted to run on the OLPC. In part this means stripping out unecessary features that a 3rd world child would never need. This is necessary to reduce the storage footprint of the application. Also, most applications will need their GUI to be simplified, partly to ensure that it functions on a small 640x480 screen, or a monochrome display, but also to make it easier for the kids to use. For instance an ebook reader like Evince should give the user a choice to make the book appear in fullscreen with no visible UI at all. There are some extra keys on the screen that could be used to control the application, or regular keystrokes could be used. Of course, regular keystrokes for a Chinese kid or a Tamil kid, might not be what you consider regular. There are no guarantees that keys like Control or Alt will be available.

Can applications be developed in a library?

Could someone who can use a PC in a public library or in an internet café develop applications without needing to install anything on the local PC if they are allowed to attach something to a USB port?

In fact, yes this is possible but it does cost a small amount. For £5 (about $9.50) you can buy a Python distribution called Movable Python sometimes referred to as Python-on-a-stick because it runs from a USB stick memory device. For that matter it runs from any USB-powered storage device so it could even be installed on a 20gig Freecom drive. It can be customized by adding your own libraries so you could install GTK+, PyGTK and any other bits that you need.
I haven't personally tried to run Movable Python together with PyGTK but if your GUI is simple then you can even develop using WAX or WxPython and then have someone port it to PyGTK later when you have a working product.

Language Training for Developers

All software must be translated to foreign languages and script. Most of the software developers don't know anything about languages with different writing systems. A learning software, that helps to learn some chinese, tibetian, thai,... words including script, could bring the nessessary knowledge to the developers.

The aim of this isn't to enable software developers to translate the software, but to give them knowledge about fonts and text input methods.

A start is being made on this with the Tutorial for Developers: Text Input Methods page.

You can help us

Please use this page to develop the concept of External Developers and what facilities are needed.