Saturday, October 25, 2008

More On Cell Phone Banking

Technology Review has a fairly comprehensive article on banking through cell phones, particular in India. Fascinating read. Many Indian farmers and urban dwellers have predictable patterns (go to auction at 4:00 AM, go back to farm at 6:00 AM, get mugged at 6:10 AM on the road - optional) that leave them somewhat vulnerable to thuggery. By using cell phones which are attached to an identity to store the money electronically (pin and sometimes thumbprint protected) some of that susceptibility is lessened.

Additionally, when multiplied by millions, even with only a few dollars a piece, that puts a lot of capital in the banking system. And, if my Freshman economics serves me, that is something that manages to increase the speed of money in the economy and open up opportunities across the entire population. The article mentions lots of exciting specifics, so you should check it out.

Friday, October 17, 2008

Meet Amy B. Smith

Amy B Smith just won the Popular Mechanics Leadership Award for her leadership efforts and work in the area of engineering for the very poor. Smith has led student trips to places as far away as Ghana and India and has impressed many people in the area of engineering for the poor such as Paul Polak, author of Out of Poverty: What Works when Traditional Approaches Fail.

Video Here

Thursday, October 09, 2008

The Aquaduct(bike)

Here's something rather interesting, and the winner of this year's Innovate or Die contest. It's a pedal-powered bike purpose built for transporting and cleaning water. It's a really great idea by some people who appear to have a reasonable concept of what the issues are.

On the other hand, I really hope that we can start seeing some more innovation on the urban front where, unfortunately, most of the world's truly poor live.

Tuesday, September 16, 2008

Curing TB - now with free cellphone minutes!

There's a fascinating, and slightly gross article here which talks about the difficulties in curing TB in developing nations. The short of it is that it is really hard to convince most people to continue to take their pills for a whole six months. I've been told this is quite the problem the world over. When I was in the Philippines last year, it was definitely present there, and presents huge problems because if you don't take the whole 6 months of pills, the viruses predictably come back more resistant to antibiotic treatment, hurting not only the person involved but everyone that they might spread the resistant TB too. This is a very cool solution to a very real problem, and worth the read.

Thursday, September 11, 2008

Let's make power with a string!

Alrighty, this isn't software related, but it is darn cool. Shawn Frayne, a 28 year old inventor has managed to create a device that harness the power of wind at 10-30 times the efficiency of a windmill. These devices are very small and can be produced very cheaply, and could be a great boon to remote, developing locations such as Haiti. Check out the video from popular mechanics.

Tuesday, September 09, 2008

Social Justice Programming

It's hard to be a programmer who cares about the world around you. There isn't the directness of other disciplines. You can't walk up to a starving child and give them a sheet of code, it just doesn't help. If you're a water engineer, you can help build a new well. A sanitation engineer can help with desperately needed, erm, sanitation. Agriculture, nutrition, etc, these are all very directly applicable and needed skills throughout the world, but Software Engineering is harder.

Still, I am a Software engineer, and I love it, so how do I help? I have been struggling with this idea for years, but now I've decided that I want to start bringing it to my blog, and the first, somewhat quirky thing I'd like to mention is mobile phone money. (Yes, I hear the skepticism, but hear me out!) :)

There are a couple new project, one called M-PESA and the other called "Hello Money" and both of them are being launched in more violent, less safe parts of the world, and for good reason. It turns out, according to David Birch and Bruce Sterling at the LIFT|ASIA conference, that cash is actually the hardest thing for poor people to use, and it is no wonder that in places like Kenya, people use their SIM cards as currency because they are more secure and less dangerous to carry than paper money.

Also, thanks to the fantastic people at Adaptive Path for turning me onto this.

Monday, June 09, 2008

Properly Naming Exceptions Is Important

I just got done spending over an hour debugging an OutOfMemoryException in a C# application I have. It was a really peculiar error because it began spontaneously in an application that primarily just iterates over about fifty thousand images in a repository and resizes them for the web. This was peculiar because the application had already run succesfully many times for the same data set with no memory exception.

Regardless, I dutifully set up lots of different memory freeing mechanism, going to the final state of forcing a Image.dispose() and forced garbage collection after every single image. Still OutOfMemory. DANG YOU!!!

Ok, so what it turns out is that if you are attempting to load a corrupted image file using C#'s Image.FromFile(), it crashes with the very unhelpful OutOfMemoryException instead of something more useful like ImageCorruptedException. Heck, I would have settled for IAmTooLazyToThinkOfAnActualException, at least that wouldn't have misled me so much :)

Thursday, May 15, 2008

Flex 3 - Get the text of your DataGrid Item

The task (which you would really think should be simple) is to get the text of the current DataGrid element in a custom drop-in itemRenderer. This can be useful for a lot of reason - for me specifically, I wanted to use the same renderer for an entire DataGrid and color things one color if they're less than 5 and another if they are more than 5. But to do that, you have to create an itemRenderer that knows which column it is in in order to retreive the correct data. Sadly, this took me several hours of searching and not only could I not find any proper solutions, but I ran across a number of dated examples that sent me in the wrong direction.



So, without further ado, getting the text of your DataGrid item in an ItemRenderer:


private function getItemText():Object
{
return data.elements(getColumn().headerText);
}

private function getColumn():DataGridColumn
{
var dg:DataGrid = (listData) ? DataGrid(listData.owner) : null;
var column:DataGridColumn = (dg) ? dg.columns[listData.columnIndex] as DataGridColumn : null;

return column;
}

Tuesday, May 06, 2008

Yet another reason to choose bittorrent...


I wish Hulu had been done right, but seriously, when it is *easier* to pirate than to "do the right thing" something is just wrong with your business model.