# Collaborative Development for the XO Laptop: CODEX 2

Andrew Garbett, Karl Lieser, Cornelia Boldyreff

► To cite this version:

Andrew Garbett, Karl Lieser, Cornelia Boldyreff. Collaborative Development for the XO Laptop: CODEX 2. 6th International IFIP WG 2.13 Conference on Open Source Systems,(OSS), May 2010, Notre Dame, United States. pp.97-104, 10.1007/978-3-642-13244-5_8 . hal-01056021

HAL Id: hal-01056021

https://inria.hal.science/hal-01056021

Submitted on 14 Aug 2014

HAL is a multi-disciplinary open access
archive for the deposit and dissemination of sci-
entific research documents, whether they are pub-
lished or not. The documents may come from
teaching and research institutions in France or
abroad, or from public or private research centers.

L'archive ouverte pluridisciplinaire HAL, est
destinée au dépôt et à la diffusion de documents
scientifiques de niveau recherche, publiés ou non,
émanant des établissements d'enseignement et de
recherche français ou étrangers, des laboratoires
publics ou privés.

<figure><img src="image_1.png" /></figure>

Distributed under a Creative Commons Attribution 4.0 International License
Collaborative Development for the XO
Laptop: CODEX 2

Andrew Garbett, Karl Lieser and Cornelia Boldyreff
Centre of Research on Open Source Software – CROSS
University of Lincoln, UK

**Abstract.** At the University of Lincoln, undergraduate students are given the opportunity to take part in an Undergraduate Research Opportunities Scheme (UROS), which allows students to not only contribute to a particular field of research but also to enrich their knowledge and understanding of the chosen research topic. The Centre of Research for Open Source Software (CROSS) within the School of Computer Science at the University of Lincoln offered UROS students the opportunity to research into the Collaborative Development for the XO Laptop (CODEX). The aim of this project is to provide an easily accessible Open Source platform within which students are able to develop activities for the One Laptop Per Child (OLPC) XO-1 laptop, as well as create Open Source applications and contribute to the OS Community. Under the supervision of Professor Cornelia Boldyreff, two students (Andrew Garbett and Karl Lieser) were tasked with continuing the initial research and development undertaken by James Munro on the original CODEX project in the previous year. The resulting CODEX 2 project has managed to produce sufficient tutorial materials for new students to begin development for the XO laptop and more specifically for its Sugar interface utilising a development environment that met the requirements of the project and thus resulting in a successful research outcome.

# 1 Introduction

The One Laptop Per Child (OLPC) scheme aims to “create educational opportunities for the world's poorest children by providing each child with a rugged, low-cost, low-power, connected laptop with content and software designed for collaborative, joyful, self empowered learning. When children have access to this type of tool they get engaged in their own education. They learn, share, create, and collaborate. They become connected to each other, to the world and to a brighter future.” [14] In order to provide the learning experiences for the users of the XO 1 laptop, developers are required to contribute their own time and effort to create useful, educational and enjoyable applications; and Computer Science students have been identified as an excellent source of volunteer developer effort.

The first One Laptop Per Child XO 1 laptop used an Open Source distribution of the Linux operating system known as Fedora [11] which was coupled with Sugar [15], a Graphical User Interface, with the aim to be as multilingual as possible through the use of illustrative graphical icons rather than text. In doing so the XO
User Interface does not conform to modern operating system desktop norms; most
notably, Sugar does not contain a taskbar or 'start menu' but rather different levels at
which the user is able to interact with not only their own applications but also
collaboratively with the applications of other Sugar users on-line. The interface uses
activity based operations rather than a tree structured collection of documents and
applications and can be seen as quite esoteric at first. However, Sugar developers
insist that the interface encourages all its users to learn through experiences rather
than prior knowledge of similar products [15]. Therefore developers hope that
likeminded individuals will create activities that will continue the learning process
and aid to a child's educational experience.

In order to encourage further application development for the XO 1 laptop and
Sugar, the Centre of Research for Open Source Software (CROSS) at the University
of Lincoln has accepted the challenge and has been working to offer student
developers within the university the opportunity to contribute to the worldwide Open
Source community that has grown around the OLPC project. The availability of this
offer is provided by the university's Undergraduate Research Opportunities Scheme
(UROS) where undergraduate students are provided with the opportunity to gain an
understanding of the processes and activities entailed when performing a research
project. The UROS research scheme is normally undertaken by students who will be
commencing their third year of study and carried out over the summer period under
the supervision of a member of academic staff at the University. The students are
usually "embedded" with an existing research group and work alongside other
researchers in the group.

