Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

Collaborative Development for the XO Laptop (CODEX)

James Munro Cornelia Boldyreff


Centre of Research on Open Source Software – CROSS
Department of Computing and Infomatics
University of Lincoln, UK
{jmunro,cboldyreff}@lincoln.ac.uk

Abstract
The OLPC XO laptop is an interesting and simplistic system to develop applications for; however, there is a lack of
information and resources from a university student’s perspective. The CODEX project aims to research and produce a
collaborative development environment for use by students wishing to create applications for the OLPC XO laptop system.
Different platforms and environments were researched to determine the most suitable candidate. The end result of this
project is the CODEX LiveCD, a usable self-contained development environment specifically catering for students developing
software for the XO laptop. Students can now potentially use the LiveCD to collaboratively develop software for the XO
laptop.

1 Introduction

The XO laptop is the unique system at the heart of the OLPC project. The laptop is specifically tailored and designed for
use by children in developing countries. With its simplified Sugar interface the XO has stepped away from the traditional
desktop-computing metaphor that we’ve grown to rely on.
All of the software associated with the OLPC project is built upon Open Source Software (OSS) and is freely available to
anyone in the world. Much of the development effort is undertaken by the open-source community entirely for free; and this
helps the project to evolve and grow.
The free nature of the OLPC project’s vision permits anyone to contribute resources to the project; and their contributions
are not limited to just the software code, as any type of contribution is gratefully accepted [1].
Here at the University of Lincoln we have identified the OLPC project as a potentially excellent way of getting students
involved in collaborative software development within the open-source community and as a way of allowing students to
contribute to an ethical and worthwhile cause. We are aiming to determine a suitable environment in which students can
collaborate and develop software for the XO laptop. XO software applications are known as ’activities’ for the laptop’s Sugar
interface. Like the XO hardware, Sugar is designed specifically for the children of developing countries.

1.1 Reasons for Choosing CODEX

I chose to work on the CODEX project for many different reasons. I have a strong personal interest in OSS and software
development in general and saw that CODEX would be an excellent opportunity to contribute to an OSS project, something
I have wanted to for a long time. I knew that by taking a ’hands-on’ approach in a project such as this I would develop skills
in many new areas.

1.2 Aims and Objectives

The main aims and objects of CODEX are listed below:

1
1. Identify a suitable development environment for Sugar activities
2. Develop/modify development environment for student use
3. Produce tutorial content and documentation
4. Develop example activities using the environment

1.3 Previous Work

The ’eCLAMP’ project from UROS 2007 introduced a unified development environment designed for use on all of the
University’s technology courses. This project is based on Eclipse - an industry standard Integrated Development Environment
(IDE) and eCLAMP was investigated as part of CODEX to determine its suitability for further modification.

2 Process

The research process of the project consisted of three distinct phases:

1. Investigative phase
2. Development phase
3. Trial usage and evaluation phase

The details of the three phases are elaborated in further detail in the following subsections.

2.1 Investigative Phase

This phase of the project involved in-depth research on various aspects of the OLPC project. In particular, close attention
was paid to the development tools and environments generally used by developers working for the project. This provided an
insight into the typical workflow associated with developing software for the Sugar platform.
The bulk of this phase was researched from the following sources:

• Existing reports on similar topics, e.g. the eCLAMP UROS report [8];
• Internet articles, e.g. the Sugar API documentation [4]; and
• ’Wiki’ type webpages, e.g. the official OLPC Wiki [3] and SugarLabs [5].

The deliverable of this phase consists of useful references and knowledge sources that have been recorded on the UROS
blog and the Learning Lab Wiki [2].

2.2 Development Phase

The development phase of the project involved acting upon the findings of the previous phase. In particular, this involved
creating the actual development environment. A breakdown of this phase can be seen below:

• Choose existing development environment and tools,


• Suitably modify/adapt existing environment for student use,
• Record steps required to produce deliverable for future repetition, and
• Produce example content using the environment in tutorial format.

The deliverable of this phase is the useable development environment complete with documentation and resources required
to use the environment efficiently.

2
2.3 Trial Usage and Evaluation Phase

The final phase of the project involved testing out the deliverables of the development phase to test the efficiency and
suitability of the environment. In some respects this phase is still on-going, the environment has yet to be tested by students
but the opportunity has arisen for CODEX resources to be used as part of a final year project by students in 2008-09.

3 Results

3.1 Suitability of eCLAMP

The results of the investigative phase soon demonstrated that eCLAMP would not be a suitable environment to adapt for
the following reasons:

1. Difficulty of integrating with existing Sugar development tools,


2. Difficulty of deploying on the University computers, and
3. Unsuitably complex user-interface of Eclipse for the simple Sugar development.

3.2 LiveCD

The most appropriate solution was deemed to be using the Sugar interface for Sugar development as this would allow
students to collaborate. However, there were not sufficient XO laptops available for student use so alternative development
environments were investigated.
After careful research of the alternative methods of development it became clear that a Linux LiveCD would be suitable
for use by CODEX. A LiveCD is a Linux distribution that can be run directly from the CD - without the need to be installed
on the computer. Developing a LiveCD would have the following advantages:

