Preparing XO-4 Laptops For Bajhang Phase II

I enjoy watching Factory Made. I have always been keen in understanding and knowing the effort behind creation of products I use. They fascinate me. I got a chance to understand  similar creation of a product at OLE Nepal. It was to test 53 boxes of newly arrived XO-4 laptops.

It all started with an email about arrival of laptops from Mr. Upaya, our finance director at OLE Nepal stating “We are expecting 53 boxes of XO-4 laptops to be delivered probably today.” All the interns were invited to check external damage in XOs as well as to store them in a safe place. I found this to be a great activity in my learning process and skill development as an intern. Also, it gave me chance to know the laptops inside out.

 Exploring the product such as XO laptop was an extraordinary duty, for we do not easily get this opportunity. We interns got to delve into this system and prepare them for the Bajhang deployment. I feel content to realize our contribution in this process, giving students an access to digital educational resources. Saugat, Sawal and myself were assigned to test XOs’ basic hardware and update operation systems. Checking 53 boxes of XO laptops seemed never ending, but eventually it became interesting for us. Initially, we divided our work. Me and Sawal decided to unpack the boxes and test the laptops while Saugat primarily checked the charging ports of laptops along with its charger and cable. As a result of our team effort, the boxes that once seemed never ending were being tested and packed in no time.

“Damn” shouted Saugat grabbing our attention, “I just got an electric shock.” It was the first defect detected during  our testing process. This event broke the silence in the room and we started talking about childhood mishaps with  electricity. I did not have any similar story to share but was listening to their stories with great interest.

After one and half days of work, we completed checking 31 boxes of laptops leaving only 22 boxes of XOs. This time around, we could not resist but to take it easy. Sawal discovered a print mistake in keyboard. MAYOS. We figured the word was Shift in Spanish. There is a saying “If you find two mistakes in a row, you are likely to find the third one.”  Continuing our last few boxes, I finally got my share of errors. It was a non functional screen rotate key. Therefore, all faulty machines were separated in a box and we gradually ended our testing activity.

C:\Users\Kayastha\Desktop\OLE copy.jpg

Apart from checking the defects in the laptops, we also upgraded the operating system of the XOs for deployment. After the upgrade, operating system now provides Nepali interface along with E-paath and other necessary activities in the laptops. Initially, we interns were upgrading the XOs and eventually new volunteers for Bajhang also assisted us making it a good team effort. With helping hands, we successfully updated operating system of 260 laptops in one and half day, fully preparing the XOs for deployment.

Now these XOs are on their way to the schools and I cannot wait and see students using these laptops in my next visit to Bajhang.

SchoolTool packaging for NEXS

SchoolTool is a suite of free administrative software for schools. Since it can be installed easily and used with no licensing fees, SchoolTool can be used by schools for a single purpose, by individual teachers or small teams within schools, or as a whole-school comprehensive student information system, encompassing demographics, gradebooks, attendance, calendars and reporting. (Source:

In our continual effort of improving our systems and providing tools to support digital education, we were presented with a new requirement — providing schools a software based tool for classroom management and grading. After evaluating a few available tools, we encountered SchoolTool which was the foremost candidate meeting most of our criteria:

  • Web based
  • Different user levels: admins, teachers, students
  • Student information system
  • Calendars
  • Attendance
  • Grading
  • Localizable
  • Open Source

Though being the right candidate, SchoolTool had a few of the shortcomings for us — the tools is readily available (as a set of installable package) for Ubuntu only and had a lot of dependencies. As our plan to integrate the tool in the NEXS (School Server software based on Fedora Linux) infrastructure, a lot of packaging work had to be done, which included:

  • Developing a hierarchy of dependent packages for schooltool and its plugins.
  • Finding source tarballs for each packages.
  • Writing RPM spec files for each package and build binary RPMs against the spec.
  • Testing the setup.

It was daunting to perform all of the tasks manually, so we followed a semi-automatic approach — a script based automation and manual intervention where necessary. But writing spec files for building RPM packages for each dependency had to be manual, meanwhile a difficult task as well. Hopefully, we need not have to author spec files for around 80 dependencies; thanks to Robin ‘Cheese’ Lee for writing a few of them. Nevertheless the rest of them had to be authored, built against and tested; and it took us a good time performing these tasks iteratively until we arrived a stable stage. Now we are ready to pilot SchoolTool (localized in Nepali) in a few of the OLPC deployed schools.

We have built binary RPM packages for Fedora 13 and Fedora 9, for both 32 and 64 bit architectures. Additionally to encourage developers to test their own builds and to contribute in porting the tool to Fedora based distributions, we have made the packaging sources available under non-restrictive license. If you would like to test my builds, the RPM repository is hosted at Also there are ready to use repo files for Fedora’s yum package manager. To set up the repository:

The packaging sources (spec files and patches) are available at my git repository at We would like to see more people testing our builds and our specs and reporting back bugs. HAPPY TESTING!!

Teacher Preparation Program for the OLPC Project Part II

We have just completed Part II of our teacher preparation program. The complete teacher training consisted of two segments:

Part I) A 4 day intensive residential, out-of-school training that focuses on integrating digitial educational materials and ICT-based teaching approaches in the regular classroom instruction process. This was completed on April 1, 2008. An earlier blog post has details about this segment of the training.