The CROSS was granted funding to begin a student-led project known as
Collaborative Development for the XO Laptop or "CODEX" [5] and it was
initialised with the aim of bringing an easily accessible development environment to
the students at the University of Lincoln in the hope that they would also become a
part of and contribute to the OS community.

The initial research was undertaken by James Munro [1] at the University of
Lincoln as part of UROS, under the supervision of Professor Cornelia Boldyreff. The
CODEX project produced a Live CD that contained Sugar development software as
well as a wiki [6] which contained tutorial information about the setup processes
involved and other related resources including a report to the community at the Fifth
International Conference on Open Source Systems held during June 2009 [4].

The success of the CODEX project allowed for a continuation project, aptly
named "CODEX 2", where students in the following year could contribute by
carrying forth the original stated aims and building upon the work that had
previously been completed. The CODEX 2 project was undertaken by Andrew
Garbett and Karl Lieser, with supervision provided again by Professor Cornelia
Boldyreff.

The following discussion describes the aims of the CODEX 2 project (Section 2),
the evolution of objectives that occurred as it was carried out, and the
accomplishments that were made (Section 3). A comparison of the accomplishments
is provided thereafter (Section 4) with further work being indicated (Section 5) and
finally a conclusion provided (Section 6).
## 2 PROJECT AIMS

The principle aims of CODEX 2 project, as initially outlined in the project brief which was provided to students, were to follow on from the objectives of the previous CODEX 1 project. These objectives were to investigate the OLPC and Sugar projects in order to develop methods by which student developers and the outside community alike, could contribute towards developing activities, i.e. applications for the Sugar interface. These methods would be supported by producing a suitable development environment, accompanying documentation and tutorial content that could be used in aid of activity development. Throughout both CODEX projects, the overall aims have remained the same and are as follows:

1. Identify a suitable development environment for Sugar activities

2. Modify and develop a development environment for student use

3. Produce tutorial content and documentation as a student aid

4. Develop example activities using the environment

Within the CODEX 2 project, there were a number of initial sub-goals identified in order to build on the previous work completed in CODEX 1. These were to update the Live CD which had already been produced, via providing a more up to date software distribution and more suitable means for publication via a LiveUSB replacing the LiveCD (Aims 1 & 2); and to use the software provided on the LiveUSB to develop further activities for Sugar and then produce tutorial content and documentation on how to do so (Aims 3 & 4).

## 3 PROJECT PROCESS AND ACCOMPLISHMENTS

As proposed and abstracted from a brief provided to the students, the CODEX 2 project was envisaged to involve three main phases, these being:

* Investigation phase, whereby background research on all areas of the project could be accomplished, including OLPC, XO Sugar Software and results achieved in previous CODEX project

* Development phase, allowing the CODEX LiveCD to be updated into a more enhanced version on a more suitable medium, LiveUSB

* Trial and Evaluation phase, where by applications could be developed using the deliverable from the previous phase, and production and updating of the current tutorial guide and documentation could take place

Many of the initial presumptions from the brief, which further detailed the outlined continuation of the original CODEX project, were soon found to be unwarranted once the research commenced. The key change that is noted from the main phases of the project above was the discovery of work relating to the development of software which already allowed implementation of LiveUSB type mediums; these being "Sugar-on-a-Stick" and "Fedora Edu Sig" which are discussed later.

Details of how the research actually progressed was recorded in the blogs that were kept by the two CODEX 2 student researchers. This was accomplished through
the use of Lincoln University Blogging system [2] [3]. These have provided a public record of the research and development of the project, thus producing a useful resource for future participants in the CODEX project.

Collaborative software technology has also been used in order to consolidate results from CODEX 1 and CODEX 2, and to manage information during the production of the tutorial content and further documentation. These came in the form of the project Wiki [9] which allowed for the information produced within the blogs and via research to be filtered. Additionally an online repository Git Hub [12] was used for storage of documentation and produced software; such as activities that could be managed and stored.

Before the start of the CODEX 2 project, the student researchers' knowledge in the area of open source operating systems and subject areas of the project was limited, and so during the start of the research, time was spent investigating and learning within four main areas:

1. Understanding and using Linux; in particular Ubuntu and Fedora

2. Understanding and learning to script in the Python Programming Language

3. Testing the required software for emulation and porting operating systems to USB devices

4. Investigating CODEX 1, OLPC & Sugar projects, and other background research

