Solving computing problems in the third world with embedded systems [1]

Here’s hoping I jarred you enough with the animated gif of Raspberry Pi’s logo above. Today, on my regular waltz through the internet, I stumbled on the fascinating world of embedded systems, origin being Kano’s $129 computer kit. They took advantage of the power we have packed in today’s little embedded systems to solve a problem. Enabling people have the experience of creating their own computer, programming their own applications, and in the process, learning how to code. We are hearing more about learning how to code these days because coding is becoming a highly valued skill, akin to knowing how to using a computer ~30 years ago. It has been predicted in many circles that we are fast approaching a world where knowing how to code will be a pseudo-mandatory skill for almost any job, just like knowing how to use a computer is today. Thus, making it an important problem to solve.

That said, I’ll backpedal a little to the age of mainframe computers to give some context to my thoughts. We would typically have a computer that has some applications running on it for utility in a business or organization, and then have a bunch of dumb terminals that would connect to that mainframe to utilize the applications. We eventually outgrew that era because we found out that we could do more with personal computers for less. In essence, it made more sense for us to do the heavy lifting on the fast emerging PC as opposed to a mainframe, increasing the productivity of a typical computer consumer.

After that, came the era of the internet. We developed the ability to store data and centralized information on a publicly accessible server, while we still did most of the heavy lifting on our personal computers. As an iteration of this era comes Web 2.0 and cloud computing. Here, we use the internet as a platform. We do the heavy lifting and complex computing operations on central servers, and deal with the presentation, view and/or manipulation of the resulting information on the client side (personal computer).

Networking has evolved, so has the technology behind it and its utility. For instance, I can send a dataset to Amazon EC2, write a program to execute a complex operation with the data and then give me an output in real time. The idea being, with my PC, I can employ a whole datacenter on demand (500 – 10000 computers if I want) to achieve something that would have taken considerably longer on my computer. I can achieve these things much faster, and make the application of that data accessible from anywhere in the world that is accessible via the internet, at scale. Wow! A feat that was elusive to even large budget researchers as little as 7 years ago. This almost takes us back to the earlier mainframe computer days where the application executed on the mainframe and the client was a ‘dumb’ terminal to pretty much create, read, update and delete data. Difference is, the application running on the ‘mainframe’ today is now accessible anywhere and everywhere, thanks to the internet. Think about the scale.

Today’s dumb terminals are not so dumb though, but our demands from them have evolved considerably as well. Today, we rely on computers for education, entertainment, law enforcement, communication and almost all things that empower our daily lives. We want more mobile, less powerful devices that compute in the cloud but use their power to present already computed information with the experience we require. For instance, watching a movie online. The data is stored and delivered by a central server through the internet, but the device runs a lighter application that presents the movie to us. Same with office applications like Google Docs. When you click cut, and then paste. Or when you run formulas on Google Spreadsheets, the computation happens in the cloud, and then your computer receives the output. As a result, there is much more you can technically do with Google Spreadsheets than you could have done on your computer. Let’s assume it is a lower powered computer, like a tablet or smartphone.

However, reaching a critical mass with computing, we are starting to realize that we need to bring the developing world along with us in our development. We need to find ways to educate them massively on the uses and benefits of computers, and then enable them tap into these benefits to solve the societal problems they encounter. This is a win-win for everyone because the more consumers we have of the internet, the more opportunities we create to reach the world, create value and make impact on a massive scale. So, what are the problems that plague computing in developing countries?

  • Poor electricity and/or other basic infrastructure
  • Slow and expensive access to the internet
  • Devices are cost-prohibitive for the mass market
  • To follow up on the point above, inability for the mass to justify the cost of acquiring devices because they do not understand their uses and benefits

Considering the possibilities that come with cloud computing, we can make more utility of cheaper, lower powered devices to solve these problems on a massive scale in third world countries. Starting from education, law enforcement, security and even personal computing. Creating very cheap computers that are centered around a browser and enable their users make use of services and applications available to them through the internet.

Have you seen VIA’s APC? It is a $49 embedded computer that packs a punch and enables its users consume the services and applications accessible to them through the internet. There are also a slew of devices that could be fashioned around taking the model Kano is using above. Create a custom operating system that enables that device to play a specific role in education in higher institutions? Or a computer powered by solar? Or a computer that caches educational content from say Wikipedia, Codecademy etc. when they hook it up to the internet and makes the content accessible offline? Who knows? One thing I am confident about is that armed with the right level of exposure and capacity to innovate, there are multiple problems that can be solved with the APCs, Raspberry Pis, Arduinos, Cubieboards, ODROIDS, Hackberrys, OLinuXinos etc. of the world. I intend to start writing about them in subsequent articles.


Image Credit – Kompjuter Biblioteca

Share your thoughts...