Part II) A 4 day training in the teachers’ regular classrooms where they get hand-on experience in developing, implementing, and fine-tuning child-centric, interactive, ICT-integrated lesson plans. This was completed on Friday, May 2, 2008. The current post is about this segment only.

Training location

For Bashuki teachers, the training was held at Bashuki Lower Secondary School itself. Similarly, for Bishwamitra teachers, it was held at Bishwamitra Lower Secondary School.

Why in-school training?



The residential portion of the training did give the teachers some experience in integrating E-Paati in the classroom process (apart from making them completely familiar with the use of the laptop). But the simulated classroom environment in any residential training is a far cry from the actual setting in their own schools. Furthermore, since each school is very different in terms of physical infrastructure, student composition, community involvement and other resources, there are unique practical challenges associated with each school. So we felt that it would be very useful to give teachers hands-on experience in integrating E-Paati in their regular classrooms.

There is another important reason why in-school training is important in this case. In most teacher training programs, it is possible for teachers to learn about new approaches to teaching outside their school (for example, through practice teaching in another school) and they can take this knowledge to their own classrooms later. But in the present context, successful implementation in the classroom also requires the students themselves to learn about the new approach to learning and teaching. And this can only happen in the school where the laptop program is being implemented.

Structure of the training

Each day of the training was divided into four major segments:

1. Lesson plan review and revision

  • Content: group review of lesson plan for the day.
  • Participants: all the teachers in the schools + facilitators from OLE Nepal
  • Time allocated: 1 hour (before the start of classes)

2. Classroom instruction and observation

  • Content: classroom teaching according to the lesson plan
  • Participants: teachers (one teacher teaches the students; the rest are observers) + OLE Nepal observers + students
  • Time allocated: 3 to 4 full class periods (one period = 45 minutes in Bashuki; one period = 40 minutes in Bishwamitra)

3. Feedback

  • Content: discussion on the day’s experience (strengths, weaknesses, recommendations for improvement)
  • Participants: all teachers + OLE Nepal facilitators
  • Time allocated: 1-1.5 hours

4. Lesson planning for the next day

  • Content: development of a detailed lesson plans for each class
  • Participants: teachers delivering the lectures in these classes
  • Time allocated: 1 hour

On the first day of the training (Saturday, April 26), the teachers focused on teaching the students how to use the laptop and the E-Paati activities in the laptop. This was done in two 1.5 hour long sessions.

During the remaining four days, the teachers conducted regular math and English classes in grades two and six according to the ICT-integrated lesson plans they developed. At Bishwamitra the ICT-integrated classes were held on Sunday (April 27) , Monday (April 28), Tuesday (April 29) and Wednesday (April 30). Bashuki conducted similar classes starting Monday (April 29). But since they had decided to keep the laptops in school for this first week of classes, they set aside Wednesday (April 30) for giving students more practice on how to use the laptops. They had a break on Thursday and completed the training program on Friday (May 2).

