A better mousetrap

I love the simplicity of this:

More info here

Cheap broadband for Africa happening in Rwanda

Very interesting and exciting article about an American who came to
Africa (Rwanda) to teach, and ended up building a nationwide fiber based
internet backbone. I know this is possible in Malawi too, and could
really transform the country:

Not too long ago, a high-speed internet connection in Rwanda cost close
to $1,000 per month. A whopping 22 customers could afford to buy this
service from the national telco - RwandaTel. Then, Terracom arrived.
Terracom started laying fiber throughout Rwanda, bought RwandaTel for
$20m and dropped the price for a combination high-speed internet
connection and phone line down to $80 per month. Greg Wyler - the
American entrepreneur cum do-gooder behind Terracom - sees affordable
internet service as a key step to establishing Rwanda as an African IT
hub. And that may well mark the first time Rwanda and IT hub have
appeared in the same sentence.


AIDS orphans learn how to fix cars

Great article about a mechanic training school for AIDS orphans:

Now his wife, many of his friends, and his businesses are gone. But
amid the loss, Mr. Mbuka has found a new way to function. In the shell
of his old garage a few weeks ago he opened a car-mechanic school for
orphans - for kids who, like more than 12 million African children, have
lost their parents to AIDS.


Adding RSS feeds to Thunderbird from Firefox

I recently offered a 50006000 kwacha (about 35 USD) bounty for a Malawian to
solve my problem of easily adding RSS feeds found by Firefox to Thunderbird and Soyapi Mumba solved it.

All of the pieces were already there. The Livelines
offers control over how Firefox handles detected RSS
feeds, and Thunderbird is a pretty decent feed reader. But for some
reason they weren't connected to each other properly. Soyapi
investigated and found some bugs both on the Thunderbird side and the
Livelines side. Basically neither tool is handling the feed:// protocol
properly, so Soyapi hacked Livelines to make the feed:// string
acceptable by Thunderbird. And it works - rejoice! Download the hacked official version
of Livelines (with Soyapi's patch) here

So that was cool, but probably the best part of this whole experience is
that Soyapi, myself and Boster another Malawian programmer, met for
lunch after he solved the problem. I paid up (and he paid for lunch!),
but then he walked me through his solution. In doing so, I learned about
the architecture of Firefox and Thunderbird extensions, and how the XUL and Javascript sourcecode for
Firefox and Thunderbird are already on my machine and begging to be
hacked. I knew XUL was cool, but had never spent any time learning it.
With Soyapi walking me through it, it now makes perfect sense. For
client side GUI applications that can't be done in a browser, XUL just
might be the way forward.

So I am thinking that software development via bounty just might be a
great way forward, especially for the developing world. Perhaps it is a
new chapter in software engineering as a whole? I have some more ideas
to make Thunderbird's handling of RSS feeds really great (caching
images, more uniform handling of different feed types, overall better
offline functionality) so perhaps I will setup more bounties and maybe
even facilitate bounties for individuals or groups from abroad. Stay tuned!

An experiment in open source development

I just sent the following to the main mailing list for software
developers in Malawi
. We'll see what happens:

I thought I would put my money where my mouth is and offer cold hard
cash for open source development. So this little offer/challenge is open
to any developer (or group of developers) in Malawi.

I currently have setup Thunderbird to be the default handler for RSS
Feeds. (Options->General)

I have also setup Firefox (via the LiveLines extension) to pass any
feed:// url that it comes across to my system's default feed handler
(which is Thunderbird).

Despite being the default handler, Thunderbird doesn't seem to do
anything when a feed:// is passed to it.

I want it to automatically add the feed URL as a new subscription to my
News & Blogs account (basic functionality). I would be really impressed
if it could scan through my existing subscriptions and open the
corresponding folder if I already had subscribed to the feed that was
passed to it(extended functionality).

So here is what I am offering:

If you can give me a working extension (even if it is buggy) that can do
the basic functionality as outlined above working by Monday morning
(9am) I will pay you 6000 MWK. If it also does the extended
functionality I will make it 7000 MWK.

If you can deliver the basic functionality by next Friday morning (9am),
I will pay 4000. The extended functionality pays 500 MWK anytime after
Monday morning.

Here are some links about the feed format:



But you don't really need to know anything about the protocol. You just
take feed://example.org/rss.xml drop the feed:// part to get
example.org/rss.xml part and add that as a subscription.


Bounty won and solved!

Not lovemaking area

We walked through the really nice Lilongwe Nature Sanctuary this
weekend. It is full of monkeys, antelope, crocodiles, hyenas, spitting
cobras and it is all right in the middle of town. We saw a few monkeys
and enjoyed walking in the cool forest. The sign below greets you after
you enter.


ARVs bringing hope to Zomba

These kind of articles make really excited about the HIV work I am
starting at the lighthouse clinic...

These are not good times in Malawi, a country facing an almost
certain famine, deep in the grip of the AIDS pandemic. There isn't a
great deal to be cheerful about.

But in the small Tisungane Clinic in Zomba Central Hospital, people
positively beam. When they spot a visitor, they rush forward and hold
out a waylaying hand.

