School building design endorsed by DUDBC

One of OLE Nepal current projects is the reconstruction of 5 schools in Gorkha, that were damaged during the April 2015 earthquake. After site selections, community interactions, and approval for the project from all district and national level authorities, the building designs were prepared and finalised.

OLE Nepal’s Gorkha Schools Reconstruction Project’s structural design was then approved by the Department of Urban Development and Building Construction (DUDBC), meeting all the building codes for safe school construction. DUDBC has also endorsed the design to the Department of Education. Now, Nepal’s Central Level Project Implementation Unit (CLPIU) and the Ministry of Education (MoE) own the school designs, and any organisation interested in school construction are able to use the building design. The school reconstruction project designs can be accessed HERE

E-Paath & E-Pustakalaya on Department of Education’s Notice to Schools

 Newspaper Announcement

Nepal’s Department of Education (DoE), under the direction of Nepal’s Ministry of Education (MoE), publishes national education related news, notices and all important information on the national newspaper, Gorkhapatra, as a means to disseminate information to the District Education Offices, resource centers and schools, as well as students and teachers, across Nepal. On November 16, 2016, Nepal’s Department of Education published a notice to all ‘students, teachers, schools and District Education Offices’ of Nepal endorsing OLE Nepal’s digital content — E-Paath, and digital library — E-Pustakalaya. The notice urged all parties addressed to commence the use of all interactive digital content created and curated by OLE Nepal, in partnership with Nepal’s Department of Education, Curriculum Development Center (CDC), and National Center for Education Development (NCED), by visiting the digital library website at all

Volunteer Spotlight: Prajna Ho

OLYMPUS DIGITAL CAMERANamaste! This is Prajna, from Hong Kong. I would like to thank OLE Nepal for giving me the chance to assist in the quality education in digital learning advocacy efforts. After having a week service trip in Nepal last year, the profound experience had triggered my motives and ideas to support the development of children’s education in the region, therefore, I designed another visit to Nepal after my graduation and before taking any full-time work, as my graduation project.

With the specific concern of the quality of education, I had been thinking of any social projects that can be facilitated for creating a better learning environment in Nepal. Having observed the major differences of education received in developing and developed regions, I would like to say that the accessibility to the Internet and quality content have largely determined the level of empowerment of one’s self-learning. The idea of donating laptops has come to my mind and that had motivated me to support Open Learning Exchange Nepal (OLE Nepal) who has been working on this social cause.

Before leaving Hong Kong for Nepal, I received an introduction of One Laptop Per Child (OLPC) project by the board member of OLPC Asia, Mr. T. K. Kang. I picked up the whole picture about the structure of OLPC project before my service in OLE Nepal. The pedagogy behind OLPC with the hardware design of XO Laptop plus the open-source Sugar system are appreciated and impressive, enabling children to learn by themselves, applying the concept of “Constructionism”.

Throughout the volunteering period, my service duty was mainly on Communications and Social Media. Thankfully I got the chance working on a strategic design of the social media and communication plan with the Communication Officer, Trishala and some more colleagues. I was also working on the implementation of content writing and media curation for advocating the E-Pustakalaya (E-Library in English) to the local community.

E-Pustakalaya is an education-focused, open-sourced, interactive digital library for all Nepali & English readers. The development of E-Pustakalaya follows a philosophy that provides quality education in Nepal through creating an interactive learning platform for users while collecting learning sources from widely-recognized institutions from the local and international community.

Definitely, the provision of digital library has given children new forms of learning, while both teachers and parents are able to access the resources without spending a penny for the quality teaching content and facilitation of interactive education. I appreciate that OLE Nepal is acting as a manager to manage the all-rounded learning experience for young learners in Nepal, supporting digital content creation – designed based on the national curriculum, platform management and teaching training. I see the existing and potential impact of this organization’s work in the country.

Having accessed to the Google analytics of the several websites, I was surprised to know the online library has been used by Nepalese and English readers from all over the world, users covering different continents.

I am glad that I could present in a meeting about an international-scaled fund deployment, it has enabled me to understand more about the NGO landscape and fund-raising considerations from the project donors. Funding is the important element to sustain the operations of most of the social projects which bring long-term social benefits.

Of course, self-initiation had a positive impact to my service experience. Proactive learning has brought me much more exposures, such as visiting the annual Kathmandu book fair and local community library.

After the period of mutual understanding and interactions, I found the colleagues in OLE Nepal are competitive and collaborative. They are open-minded and proactive to understand my observations of what I had been witnessing in those few weeks and what OLE Nepal has been working on.