Overview of content covered in the training

Lesson planning: Integrating ICT-based educational materials in the classroom requires teachers to carefully plan their lessons. We wanted to give the teachers a very simple framework for developing lesson plans so that they would continue to use it even after the training. If they were to use it throughout the year, they would have to see that planning the lessons would not really take up too much of their time—and that it would help them in their other classes as well.

Each lesson plan in this training consisted of the following: a) listing of the learning objectives of the class, b) listing and brief descriptions of the topics or activities to be covered in the class, and c) listing of time allocated for each topic or activity. E-Paati activites were integrated in each lesson plan as one of the many activities covered to meet the learning objectives of the class. We emphasized that the goal should be to integrate E-paati in the classroom lesson plan; not devise a lesson plan around the E-Paati activities. As a rule of thumb, we emphasized that E-Paati use should not take up more than 40% of the total time allocated for the class.

Lesson plan review and revision: The lesson plans developed were critically reviewed and revised by all the teachers together to make sure that a) the learning objectives of lesson were properly clarified, b) the topics covered—including E-Patti topics—were consistent with the stated learning objectives, and c) the time allocated for each topic/activity was appropriate.

Classroom instruction and observation: This segment of the daily training was designed to (i) give subject teachers hands-on experience in teaching according to the integrated lesson plans and (ii) enable other teachers to critically examine the teaching-learning process in the regular classroom. Hence, while the subject teacher was conducting the lesson, the other teachers noted down their critical observations in the following areas:

a) Classroom structure (including appropriateness of seating arrangement, placement of charging racks, seat assignment schemes etc.)

b) Correspondence between lesson plan and practice

c) Time on task (effective use of time from the perspective of student learning)

d) Interaction (student—student; student—teacher) and participation of students in the learning process

e) Instruction delivery (clarity, adequacy of explanations, …)

f) Time and classroom management (including tackling disruptive behavior on the part of students)

Feedback session: Feedback sessions were held at the end of each day to critically review the classroom process. The teachers delivering the lectures worked with the observers to analyze the strengths and weaknesses of the classes held that day focusing on the six areas listed above. Through these discussions, the participants were able to identify areas that needed improvement and develop strategies for tackling problems.

Grade 2 students at Bishwamitra (English class)–totally into it!

Bishwamitra grade 2 students working away

Grade 6 students at Bishwamitra (math class)

Bishwamitra grade 6 students working intesnsely-1

Staff involved in the training


  • Saurav Dev Bhatta and Rabi Karmacharya (all five days)
  • Kamana Regmi (three days); Bipul Gautam (one day).

Most interesting outcomes

  • Grade 6 students in both schools took just one day to become familiar with using the laptops!
  • The children at Bishwamitra were allowed to take the laptops home immediately after receiving them. The children at Bashuki, however, did not take the computers home this first week. This decision was made by the respective school administrations. Not surprisingly, we observed that the Bishwamitra kids were much more familiar with the machines by the second day of the training. The difference was more pronounced in the case of grade 2 children—it took two days for the Bashuki grade 2 students to get the hang of things, while it took the Bishwamitra kids only one day.
  • In both schools, the teachers had no experience in designing and using systematic lesson plans. They were very appreciative of the experience they gained during this training period.
  • One of the main challenges teachers initially faced when designing ICT-integrated lessons was in focusing on the learning objectives rather than on the E-Paati activities.
  • The biggest difficulties faced by the teachers in the classroom were a) getting the attention of students and b) managing the time. Once the students had the laptops in front of them, they were generally oblivious to what the teacher was saying. It was, therefore, very difficult for the teacher to cover all the material that needed to be covered in that class period. For example, on the second day of the training, the classes ran up to 30 minutes overtime on the second day of the training.
  • It was much more challenging for the teachers to get the attention of the grade 2 students. In fact, on the first day, there was chaos in the grade 2 classes in both schools!
  • Initially, just the process of getting the laptops from the charging racks and putting them back after use took up a significant amount of time.
  • The most effective ways of getting the attention of students were as follows: asking all the students to close the laptops; asking them to clap together, or stand up and stretch together; producing an alien sound that would grab their attention (for example, rattling a can of marbles).
  • In the case of grade 6, by the end of the training, the teachers had completely figured out how to efficiently and effectively conduct E-Paati integrated classes within the time period allocated for the class. But they felt that it would perhaps take another week for them to fine tune the classroom process in grade 2.
  • Bishwamitra teachers Manoj (who teachers grade 6 math) and Bhim (who teaches grade 2 math) were naturals at designing and implementing E-Paati integrated classes. Very impressive!
  • The teachers in both schools felt that the most useful parts of the training were the feedback sessions at the end of the day and the lesson planning sessions.
  • The biggest technical problem during this period was the jumpy cursor. The problem was particularly bad at Bashuki. This is something we have to fix!!