3.2.1 Advantages
1. Self-contained environment providing all the required tools and software;
2. No need to install on computer - easy to deploy; and
3. The system can be carried around wherever the student goes.

3.2.2 Disadvantages
1. LiveCD’s are typically slow to boot;
2. The system is read-only, students need to save their work to USB drives; and
3. If a new version is created, the student will need a new CD.

3.3 Sugar Packages

As development of the LiveCD continued it became important to stay up-to-date with the latest versions of the Sugar
software. I discovered that nobody maintained Ubuntu packages of the Sugar suite and so I took on the task of producing
these packages. This involved learning how to use many new tools and has proved to be invaluable experience. I received a
lot of positive feedback from Sugar community members which gave me the motivation to stay on top of this task.
The creation of the packages enabled easy integration with the LiveCD, making the task of updating the Sugar software
on the CD trivial. To make this process even easier I produced a small set of Python scripts that automate some of the tedious
aspects of remastering LiveCDs.

3
Figure 1. The LiveCD running a Sugar emulator session

3.4 Sugar Team

I received some interest from the Sugar community after creating the Ubuntu packages. The result of this interest became
the ’Sugar Team’ [6], a group of enthusiasts with the aim of creating high quality, up-to-date Sugar packages for Ubuntu.
Initially, my packages were used as a base for the work; however, this base soon evolved as a better and a much more efficient
system for producing the packages became prevalent. I am currently no longer active in this effort due to time constraints,
but the hard work of the Sugar Team still continues and I am proud to have been a part of this.

3.5 The CODEX LiveCD

The CODEX LiveCD is the main deliverable of the project. The CD is a self contained development environment specifi-
cally tailored for use by students. The features of the CD are listed below:

• Good hardware support;


• Integrated Sugar software and tools (see Figure 1);
• Sugar emulator (run activities without XO hardware);
• Useful menu shortcuts;
• Tutorial content and resources; and
• Example Sugar activities.

The CODEX LiveCD is intended to be very easy to use and supports a large range of software, as a result of the solid
foundations of Ubuntu Linux [7] under the bonnet. The CD contains everything that students require to get started in
developing activities for the XO laptop and information for future development. It can be used on almost all types of PC
hardware as long as it is possible to boot directly from CD, a feature present on all modern computers.

4 Summary

If we consider the initial aims of the project we can see that CODEX has been successful. As part of the investigative
phase we identified a suitable development environment for student use and based our development upon these findings in
the form of a LiveCD. The ultimate efficiency and success of the project as a whole is hard to measure until concise useage
information gathered by trialing the CD in a real development situation by students as is planned in the coming academic
year.
Another of the aim of the project was to produce documentation and tutorial content to support the chosen development
environment. We were successful in meeting this aim and the content exists in a Wiki-type format. This format organizes the
data in a logical fashion and promotes students and other users to adapt, modify and update the information as they see fit.

4
5 Conclusions

The CODEX project has been a great success. I have learned much from my experiences and in the process fulfilled a
personal goal of contributing to an OSS project.
Work for the future could involve optimizing the CODEX LiveCD after receiving feedback from students who have used
it. Due to the ever changing nature of Sugar itself, it is a very difficult task to keep the LiveCD up-to-date as it is essentially
like trying to hit a moving target. The best course of action is to aim for scheduled stable releases of Sugar.

6 Acknowledgements

Over the course of the CODEX project I have received invaluable help from many people. In particular I would like to
thank the following people:

• Cornelia Boldyreff - Cornelia is the supervisor of the CODEX project and has proved invaluable at all times. Without
Cornelia’s help I would not have been able to stay on course with the project, her advice and support has been concise
and very useful.
• Andrea Capiluppi - Andrea provided excellent advice and knowledge on all things open-source. He is also adept at
creating Perl scripts.
• Thomas Knowles - Thomas is another member of the CROSS and has contributed advice and humour during long
hours in the office.
• Jani Monoses - Jani provided me with excellent advice on creating and maintaining Debian packages. Without his help
I would have been unable to update his existing packages with up-to-date Sugar releases. I am extremely grateful for
his patience in responding to my many emails.
• Morgan Collett - Morgan helped to establish the Sugar Team dedicated to producing Sugar packages for the Ubuntu
Linux distribution and also co-ordinated the IRC meetings.

References

[1] Get Involved. http://wiki.laptop.org/go/The_OLPC_Wiki#Get_Involved. Checked July 2008.


[2] Learning Lab Wiki. http://learninglab.lincoln.ac.uk/wiki/index.php/OLPC_XO-1. Checked September 2008.
[3] The OLPC Wiki. http://wiki.laptop.org/go/The_OLPC_Wiki. Checked July 2008.
[4] Sugar Learning Platform. http://api.sugarlabs.org/. Checked August 2008.
[5] SugarLabs. http://www.sugarlabs.org/go/Main_Page. Checked July 2008.
[6] Sugar Team in Launchpad. https://launchpad.net/˜sugarteam. Checked September 2008.
[7] Ubuntu Desktop Edition. http://www.ubuntu.com/products/whatisubuntu/desktopedition. Checked September
2008.
[8] Wayne Garland. eCLAMP UROS Report. Technical report, 2007.

You might also like