The organizational culture is amazing; the management is generally much similar as the western-style. It seems voices from every co-worker can be respected and concerned. The hierarchy is not apparent; the culture is unexpectedly open. Employees are autonomous, independent and are strong team-players. I witnessed the systematic style in their collaboration, not only by the interactive and transparent communication tool but also the progress monitoring system across departments. I appreciate the work-life balance the colleagues have achieved since I presented at their birthday party for their colleague, as well as some after-work chill out and site visits.

13600164_10154240367830822_2699364360632631745_nA Chinese saying goes: “Never reject anything virtuous for its pettiness”. Truly, what I have realized from the experience is that: when you come across the right thing happening in front of you, no matter how big or how small that you think your impact can be, go and follow what is right and support the happenings rightly.

I would like to hereby thank all colleagues in OLE Nepal for facilitating my learning and showing your hospitality to me. The road to the mission is long, tough and full of obstacles. I deeply appreciate their hearts and commitments to work for some positive impact to the community. Their passion has led the OLPC project pass through milestones in the past decade and will continue in Nepal for many more.


Presentation on Network Security and Vulnerabilities

Yesterday I decided to share with the team an overview of a Wired and Wireless Network and how certain loopholes in them can pose a threat to our data and confidential information. Due to lack of time I could not cover, “How to secure the network from such vulnerabilities” Which I hope to cover another time along with Web Server Security.

Below are the topics that were covered during the presentation.

Network Analyzer and Sniffers:
An overview of Wired and Wireless Networks & key distinctions between them.
Wired Equivalent Privacy (WEP) on wireless networks.
Gateways and Routers.
Address Resolution Protocol (ARP) and how ARP requests could be re-routed to a specific MAC.
Mac Cloning, Ip Spoofing.
Creation of fake RSA certification for a MITM (Man in the middle) attack.
MITM attack with ARP poisoning and Denial of Service (DOS).
Decryption SSL dumps.

DEMO given on the above, to read captured passwords from a live ssl session over Wired/Wireless Network.

Remote administration tools:
DLL injection.
Firewall bypassing methods even over NAT.
Browser Hi-jacker.
Anti-virus bypassing methods with the use of Compilers, Packers and Compressors.
Anti-virus Signatures.

Demo given with a Yahoo IM Trojan with DLL injection capabilities and how confidential information could be retrieved without the user knowing off it.

Later had a feedback from the guys, that they had thoroughly enjoyed the presentation and were looking forward to more of such stuff in the future.

Load/Stress testing web server with Apache JMeter and Apache Benchmark.

Stress testing a web/application server is never an easy task. Having never done any intensive server testing before I got into load testing our e-library server with some obvious but important questions in my mind. What kind of tools are available? What kind of tests can i perform? Will I be able to make sense of the data from the result? and Will it actually apply to real scenario–will my server behave exactly the way it would during the test?

These are simple questions for an experienced administrator, but for someone just getting into performing such test, it seemed a fairly daunting task. So lets start with the things we want to test and the server side applications to test.

The e-library is an online library system that run on Ubuntu 7.10 desktop (I am planning to change this to Ubuntu 8.04 server–mainly because I don’t want the desktop applications to take up valuable
memory away from the server applications). The e-library uses fedora commons as its library engine, and has Fez as its GUI. Fedora commons also uses Tomcat a Java application that talks to apache, but can also act a server on its own. More on “e-pustakalaya” or e-library later.

So the things that we really want to test are.
1. Avaliablity of the web-server: One of the main thing (among others) that we want to make sure that apache does or does not– depending on the way you look at it– is the way it handles max client and the keeepalive time for clients connected. It is a good practice to set the max clients to a high number ( = total memeory/5Mb), and keep alive time to as low as possible(=2). Take a look at this virtualthread blogpost for a good overview of how these parameters effects your server.

2. Resource Utilization: One thing i have noticed is that my server had a huge overhead on CPU and my memory was down to 12Mb free, which caused the server to crash. This happened when i simulated a 100 user connection making one new connection every 10 sec….fetching a 1.4 Mb pdf file. So hardware really matters, and it is really a good idea to optimize apache and any application service for your hardware specs. Reading memory usage and CPU load is a tricky thing. I found out that the memory information that say $top gives for a process is not actually correct view of what that process is doing. Similarly, making sense of load average and CPU% requires a little more knowledge of the Linux system.

Load average = Is the CPU load. It gives information on the number of processes waiting to run + the number of processes executing. It is not about CPU utilization but the total queue length.
This article from Linux journal gives a nice idea about load average.