Grade 2 students at Bashuki–a different seating arrangement!

Bashuki grade 2 students-1Bashuki grade 2 students-2

Grade 6 students at Bashuki

Bashuki grade 6 students-1

Our main “mantras” for the training

  • The learning objectives should determine when and how E-Paati is used in class, not the other way round
  • E-paati should be viewed as one of the many tools and activities used to achieve the learning objectives
  • The goal is to integrate E-paati in the classroom lesson plan; not devise a lesson plan around the E-Paati activities
  • Effective classroom management can make the class; ineffective classroom management can break the class
  • Proper lesson planning is the key to successful integration of E-Paati in the classroom
  • End-of-the day group review of lessons is the key to improvement

Saurav Dev Bhatta, Education Director

How to (hack) customize a built for XO.

The problem we faced: We needed a customized built for all our XOs that would have the default language set to Nepali, the default jabber server set to a local server, a set of activities to match the grade level of students, and some other stuff. We’ve been harassing OLPC developers to get a script that would do all this on install time so that we didn’t have to manually do this on every machine. Also, we wanted to make sure that a teacher with limited technical knowledge should be comfortable in re-flashing the XO if/when needed.

The solution: After playing with it for a little bit and with some help from Ties, I figured out a really easy way to achieve this custom built (provided that you can get into the firmware). Well, not really a custom built—but will do the job just fine.

Here is how:

Get a XO and install the activities you want and change the language and jabber server to match you needs.

  1. You can use the USB method or use sugar command to install activities.

  2. To change your jabber server by editing the default sugar profile

  3. Change the language to your language by either editing the .i18n file or by using sugar-control-panel -s language <your language> command.

Now, go to /home/olpc/.sugar/default directory, and delete a file named config . The reason to do this is so that next time you use this image on other XO s they can put in their own nickname and not have to use your name. This is the file that will be checked by sugar to see if a user named is configured, if this file is not present, it will prompt you to give your XO a name and choose color etc.

Next reboot the XO , press the x button and get into the firmware.

Now make a nand image of this machine on a USB stick with the save-nand command. It will create a img and a crc file associate with the image.

Wa la …we got what we wanted. An image that can be installed on our XO with the language, activities and server we wanted. All we have to do is just install this image on all other XO s to get the exact same settings. This simplified the process, and is pretty easy for everyone to do. We are using 698 built as a base so we still had to go the firmware and do a copy-nand to install the image. It will be great if someone can make a for this built so that the whole process of installing goes back to pressing four game keys.

What are the drawbacks of doing this? I don’t know :)!! If anyone does leave a comment.

Let me know what you guys think.

School Server Network Structure With Squid


Here is the network structure for the school server with proxy setup.

# vi /etc/sysctl.conf

net.ipv4.ip_forward = 1
service network restart

Then ip-forwarding through ip-tables

# iptables –table nat –append POSTROUTING –out-interface eth0 -j MASQUERADE
# iptables –append FORWARD –in-interface eth2 -j ACCEPT


install and cofigure squid


