View low bandwidth version

Archive for the ‘Uncategorized’ Category

Starting and Stopping VNC with Fabric

Wednesday, July 13th, 2011

We wanted to have a VNC server for client demos and for remote pairing on
tasks.  Our old VNC server was in the office, so the bandwidth available to
anyone outside the office was pretty poor, leading to a pretty bad experience -
lots of lag between doing anything and seeing the result, slow screen updates
etc.

So we’ve now set up a server with Linode for running VNC sessions. To make it
easy for clients to connect for demos we’ve setup two ways to connect to the
VNC session through their web browser – a java applet, and the excellent
guacamole servert (which uses the HTML 5 canvas element).

As the web connection is available, we don’t want to leave a VNC server running
all the time, as that might be a security risk. So we want our staff to start
the VNC server when they need it, and stop it when they’re finished. Of course
they have other things on their minds, so we decided to write some scripts to
make it easy for them to start and stop VNC.

The scripts need to be able to ssh into our VNC server, start the VNC server,
then start the VNC client locally. When the VNC client exits the script should
stop the VNC server. It would also be nice to be able to check what displays
are available and give sensible options if the default display is already in
use. Finally it would be good to be able to use an ssh tunnel – otherwise the
traffic all goes in the clear.

We decided to use fabric – a python project that is all about setting up remote
servers by running commands through ssh. And with a little code it can produce
ssh tunnels.

We’ve posted a snapshot of our code on a github gist. (We’ve changed a few
Aptivate specific values in it). You’ll also need to get tunnels.py and
generate your own copy of the vnc_passwd file with your own vnc password (see
man vncpasswd for details of how to generate it). Lastly here is the README for
how to use it.

Network monitoring planning

Thursday, February 10th, 2011

People have been trying to monitor their networks with pmGraph, without understanding how they might need to change the network topology in order for that to work.

I think it is essential to understand this before attempting to install pmGraph, to avoid wasted time and frustration. But it seems that the relevant documentation was relegated to an easily-missed link off the installation instructions. It was also difficult to read and understand.

I’ve just completely rewritten the installation planning instructions. They are relevant to any kind of network traffic monitoring, not just using pmGraph or pmacct. Comments are most welcome.

Facilitation Camp

Monday, August 16th, 2010

Aptivate is partnering with DecisionLab, LondonCreativeLabs, FutureInFocus and Reos Partners to put on  The World’s 1st FacilitationCamp.

FacilitationCamp is on Friday 20th and Saturday 21st of August. Book a place now, while there are still places left.

In Aptivate we have come to understand that facilitation and participation are key ingredients for any successful I.T. project. The benefits can run the other way too – I.T. can facilitate a community to participate in decisions that affect them. We are very interested in seeing communities in developing countries benefit from I.T. in that way.

We are very excited to be part of FacilitationCamp. Facilitating decision making, conflict resolution and building consensus are core skills we use every day. We are eager to share our experiences and learn from other in this important area.

The reality of Internet access in Africa

Thursday, July 8th, 2010

When we talk about making the Internet accessible over slow and unreliable connections, we speak from experience.  Our recent work in Zambia, for example,  taught us a lot about the realities of Internet in the field, in rural Africa.

We were helping to deliver hands-on computer training for 150 young Zambian women as part of our ongoing work with Camfed. The training was framed as an introduction to email; for many it was a first introduction to computers.

We did not expect great Internet connectivity. We set up  a local email system  for the training to avoid dependency on a good connection. While practical, this approach wasn’t ideal as we wanted to offer as much real experience of the Internet as possible.

The rural high school where we were working  has a small IT lab that is connected to the Internet through a directional WIFI link to a near by youth skills centre where there is a VSAT link to the rest of the world.

The environment was harsh for network equipment. The mains power supply was was poor, with regular cuts and brown outs. The school and skills centre both had back-up generators but these  were started manually and not always at the same time. The route to the Internet could not have been called reliable. Neither building normally had UPSs to condition the power to their network equipment, though fortunately we had brought some with us.

Adjusting the antenna to improve signal-to-noise ratio

When conditions conspired to supply power to all the right places, Internet access at the school worked, but it wasn’t great. A VSAT connection has an unavoidably high latency and costs prohibit high bandwidth connections. The  Internet connection at the school was a nominal 1Mbit/s with a 1:10 contention ratio which means we were sharing our satellite bandwidth with nine other user sites. This works well in countries with abundant Internet connectivity as network use is effectively intermittent and sharing doesn’t cause much degradation of service. In Zambia, and much of Africa, a connection like his is often shared between a number  schools, hospitals and telecentres, etc., meaning network use is almost constant. Our experience of bandwidth was often that of the worst-case: 12Kbyte/s.  Though we soon found there were more serious problems with the connection.