3.Response time test, Throughput test and Error rate test: These are probably the main areas to focus while performing a load test. To do these one should look into one or all of the following.
a)User-based testing: Where you get many users to use your server and monitor the performance.
b)Standard benchmarking: I used Apache benchmarking tool for this. Apache benchmark can give you an idea of how many request per second your apache server can handle.

For example:
$ ab -n 10 -c 10
Will have 10 concurrent users and 10 request of get index.html on your web server.


$ab -t 60 -c 10
Will have 10 concurrent users for 60 secs with as many hits as possible, by default when you
don’t use the -n option, ab sets to default 50,000.

You can also use a -g option to get the output on a txt file to use for gnuplot.
$ab -n 10 -c 10 -g test.txt

Apache JMeter
From Apache website:
Apache JMeter may be used to test performance both on static and dynamic resources (files, Servlets, Perl scripts, Java Objects, Data Bases and Queries, FTP Servers and more). It can be used to simulate a heavy load on a server, network or object to test its strength or to analyze overall performance under different load types. You can use it to make a graphical analysis of performance or to test your server/script/object behavior under heavy concurrent load.”

So lets take a look at some of the thing we can do with JMeter. After the installation of JMeter, run it under a Linux system with /path to your jmeter/bin/ ./jmeter
A JMeter window will open, which looks something like this:


Use the Options->Expand All option to see your full tree.
Now set up a test scenario (refer to JMeter user page). After you run the test you will see (if you use the output graph result as one of the listener) something like this (Two pictures for two different run with same number of users and loop).


So when I am doing stress test, I am mostly paying attention to the throughput and average output results for now. Needless to say you want your server to handle as many request per minute with less error rate (you can check this by adding a summary report to your listener)and high KB/sec throughput, but you also want to see consistency. If you look the two runs it shows a similar result. Thats exactly what we want to see. We want to see a consistent pattern for load, memory and other things. Any erratic behavior should indicate a poor performing server. I would say its a good idea to check both load with $top or $uptime and memory and cpu usage while performing these tests. This will give you an idea about your server’s threshold before it overloads. JMeter is pretty cool because you can run different kinds of test on your server. Once again check out the JMeter page for more information.

Other tools for performance and functional testing can be found at opensourcetesting.
For Load Balancing:
1. mod_backhand is used to redirect requests from one server to another. Is used for cluster load balancing.
2. Load balancing with cluster apache setup with Round Robin DNS.

Say you setup two machines with ip and
Now on the DNS server have two entries for your server: A A
The DNS will distribute incomming requests between these two.

Any corrections to these or new ideas and methods for server load/stress testing is welcome.

School Network Update

Over the last few of weeks the networking team has been working hard in getting together a concrete plan, to connect the pilot schools. The network had to be both cost effective as well scalable. So, with all the options available it was decided to connect the schools and the relays over Wireless with cheap point to point Wi-Fi radios from the Kathmandu Valley.

First we conducted field visits to the schools and the Dept of Education (DOE) in the valley and the surrounding area to collect GPS data. Which helped us a great deal with the network design and also chart out the various relay points we could use in places where we didn’t have direct line of sight with other network nodes.

We are using Deliberant brand of radios for the point-to-point connection to the Department of Education. The radio have an effective bandwidth 8 Mbps in the 802.11b standard. The radios from the schools are transmitting at an air distance of 4 km to the DOE located in the valley, which is right next to the international airport, so we’d figured we would be having interferences.

DOE relaying to schools

We are using 12 dbi omni-directional antennas from Deliberant Networks, on-site at both schools, powere by a DLB2701 radio. We decided not use the Active Antennas, as they didn’t quite perform upto our expectations. The 250 mw radio is the access point for the XO’s. It costs roughly 150 USD and has a range of 12 km in ideal conditions. We also do not intend to use VSAT for any of Nepal’s pilot schools. Though installation is not terribly expensive but monthly bandwidth charges are prohibitively expensive when compared with the cost of long-range wifi networks, as pioneered by Nepal Wireless Project.

School network

Below is the connectivity diagram between OLE-DOE and the pilot schools. DOE is connected to Ratobangla School in the valley over Canopy radios. And further relays to both schools with a 19dbi Deliberant radio. The radio at DOE is being used as a point to multi-point radio, as it connects to both schools simultaneously. Since both schools do not have a direct line of sight with DOE, we are using relay centres about 100 meters away from the school buildings. OLE is connected to Ratabangla school over a VLAN network installed by Subisu Network, connected at 1/1 Mbps intranet and 256/160 Kbps internet access shared with both schools.

The school servers would be installed on-site at both schools, while we have a proxy and the E-library setup at DOE. We would also be setting a cache server at DOE to save on the bandwidth and plan to monitor usage from OLE across the network while also uploading new educational material as and when ready.