http_port 3128 transparent
hierarchy_stoplist cgi-bin ?
acl QUERY urlpath_regex cgi-bin \?
cache deny QUERY
acl apache rep_header Server ^Apache
access_log /var/log/squid/access.log squid
hosts_file /etc/hosts
refresh_pattern ^ftp: 1440 20% 10080
refresh_pattern . 0 20% 4320
acl all src
acl manager proto cache_object
acl localhost src
acl to_localhost dst
acl SSL_ports port 443 563 # https, snews
acl SSL_ports port 873 # rsync
acl Safe_ports port 80 # http
acl Safe_ports port 21 # ftp
# Add more acl rules here if we want more
acl purge method PURGE
http_access allow manager localhost
http_access deny manager
http_access allow purge localhost
http_access deny purge
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access allow localhost
acl lan src
http_access allow localhost
http_access allow lan
http_access deny all
http_reply_access allow all
icp_access allow all
visible_hostname sugaroffice.ole
always_direct allow all
coredump_dir /var/spool/squid

Direct port 80 requests to squid listen port (On the machine runnning the cache server)

iptables -t nat -A PREROUTING -i eth2 -p tcp –dport 80 -j DNAT –to
iptables -t nat -A PREROUTING -i eth0 -p tcp –dport 80 -j REDIRECT –to-port 3128

Comments , corrections  and  ideas are  welcome.

Moodle on school server

I am putting a few moodle screenshots, that shows the idea of separate grouping. Lets say there are three users: Admin/teacher, user1 and user2 (students in grade 2 and grade 6).

The teacher will see this on his/her moodle screen:


This is what user 1 who belongs to group class 2 will see:


And this is what user 2 who belongs to group class 6 will see:


When you click on the course class 2 or class 6 it will take you to the modules available within that course. So its not acutally a course design, but an easy way to mange resources for kids who might have very basic or no knowledge of using a tool like moodle.


This grouping is easy to do, and can be used to manage different age group of students. Each grade level can have a separate group and work with in that group. It becomes easier for teachers and administrator to manage resources accordingly. It will be great if we can get a Nepali language package, so that things can be displayed in Nepali. I don’t know if English as a medium of communication will discourage kids to use these features.