In addition to the initial research into the above areas, both researchers made contact with the online community, thus creating working ties whereby additional help and support could be obtained in the later stages of the research. It soon became clear after the initial investigations began that the OLPC and Sugar projects had made substantial progress from the previous summer's research reported on the original CODEX 1 project, and that much more information and online community presence was now available.

A number of discoveries were made during research and contact with the online community which meant that there were already materials available to begin developing a LiveUSB. The first discovery was the release of "Sugar on a Stick" [15], which officially allowed the online community to download and create a version of the Sugar software on a USB storage device.

The second important discovery was finding that Sugar had been included in the Fedora Linux distribution which allowed users to directly download Sugar through the Fedora Package Management System. Finally the Sugar Project had made substantial progress with their online presence, providing an abundance of information on all aspects of Activity and Sugar Interface Development, and availability of "Sugar JHBuild", a repository of the latest Sugar Interface source code.

These discoveries meant that some of the initial CODEX 1 project outputs had now become obsolete; such as the Ubuntu LiveCD. It could be replaced by either "Sugar on a stick" or a Fedora installation with Sugar installed, which could also be ported to a USB drive with ease. The research focus now shifted due to the option of obtaining a built version of Sugar or its latest released source code online, coupled with the availability of an abundance of tutorial content in helping to develop for Sugar. Attention was now being directed to a related and complementary project, as
proposed by some of the online Fedora / Sugar development community, called
“Fedora Edu Sig” [10]. The project logo is displayed in Fig1.0

<figure><img src="image_2.png" /><figcaption>Figure 1.0: Fedora Edu Sig Logo</figcaption></figure>

The “Fedora Edu Sig” project is an educational “spin” of the Fedora project where software is being developed, which includes Sugar pre-installed for easy use to port to USB devices (Fig.2.0); along with developing tutorial information on how to download and install. These goals fell in line with the objectives outlined in the CODEX projects; and so the remaining time was spent helping the current developers of the “Fedora Edu Sig” to build, port and test the software in preparation for its final release.

<figure><img src="image_3.png" /><figcaption>Figure 2.0: Edu Spin Emulating Sugar</figcaption></figure>

Although much of the information on the areas covered thus far is available
online, time was needed to locate and compile information into a meaningful
resource. There was no single central on-line source that could point student
researchers and developers who had objectives such as the CODEX 2 project in the
right direction. Although tutorial content for activity developers was located, some
of the current tutorial content already developed needed more explanation for entry
level student developers, and thus it was proposed that a primary output of the
CODEX 2 project would be the development of a knowledge base or “gateway” that
student developers could use to find all relevant links. This would be accompanied
with the production of short tutorials that would complement existing information to
allow beginner users, such as new student researchers, to understand and start
developing in a shorter time frame. These new outputs now form the base of the
content in the CODEX 2 section of the project Wiki, and additional content in Git Hub, with each development being recorded in the project blogs by each student researcher.

The CODEX 2 project team were invited to attend the Summer 09 Open Source Schools Nottingham ‘Unconference’ [13] which allowed the student researchers to not only participate in talks, but also to present materials, raise awareness and demonstrate their knowledge learnt about the OLPC, Sugar Interface and Sugar on a Stick projects by helping in the Sugar (OLPC) presentation. Both student researchers participated in an impromptu video interview by other students at the Unconference [8]. The student researchers also produced a project poster for distribution at the Unconference [7].

This attendance gave the student researchers an opportunity to engage in dissemination activities normally associated with academic research and gain feedback from a wider potential user community in schools.

# 4 COMPARISON OF WORK

Throughout the CODEX project lifecycle the aims have remained the same and have been as follows:

1. Identify a suitable development environment for Sugar activities

2. Modify and develop a development environment for student use

3. Produce tutorial content and documentation as a student aid

4. Develop example activities using the environment

The CODEX 2 project aimed to take the idea of creating a development environment and make it more accessible to students by offering a bootable persistent USB pen drive with preinstalled software. Much like its predecessor, the CODEX 2 project's main output took a form of portable medium and provided a development environment for the potential student developers.

However, with new addition of the bootable pen drives the CODEX 2 project has excelled in comparison with the initial project. This is due to the ‘Edu-spin’ USB which can be more easily kept up to date through the use of a persistent USB drive rather than being a ‘burn once’ CD that quickly became out of date.

Other benefits of the persistent storage include the ability to store the student user's files and being able to transport them with the development tools available. This is arguably the biggest improvement yet as it allows truly portable development from almost any computer. Another aspect of availability is the ability to install the environment on different sized pen drives; as well as the ease at which the user is able to do so, this allows developers to download additional software and install it within the operating environment. As almost all modern computers used by students have USB ports, the development of the persistent pen drive environment has meant that the students are able to utilise the Sugar development environment with most computers rather than having to ensure that their machine had a CD drive to boot up the original CODEX 1 disk.