OLE Network

Below are some of the daily notes taken down while setting up the network.

[15th March 08 Update]
We got an 16dbi Deliberant installed at DOE. Being a hazy day, the hills where the schools were located were pretty much next to not being visible. So getting the angles right was all the more challenging, as this relay needs to be broadcasting to both schools simultaneously. And unlike a Canopy a Deliberant radio can broadcast to different relays within an angle of 60-70 degrees. So let’s hope we’ve got it right, which we’d know once at Bashuki.

[19th March 08 Update]
We installed an 19dbi Deliberant at DOE and removed the 16dbi radio. We’re now connected to the school at 70 dbm Rssi and 0% packet loss, which is just what we needed.

Right on the hill-top there is an army base which is about a 100 yards away from the School. The army base has direct line-of-sight with the Department of Education, in a range of 3-4 km air distance.

We plan to mount a Point-to-Point radio for Bashuki School either at the adjacent Military Post or on a tree situated on a high hilltop. The radio located near Bashuki will connect to a multi-point radio located at the Department of Education, 8 km (by road) east of the school and in direct line of sight.

[25th March 08 Update]

Rabi n Mahabir clamping Cat6

We were back to the school to complete this end of the networking. Which required us to fix a relay from DOE at the Army outpost and get it connected to the school and also setup an omni antenna as an AP for the XOs. After half an hour of diplomatic talk with the Army officer in-charge of the barrack, we were finally allowed to setup it up. Since we could not use power from the barrack. We decided to run a cat5 cable across to the school about 100 mtrs away to power up the radio over POE from the switch at the school. For certain reasons the 16di radio refused to power up, and we had to use the 19dbi radio instead as the relay which gave connectivity at 72 dbm rssi 0% packet loss. That was the highlight of the day, as the omni radio too refused to power up, so we didn’t get to install it.

Seting Radio at the Army camp

Prior to leaving we did install a battery and an UPS with the XS connected to the switch, though it all needs to be thoroughly tested. Maybe in a couple of days, when I get there next to install the omni radio.

The school itself is a bad location for our long range antenna as it is nestled into the hillside. It does not have line-of-sight with the Department of Education. Instead we are using a house located on the hill opposite the school as a Relay site.

The owner of this house has generously agreed to let us mount our network equipment on his house. We will place the Point-to-Point antenna in the topmost window, which has a line-of-sight view with our Multi-point radio at the Department of Education. We will place our omni-directional antenna on the lower part of the roof facing towards the school. This house is roughly 100 meters from the school. We will have to test the signal strength within the classrooms. If it is too weak, we will run a Cat 6 cable down to the school. We also like putting the antenna in the house because the antenna will less likely be stolen.

Relay house at Biswamitra

[16th March 08 Update]
We headed off to Bishwamitra School, this time we were accompanied by Mahabir Pun, Rabi & Sulochan. Mahabir had been approached by a TV company, who needed some shots of him working on site for an ad campaign. So we decided to to club in and take the crew to Jyamirkot as we needed to install a couple of radios there for the school.

It was an hours ride to the base of the hill and a 15 mins trek up with all the equipment. We were welcomed by the school authorities, who got busy right away arranging for electricity for the house where we’d decided to get the radios installed. Believe this house had not been inhabited in quite a while and was completely empty.

We had a jolly good time unpacking and getting the radios fixed up while the film crew was busy shooting us at it and with our brilliant acting skills, the crew needed no retakes! Once they had their shots we got to some serious work.

Mahabir fixing the radio

The 16dbi radio got fixed at the window looking out to the valley below, where DOE is located. Once installed we were able to connect to the other radio at DOE which had just been fixed the previous day. Though it needed a lot of tweaking to improve the signal and at best we got connectivity at 84 dbm rssi with 10% packet loss. So we decided that the radio at DOE needed a bit more tweaking or we might have to be change it to a 19dbi Deliberant radio. As Kathmandu International Airport happens to be right next to DOE, we’re assuming it might be causing a lot of interference and hence the packet loss.

Rabi n Sulo fixin omni

Rabi and Sulo got the Omni antenna fixed by the side of house facing the school. This 12dbi antenna is attached to a DLB2701 access point, which is a 250 mw radio. Sulo had taken a XO with him to test the AP range and was satisfied with the signal around the school and the village. If required we would also enhance the signal by adding a reflector to the omni facing the school to make it work as a sectoral antenna.

With the omni working out to our expectations, we’re glad that we didn’t have to use the CAT6 cables that we had taken along with us. As it would have been a herculean task having to connect it all the way to the school from the relay.

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.