Corruption

The web is surprisingly forgiving over a lossy connection experiencing data corruption, and at first it was easy to dismiss slow page load times as a limitation of the connection. Though it soon became obvious that something else was wrong. The image above shows corruption to image data downloaded from a popular mapping site.

A web page with corrupted content can be simply reloaded, but when downloading Ubuntu packages to update a machine we found the md5sums weren’t matching.

The following tests helped us uncover network faults:

  • Pinging hosts on the Internet route using a larger packet (-s packet size).
  • Downloading a large file with a known hash and comparing the computed value. If the hash value didn’t match, then repeating the download and checking if the computed value has changed.
  • Using MTR to see at what router packet loss is occurring.
  • Using Network Diagnostic Tool from a JAVA enabled browser to measure network performance.

Having identified the problem we wanted to establish that the corruption wasn’t happening on our own network: we repeated  the above tests while directly connected to the school’s router, and using more than one computer. The corruption was happening somewhere upstream of our connection, so we called our local ISP (by mobile telephone):

“Can we get an engineer to look into this?”

“Our engineers only visit Samfya district as part of a regular inspection”

“How often do your engineers come out?”…

“Once a month”.

No such visit was likely before we left Zambia. We needed  to find a workaround.

When running a shell over SSH on the trouble connection,  every so often the session would close with a “Corrupted MAC on input” error. This indicates that the last SSH packet failed verification, presumably because the underlying transport layers failed to guarantee the integrity of the data. It seemed like this characteristic could be useful in building a system to help download large files.

Being able to drop connections when ever packets are corrupted isn’t in itself going to help download complete files. But it does mean that a file transfer application running over SSH will never unknowingly write incorrect data to the file (up to the point that SSH MAC checks can detect the problem). This lead to the idea of a brute force solution by persistently running a file transfer application over SSH until the whole file is successfully downloaded. The file transfer application must be able to resume part-way through a file if the link is dropped. A suitable application is rsync.

If files are available on a remote host which can be accessed using public key authentication so that it can be left running unattended, the described work around becomes in shell script form;

return 1
until [ $? -eq 0 ] ; do
 rsync -axrv --partial --inplace <remote-host>:directory .
done

With this method we were able to retrieve the Ubuntu packages we needed up update our servers.

Is there a better way?

Having to manually transfer data through a third machine is inconvenient, a better solution would be transparent to the existing network. Although we can’t easily solve the underlying problem, which is the failure of the relatively small size of the TCP checksum to guarantee the data integrity (in this instance), it is possible to create the conditions where it’s no longer a problem. To do this we might look at reliable transport protocols implemented on top of UDP, which could then be used to tunnel the troubled TCP connections.

Network Diagnostic Tool

Aptivate Speaking at Africa Gathering, London

Tuesday, June 22nd, 2010

africa gathering logoI (Alan) am going to be talking at Africa Gathering London about the reciprocal relationships between participation and IT.

Here’s the synopsis… (although Africa Gathering has previously been described as an “unconference” so I may be tempted to slip into a bit of “unpresentation” if the situation warrants it).

The reciprocal relationship between ICTs and Participation

Over the last few decades of software engineering there is a rising tide of emphasis on the value of participation. The growth of the “Agile” software methodologies is a good example. The finding, which really shouldn’t be that surprising, is that participation makes better software. Participation with the client, with the users with the
stakeholders etc.

Seven years ago, at the start of Aptivate, that’s how we saw participation. As a means to creating better software. Over the last year we have seen that relationship reverse. IT is a means for better participation. It’s not just that new technologies like web 2.0 enable people to collaborate. Engaging in software projects themselves are excellent excuses for participation and human development. Finally, the dog is wagging the tail again and not the other way round.

Africa Gathering will be in London on the 2nd and 3rd of July. Get your tickets now while there’s still some left! For more information see the Africa Gathering site.

Guide de conception Web pour environnements à bande passante faible en français

Thursday, June 17th, 2010

Nous avons récemment traduit notre Guide de conception Web pour environnements à bande passante faible en français, ce qui signifie qu’il est maintenant acccessible à environ 200 million de personnes dans le monde. Le français est une langue officielle ou commune dans plus de 30 pays, y compris de nombreuses nations Africaines.