A disadvantage of having USB driven development is that there are some motherboards that do not allow the user to boot from USB, although this may be
overcome through the use of “CD Loaders” which recognise the USB device for the system. It has also been found impossible to boot from USB on some networked computers where the administrator has locked the BIOS settings thus disallowing the user to select ‘Boot from USB’, although this too may be overcome through communication with network administrators. A further concern with the Edu-spin approach is that the environment had been cut down significantly with regards to non-essential software and driver files. This stripping of non-essential files may interfere with some student user’s software and hardware requirements and thus reduce the effectiveness of the USB by not including certain code libraries and drivers. Although USB drives are limited in size, there is a good improvement on the storage space available when compared to the original Live CD produced in the CODEX 1 project.

# 5 FURTHER WORK

Further development for the CODEX project may include a deployment plan in order to provide the students of The University of Lincoln with all the resources required to obtain the development environment. This may include the physical aspect of deployment such as looking into the distribution of the necessary software from a central or multiple locations. Other aspects concerning the deployment are areas such as the rebuilding and updating of the development environment ensuring that software, bookmarks and tutorial materials are relevant.

Since USB drives are expected to increase in size, users will soon be able to store many more files on their drives. With this being the case, a future investigation could consider any other software and files that are required to extend the effectiveness of the current distribution.

# 6 CONCLUSIONS

The CODEX 2 project has been successful in meeting its project aims; and most importantly, the student researchers undertaking the UROS project have gained an insight into collaborative development within the wider Open Source community. Alongside this, the students have also been given the opportunity to work with Open Source tools and environments, and have had the chance to learn new skills such as python development and wiki editing.

The students also attended an Open Source conference and had the chance to listen to new and exciting ideas from Open Source developers from the open source and education communities. Whilst undertaking the CODEX 2 project, all research materials and ideas have been recorded on two separate blogs which show the progress of the project.

The project managed to produce an abundance of tutorial materials for new students to use when they begin developing activities for the XO laptop as well as providing students with an Open Source development environment which can be installed upon a persistent USB pen drive. The CODEX project will definitely
provide other students with interesting challenges and topics to research in the near future.

# 7 REFERENCES

[1] Blog JMunro. (2008) http://james.blogs.lincoln.ac.uk/?s=CODEX. [Checked September 2009]

[2] Blog KLieser. (2009) http://CODEX2project.blogs.lincoln.ac.uk/. [Checked September 2009]

[3] Blog AGarbett. (2009) http://andygarbett.blogs.lincoln.ac.uk/. [Checked September 2009]

[4] Boldyreff et al. (2009) Undergraduate Research Opportunities in OSS. Open Source Ecosystems: Diverse Communities Interacting. Springer Boston. vol 299/2009, p.340 – 350 http://www.springerlink.com/content/b54858r345437548. [Checked September 2009]

[5] CODEX Project. (2008) http://learninglab.lincoln.ac.uk/wiki/Collaborative_Development_for_the_XO-1_laptop_%28CODEX%29. [Checked September 2009]

[6] CODEX Wiki. (2008) http://learninglab.lincoln.ac.uk/wiki/OLPC_XO-1#2008_CODEX_1 Project. [Checked September 2009]

[7] CODEX 2 Poster. (2009) http://tinyurl.com/CODEX2-Poster. [Checked September 2009]

[8] CODEX 2 Video. (2009) http://vle.hamblecollege.co.uk/course/view.php?id=1137. [Checked September 2009]

[9] CODEX 2 Wiki. (2009) http://learninglab.lincoln.ac.uk/wiki/OLPC_XO-1#2009_CODEX_2 Project. [Checked September 2009]

[10] Edu Sig. (2009) https://fedoraproject.org/wiki/SIGs/Education. [Checked September 2009]

[11] Fedora Project. (2009) http://fedoraproject.org/. [Checked September 2009]

[12] GitHub Repo. (2009) http://github.com/Kodex/CODEX-tutorial-content. [Checked September 2009]

[13] OSS Unconference. (2009) http://opensourceschools.org.uk/unconference-programme.html. [Checked September 2009]

[14] OLPC. (2009) http://laptop.org/en/vision/index.shtml. [Checked September 2009]

[15] Sugar Project. (2009) http://www.sugarlabs.org/. [Checked September 2009]