So, the idea is to create some sort of auto-login, that will take say user1 (when he tries to access http://schoolserver/moodle) to the page shown above for group class 2 . He need not remember his login, or know how to get to his course pages. If we can somehow tie this auth feature to the XO, that will be even better.

Comments, and ideas are welcome.



Our Plans for the School Server

Below is an e-mail that I wrote to several of the OLPC mailing lists. It was supposed to be a concise summary of the work we are doing on the school server but it ended up being way to long. I have posted it here because blogs are perfect for overly long messages.


The purpose of this e-mail is to let the wider OLPC community know what
we are planning for the school server in Nepal’s spring test school and
to solicit your ideas on what we can do better. Sulochan Acharya and I
are leading the work on the school server for the test school. If you
are interested to learn who the heck we are, skip to the end of this

Sorry for the overly long e-mail but I think Sulo and I and have not
been sharing enough of our ideas w/ the rest of the OLPC community. So
it was time for a brain dump
Our Ideas for the School Server

1. Backing up Student data and sharing information:

We are looking to use WebDav to back up the individual student’s home
folder to the school server.

Sulo will work this week on stripping down Moodle to bare bones for
sharing materials and general content management. Right now we are
considering using one acct for everyone. We don’t have any existing
Moodle courses in Nepali so we aren’t looking to deliver courseware
through Moodle.

Apparently, the guys at OLPC India are using drupal for content mgt. I
like Drupal but it seems to offer way more than what we are looking to
do: Share files, share projects, share documents. We’d like to see how they are using it.

How do we store team projects for later use? Perhaps the Journal will
allow us to do this in the future but I have the impression that it is
still under heavy development. Perhaps, the journal already handles this
well and I am simply misinformed. Please disabuse me of any false

1. Does the School Identity Manager support LDAP? LDAP support is
essential for integrating existing content management systems w/
the School Server.
2. How do students share team projects for later use? For example,
Laxmi and Arun are working on an essay together. Laxmi started
the document and then shared it through the mesh w/ Arun. Arun goes home and
wants to work on the paper by himself for a while. He is
connected to the mesh but Laxmi’s XO doesn’t appear in the mesh
view. Can he still edit the document?

2. Digital Library
There isn’t much Nepali digital content on the Internet so part of OLE
Nepal’s work will be to digitize poems, literature, histories, etc. and
store them “somewhere.” Finding the right “somewhere,” turned out to be
more difficult than we thought. We needed a repository that could
support multiple front-ends, w/ simpler front-ends for novice users and
more complex front-ends for the people that will load content into the

This may sound like overkill to a lot of people but that is because they
are accustomed to the abundance of materials in their own language on
the Internet and/or access to physical libraries. There are very, very
few public libraries in Nepal and Nepali-language materials on the
Internet are quite limited. We don’t want to have to change out the
back-end repository 6 or 12 months from now if we choose something that
can’t scale.

We looked at Dspace and Eprints before settling on the fedora repository
server, not to be confused w/ fedora Linux. We
like fedora because it is a very powerful back-end repository that is
very scalable, up to 10 million objects. It is a true web service that
is decoupled from the front-end. We wouldn’t be telling the full truth
if we didn’t admit that we chose fedora in part due to the awesome
implementation of it by the Encyclopedia of Chicago

We need to support multiple representations of a single object w/ in the
repository. For example, we need to allow users to access Nepal’s
constitution as both a .pdf file and as an .xol bundle. We have to
support non .xol bundles because we want people w/out XO’s to still be
able to access the library. Fedora lets us do this.

The problem w/ the fedora is that the off-the-shelf user interfaces are
fairly difficult to set up and maintain. Right now we are using
It is a great front-end but was fairly time-consuming to install and
customize the interface.

Since the installation and maintenance of a fedora repository is fairly
complex we will try to use a centralized server and smart caching on the
school servers.

Matt Zumwalt of MediaShelf has been
extremely helpful to us in working w/ fedora. I need to enlist his help
to figure out how to represent .xo and .xol bundles in the fedora

Issues for the Digital Library:
1. We will need the School Server to aggressively support caching
of requests from the library
2. The .info file format for content and activity bundles is not
XML. Ivan told me recently, “XML is a solution to a problem that
doesn’t exist.” Perhaps he and Eric Raymond are right, but we
need to a way to represent .xol metadata in the fedora
3. .XO bundles don’t currently support Dublin Core metadata, the
standard for digital archives. I will be discussing this later
this week w/ SJ. For more about Dublin Core, read here
4. We need LDAP support on the School Server so users can access
their stored searches and virtual “book bag” of previously
accessed materials.

3. What our team needs

10 more XO’s
2 active antennas

We really need about 10 more XO’s and 2 active antennas. I will be in Cambridge this Thursday and Michailis has generously already offered to
give me two. We really need more XO’s to test out the mesh and for our
development team of 4 people. I believe that Sulo is filling out the XO
request as I write this e-mail.

Our development team does way too little testing of our activities on
actual XO’s because we only have 2 working XO’s at the moment. The
result is that we don’t diagnose performance problems for our activities
until far too late in the development cycle.

About us:
Open Learning Exchange Nepal is a local Nepali NGO that is part of the
grassroots OLPC community in Nepal. We have an agreement w/ the govt of
Nepal to help them implement OLPC at a Nepali school this April and
later in the fall at a larger # of schools. Sulochan Acharya and I are
working on the school server. Dev Mohanty of Nepal Wireless may also
spend a lot of time working on it w/ us.
There is also a development team at OLE Nepal of 4 people working
full-time on constructivist EToys for Math and English. They are working
hard to involve students, kids, and teachers in developing more

There is also the larger FOSS community that is contributing to OLPC in
Nepal. If you want to know more go to

There’s more that we are working on but don’t have to time to write
about right now. Thanks for reading to the end of this message! Any comments, suggestions, ideas, or constructive criticism would be most appreciated.

Bryan Berry
OLE Nepal