C’est grâce au soutient de l’INASP que nous avons pu développer notre Guide de conception Web pour environnements à bande passante faible en 2007, et ce dans le cadre d’une initiative visant à faciliter l’accès aux informations en ligne partout dans le monde, quel que soit le niveau de bande passante disponible. Nous utilisons les techniques décrites dans ce guide dans les divers projets centrés sur le contenu en ligne et les sites Web auxquels nous participons en collaboration avec nos partenaires.

Nous comptons à présent transférer ce guide depuis notre site Web vers WordPress afin d’en faciliter la future traduction. Si vous souhaitez nous aider à traduire ce guide dans votre langue ou nous faire part de vos suggestions en matière d’ajouts ou de spécifications, n’hésitez pas à nous contacter.

Web Design Guidelines in French

Thursday, June 17th, 2010

We’ve recently translated our Web Design Guidelines for Low Bandwidth into French, making them potentially accessible to 200 million people worldwide. French is an official or commonly used language in over 30 countries, including many African countries.

We launched the guidelines with the support of INASP in 2007, as part of our ongoing efforts to make online information accessible to as many people as possible, regardless of their location or bandwidth. The techniques described in the guidelines inform our work on projects with partner organisations based around online content and websites.

We’re currently looking at moving the guidelines over from static content to WordPress, which will make translation into other languages even easier in the future. If you would like to work with us to translate the guidelines into another language, please contact us. If you have suggestions for material that we could add to the guidelines, we’d like to hear about that too.

Mark Skipper joins the team

Tuesday, May 4th, 2010

Today we’re celebrating Mark Skipper’s first day with Aptivate. In fact Dr Skipper has been working with us for over a year now, as a volunteer and as an independent consultant in IT and training; this is his first official day as staff.

Mark has plenty of practical experience of both IT and education. As senior lecturer in computer science, researcher and IT trainer he has worked at Xerox PARC, De Montfort University, Imperial College London, and INRIA Rennes. As independent IT consultant he has worked with large organisations like IBM and the BBC as well as with many very small ones. Somehow, into this full career, he managed to squeeze two years in Kenya, with VSO, as trainer and capacity builder for a rural IT college.

His technical wizardry is balanced with a deep passion for the human aspect of learning, change and development. In addition to a PhD in programming language theory (but really about supporting different points-of-view in software development) he has a Certificate in Education For Sustainability from Schumacher College and lots of training in Nonviolent Communication.

“I’m thrilled to be working with Aptivate”, says Mark, “they’re a great team bringing fun and participation to development projects through IT”.

When not working for us, you’ll find him doing facilitator training for Cambridge Carbon Footprint, communication consultancy for the Cambridge Climate Change Charter, or growing vegetables, tending his chickens or installing Ubuntu. He tweets as axiologic and blogs, occasionally,  as Bitterjug.

Experimental Services

Wednesday, November 25th, 2009

Marco Zennaro of ICTP writes:

An interesting paper appeared in the November issue of IEEE Communications Magazine:

Economic Engineering for Improving Access to the Worldwide
Telecommunications Network…

In regions where few people are able to pay market rates, there is little, if any, service without subsidies. However, when subsidies support telecommunications service, the funds are given to existing, typically monopoly, providers, and are often misused. This article defines a concept of how subsidy funds can be directed to consumers…

I applaud the concept of giving consumers more power. I also haven’t read the paper as I don’t subscribe to expensive journals.

However, I have to ask: what about the approach that is already widely tested and used in developed countries (and even India) of having a universal service obligation on telecomms license owners?

This seems to work well enough to have spread to virtually every developed country, and ensures efficient allocation of funds by the providers, as they have to compete with each other to offer universal service for the lowest price.

Why should an untested, experimental idea work better? And why should we try that experiment out on developing countries rather than on ourselves? Why would (or should) a developing country do as we say, and not as we do?

New Open Education Resources site

Friday, May 15th, 2009
OER Logo

OER Logo

Aptivate have launched a new site for developing and publishing Open Education Resources – particularly resources relevant to ICT training.

oer.aptivate.org

It is our intention to publish any training materials we produce on this site under a Creative Commons license so the can be re-used by others. The site is based on MediaWiki so it will others to edit and create their own materials on-line.  MediaWiki can export to OpenOffice and PDF document formats making it a good choice for collaboratively creating training resources.

We will be using this site to develop training courses in collaboration with participants.

We encourage anyone to re-use our materials, use the commenting function to leave us feedback and to submit their own ICT training materials to this site.