Blog

The Digital Agency for International Development

Entries by chris

Developing for Development

What's it like being a developer at Aptivate? I've been a developer at Aptivate for 10 years, and volunteered part-time in my evenings and weekends for 3 years before...

By Chris Wilson on 08 January 2015

Case Study: Creating a custom M&E solution

Creating a custom M&E solution has very unique risks and rewards that are different from the approach of selecting a pre-built, solution out-of-the-box. IPAS presented a webinar on their development of a custom system using Microsoft Dynamics CRM. These are my notes.

By Chris Wilson on 12 February 2014

The Future of Bandwidth Management?

We had an interesting session on Bandwidth Management at Apticon 2013. I raised the subject because I'm concerned that I think it's really important, but nobody's funding it and I don't know how to make it relevant and how to make a useful contribution. These are my notes from the session.

By Chris Wilson on 12 September 2013

Unit Testing Django with Haystack and Solr

Django together with Haystack adds a powerful free-text search capability to your applications, and is widely used. This article explains how to write safe, reliable, repeatable tests for the search features, and avoid a common gotcha with indexing objects that shouldn't be indexed.

By Chris Wilson on 14 August 2013

Django admin with AJAX autocomplete

I just ran into the fairly well-known problem where the Django Admin interface loads very slowly when you edit a record, that has a foreign key, to a big table (thousands of rows), because Django constructs thousands of objects to populate the dropdown lists. I tried out django-ajax-selects and it worked excellently to solve the problem and improve the user experience.

By Chris Wilson on 13 March 2013

Antivirus software recommendations

Antivirus software is always a contentious question. It seems that there are no right answers: nothing detects all viruses, and everything has an impact on the speed of the computers where it's installed. And there's a tradeoff between these two. My own subjective, biased choices are F-Secure, AVG at a push, and definitely not Kaspersky. Here's why, and some data to help you choose one for yourself.

By Chris Wilson on 11 March 2013

Temporary monkey patches in Python tests

Did some refactoring on the Intranet Binder monkeypatch library to enable temporary patches using Python's context objects. This is particularly nice for use in unit tests, where you might need to mock or stub out a component's dependencies, but you don't want those changes to be visible after your test finishes, or you only want them active for part of the test.

By Chris Wilson on 30 January 2013

New features in enhanced Django TestCase

For about a year I've been working on our Django Binder app. It was originally designed for use in intranet applications, but much of the code is useful in Django apps of all kinds.

I've just committed a bunch of improvements from my work on the iSchool project, which I'd like to highlight to anyone interested, partly as internal documentation.

By Chris Wilson on 09 January 2013

Rough Guide to rural data collection with ODK

This post has three purposes, which I think overlap sufficiently to combine them: A User Guide for the system that we developed for UNICEF, IDS and RuralNet Zambia; A Developers' Guide for anyone wishing to build something similar, and...

By Chris Wilson on 05 December 2011

Computers in Schools: Sound solutions

Activities with sound are ideal for kids. Preferably lots of sound. Especially when it comes to teaching language, reading and writing.

When you have a classroom full of children with ...

By Chris Wilson on 05 September 2011

Ubuntu Laptops in Schools

I'm currently working on a project that's putting computers into Zambian schools to try to revolutionise education, making it more fun and interactive for kids, and reducing the ...

By Chris Wilson on 01 September 2011

AfNOG 2011, Part 2

AfNOG boot camp was absolutely massive this year. I think they had 75 people when they were only expecting 40. They took over half our classroom as well, which made ...

By Chris Wilson on 30 May 2011

AfNOG 2011, Part 1

I'm in Dar es Salaam, Tanzania for AfNOG 2011. I arrived on Wednesday morning at 7am (on the red-eye flight from London Heathrow) and I'm here until Tuesday ...

By Chris Wilson on 28 May 2011

Offline Websites and Low Bandwidth Simulator in Go

Jon Thompson writes about Jeff Allen's interesting new work on tools for working with low bandwidth:

  • A web proxy that simulates low bandwidth connections, and
  • one that can be fed prepackaged content repositories to serve up when offline, or on the wrong end of a slow Internet connection.
Content management systems could be extended to integrate better with these tools and make sites automatically offlineable.

By Chris Wilson on 16 February 2011

Network monitoring planning

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 ...

By Chris Wilson on 10 February 2011

Hibernate, EJB and the @Unique Constraint

I'm going to argue that EJB is insane, because it's trying to solve the wrong problem, an impossible problem. It's trying to keep your in-memory Java objects perfectly in sync with the database contents at all times, which is impossible even in theory. And if (when) it fails, it will throw an unrecoverable exception that breaks your application horribly.

By Chris Wilson on 26 November 2010

Digital Photography on Linux

Many people think that digital photography on Linux is much harder than on Windows or Macintosh. This is a typical comment:

As a hobby I'm a photographer, so I ...

By Chris Wilson on 02 September 2010

Mobiles for Scientific Research

We know mobiles are very useful in areas where desktop computer and communications infrastructure is not easily available or affordable. And we're very interested in mobile applications and scientific ...

By Chris Wilson on 09 July 2010

Simulating low bandwidth: Publishers for Development

We think that academic publishing is an area that's both critically important to development, and simultaneously becoming more and more inaccessible to the people who need it most. The average size of web pages has been growing much faster than the average speed of connections in developing countries. We built a low bandwidth simulator ourselves, and took it to INASP and the ACU's Publishers for Development conference in Oxford to persuade the journal publishers to optimize their sites to make them accessible to everyone.

By Chris Wilson on 08 June 2010

The Censorship Arms Race

No security is perfect. There will always be ways around any security measure that we implement. However, no workaround is perfect either. Once we understand how it works, e.g. what the requests that it makes look like, we can block it. This quickly turns into an arms race between the user and the administrator.

By Chris Wilson on 07 April 2010

Writing Database Migrations

Describes how to develop and implement schema and data changes in Java applications backed by SQL databases, using version control and Migrate4J.

By Chris Wilson on 30 March 2010

SSH Port Forwarding

SSH port forwarding is not hard to do, once you get your head around how it actually works. It's not like a VPN and it's not magic. It's quite like a proxy server.

By Chris Wilson on 10 March 2010

Large Wireless Networks

I saw an interesting request on the AfNOG mailing list:

How does one determine the number of users,  a wireless network can support. I need to buy a wireless router ...

By Chris Wilson on 05 January 2010

Experimental Services

Marco Zennaro of ICTP writes: 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?

By Chris Wilson on 25 November 2009

Backup Mail Exchangers

On Monday night, the power supply unit (PSU) in the server that hosts our mail server failed at around 2200 GMT. We don't have physical access to the server ...

By Chris Wilson on 28 January 2009

Offline Wikipedia part 2

Having decided on a local MediaWiki installation, I started working through the import process. I noticed a few things that may help others.

If one forgets to increase the MySQL ...

By Chris Wilson on 01 December 2008

Fibre for Africa

The consensus seems to be that Africa needs more land and submarine links to provide enough bandwidth for its long-term growth, and bring down satellite Internet costs.

East Africa currently ...

By Chris Wilson on 26 September 2008