"Oh, you should have seen me, I was very suffering!" says Rev. MacPhary
Kamwedo, a 45-year-old pastor with the local Baptist church, who will
not let erratic English hinder his story.

"I had skin cancer, gastro(enteritis), fever _ now I have good power. I
am even pedaling my bicycle."

Kamwedo has AIDS. But he has been on antiretroviral (ARV) drugs for the
past six weeks, and he is awestruck at the change in that short time.

AIDS miracle

Venezuela and open source

I have very mixed feelings about Huge Chavez, but none about open
source. These two worlds collide in Venezuela which is arguably leading
the world in a nation-embrace of open source software. I was reading
about it on worldchanging, when I came across this:

Sabotage of the state oil company's Microsoft-based computer systems by
the former managers in 2002 very nearly derailed the Chavez revolution;
local computer hackers managed to break through the security of the
systems, and restore control to the new government. This experience was
the direct catalyst for Venezuela's decision to move aggressively to an
open source environment -- never again will proprietary code be used to
lock out the government (and, it occurs to me, never again would hackers
so easily break the systems' security...).

So basically the highest profile company in Venezuela got hacked and
almost took down the government. They no longer trust windows, so the
whole country is forced to switch to Linux. Interesting.

Web 2.0 in a web 1.0 world

It has been an interesting week of hacking.

These days it is rare to even have to think about efficient code. Memory
and processing power are seemingly limitless, except when they are not.
And this week they are not.

First off, I have been writing perl code to match similarly but not
exactly named items in a database. The database is not small, with
around 100,000 rows in the various tables. Essentially I have written a
search engine in perl which ranks words based on uniqueness within the
set and uses other little hacks to try and make the best match. But with
tens of thousands of SQL lookups it takes about a second per match, so
my laptop has been running very hard and very hot for hours. It has been
fun to find a little optimization here or there and watch things double
in speed, but it isn't the sort of instantaneous computing we have all
become accustomed to.

Secondly, and more interestingly is the touchscreen data collection for
the HIV treatment center. The touchscreen machines are based on the
i-opener, which is a relic from the dot-com days, but now available
secondhand for pretty cheap. It was designed as a "web appliance" so you
can check email and surf the web on your kitchen counter. It is a nice
compact machine, with a decent LCD screen, about 200Mhz of pentium power
and thanks to the director's innovation, it has been upgraded to 32mb of
memory, can now handle USB devices as well as external flash cards, and
perhaps most importantly is fitted with a touchscreen device.

So that is the hardware. Previous versions of the Baobab software have
all been based on either Visual Basic or Real basic. So the i-opener
boots into windows 98 lite, and runs the basic application in full
screen mode. I have proposed and worked up a proof of concept that will
use Firefox running in full screen mode to do all of the same functions.
The prototype even uses Ajax to perform various database lookups. Click
"w" then "a" on the onscreen keyboard and an AJAX request will be sent
to a bit of PHP that returns all the warts you can imagine without
needing a refresh the page. Simple web 2.0 stuff, and it works great on
my machine. Unfortunately, when it gets to the i-opener, what was an
instant wart retrieval system is now 5 seconds of anticipation. All of
this web 2.0 goodness requires extra power. I am not sure if it is the
Javascript that is slow, or if Firefox is taking a long time to
negotiate the TCP/IP connections. Most likely it is a combination of both.

So the challenge is for us to figure out how to make this happen faster.
We have tried K-Meleon a lightweight version of Firefox, but it didn't
make much of a difference. Optimizing Firebox (using about:config),
optimizing the javascript, and investigating connection bottlenecks is
our short term approach to solving this. In the long run though, we
would like to have a 100% open source solution, which means getting
Linux running on the i-opener. I am positive that a Linux installation
with everything optimally compiled for the i-opener will result in
everything being much much faster. But creating a custom Linux
distribution requires more knowledge than simply installing Debian on a
laptop. There are some Linux distributions already created for the
i-opener like Midori Linux and Jailbait Linux. But neither of these work
out of the box (or out of sourceforge actually) and the developers seem
to have disappeared. So we will hack on, but if anybody has any
suggestions please get in touch - children with HIV need our help!

(Isn't blogging great? After writing the above, I realized I don't need
to do tens of thousands of SQL searches. Instead I stuffed all the
relevant entries (most of the database) into a gigantic strategically
structured hash table. It takes longer to startup and uses 70MB of
memory to run, but it is an order of magnitude faster - yippee! Now
about those i-openers...)

Riot in Lilongwe

Here's a classic SMS that I received today:

Tear gas right outside the bank

Apparently the government has recently decided that vendors have to sell their wares in the market. This means vendors who have previously sold from the street (they sell all sorts of things: pieces of metal, recycled rubber from tires, DVDs, plastic bags, radios, etc) now have to move into the market, and they are not very happy about it.

The site is bad, we have been dumped to a place where not many people are interested to visit and our business may suffer.

What worries me is that the officials cite Zimbabwe as the model for how to do this. (Zimbabwe is led by probably the worst dictator in Africa, he is running his country into the ground, and causing a lot of suffering - one of his recent moves was to bulldoze squatter villages in the name of cleaning up)

Here is a classic Malawian official quote:

We are just acting on humanitarian grounds. We are negotiating with them to move out so when they ask for some favours we need to listen to them because we are not forcing them out. We are working with them to improve the faces of our towns because in the whole Sadc region Malawi has the dirtiest towns and cities but so far the process has gone smoothly and the vendors are very cooperative.

But things aren't going so smoothly and today vendors were rioting. The friendly American embassy sent me an email about "unrest", but despite the teargas Claudia assured me that everything was fine at her office.

Article about the relocations.

It's not about charity, it's about justice

Africa makes a fool of our idea of justice; it makes a farce of our idea of equality. It mocks our pieties, it doubts our concern, it questions our commitment.

Did you catch Bono's talk given at a recent Washington prayer breakfast? People often argue whether a rock star like Bono has any place amid the complexities of international development. After reading the transcript from his talk, I am convinced that Bono has a God given role to play. It is a must read for people tired of Christian hypocrisy, for people interested in Africa, for Christians themselves, and for people who love to see George Bush challenged (he was there) on issues of social justice.

God is with the vulnerable and poor.

God is in the slums, in the cardboard boxes where the poor play house… God is in the silence of a mother who has infected her child with a virus that will end both their lives… God is in the cries heard under the rubble of war… God is in the debris of wasted opportunity and lives, and God is with us if we are with them.
There's no way we can look at what's happening in Africa and, if we're honest, conclude that deep down, we really accept that Africans are equal to us. Anywhere else in the world, we wouldn't accept it.
There is a continent—Africa—being consumed by flames.

Bono does a good job of illuminating some of the the injustice in Africa, but what I like most about the speech is that it is hopeful. The reason that it is hopeful is because it is practical. He talks about injustices that can be righted, and calls on the president to step up and fight the injustice - he offers a plan.

Bush's response is available as well. It is not a must read. It is an uncontroversial, USA-praising, dumb-joke filled time filler couched in Christian-speak. Okay maybe it isn't that bad. I really do despise the man, but just to prove that I am open minded, I will share a good quote from Bush's response:

In prayer, we open ourselves to God's priority, especially His charge to feed the hungry, to reach out to the poor, to bring aid to the widow or the orphan. By surrendering our will to God's will, we learn to serve His eternal purposes. Through prayer, our faith is strengthened, our hearts are humbled and our lives are transformed. Prayer encourages us to go out into the world and serve.

See what I mean? Perhaps Bono can even get POTUS on the right track.

HIV/AIDS and children

This has been a really busy week for me. I have been in meetings galore, running all over town, and hacking out code as fast as possible. It has been a lot of interesting stuff most of which deserves a post on my blog.

I think we will start with the most exciting first though. I met the founder of Baobab Health Partnership about a year ago and was very impressed. He has managed to take his experience of working on military helicopters (think robust, practical, usable) and apply it to the health care situation in Malawi. Essentially Baobab has created an inexpensive touchscreen system to guide clinicians and track patient data. In a country where there are virtually no doctors and lots of sick people, a system like this has a dramatic impact.

I have been asked to help create a similar system that will focus on children with HIV/AIDS. I spent a morning in the clinic this week to get my head around the challenges and was absolutely cut to the heart. One girl was a strong 13 year old, whose parents had died of aids a while ago. Just a few years ago, she had barely been strong enough to walk, but with the free ARVs provided by the Lighthouse clinic she is now doing great. I also saw a 10 year old girl who had been raped that morning. The doctor had to write a letter convincing the police that this assailant needed to be tested for HIV. He could treat the girl with ARVs and probably keep her from getting HIV, but the side effects can be extreme. It was a painful reminder that whatever computer system we offered would merely be one tool of the many needed to help these broken situations.

I am really excited to get started on this project.

Coincidentally everyone's favorite Jedi, Ewan McGregor, was in Malawi last year and has just published part of his journal. I think he is a UNICEF representative - so he visited a lot of children suffering from HIV/AIDs. His journal gives a glimpse into the situation that we are battling here:

Suddenly I was standing inches away from this woman who was being counselled on what will happen if her test is positive. The nurse talked to her in the local dialect for quite a long time. There was no reaction on the lady's face. Then the nurse explained to us what was going on, she said that this test was positive, and I realised this woman had just been told she carried the HIV virus and I was gob-smacked. I stood in the doorway staring at this woman, trying to see what her reaction was, and kind of projecting what I assume my reaction would be on to her.
Then we went to what I think was the saddest part of the day in many ways. We went to visit a girl in her tiny little mud house on a hill top, who was dying of Aids, and she was maybe 22 years old.
She came out to meet us and sat down on the mat outside the house, and her child lay with her head on her mummy's lap. She was terribly weak and spoke very slowly about how difficult life was for her, that she couldn't do anything because she was so weak.
I couldn't help but look at the two of them and see how the little girl needed her mum, and how obvious it was that her mum wasn't going to be around for very much longer.

Read the full article here:
My brain can�t take any more pain and suffering