Why do you code? As a software developer you have the opportunity to work on projects that interest you and have the potential to change the world. This is exciting, and I encourage you to use your talents to your full potential.
You may have some experience as a software engineer and you might have some great ideas on how to impact this world for good, but where do you start on bringing these ideas into reality? Today I’ll be introducing three important technologies in building solutions that fight back against the challenges of this world.
What kind of challenges?
I’ve partnered with IBM and the Call for Code global initiative in challenging you to create solutions to help people through natural disasters, with a special focus on the health of individuals affected by natural disasters and the well-being of the community. Check out the 2018 Call for Code winners for some incredible inspiration.
How can we Change Natural Disaster Preparedness?
It’s no question that natural disasters are one of the largest challenges we face in society. With so much destruction and with many people in need during a natural disaster, current technology can be limited in its ability to help. It’s up to us (software developers) to develop new, effective solutions to better meet the needs of the world in the time of natural disaster.
There are numerous forms of technology we can use as a basis for the next solution to natural disaster, but I’ve chosen to focus on just three: blockchain, IoT, and artificial intelligence.
Fortunately, you’re not left alone to figure out how to implement these technologies. IBM offers numerous code patterns that will guide you through a particular challenge using these technologies. By the end of this post, you should understand the foundation of each of these and have links to the appropriate resources to learn more and to get started.
What is Blockchain?
I thought I’d start with my favorite, blockchain. Now, it’s hard to explain everything you need to know about a technology in such a short post, but I hope to give you the essentials.
Put complicated, blockchain is a distributed computing infrastructure. What?!? In English, blockchain allows us to store data safely across numerous computers. Why is this important? When it comes to natural disasters we need to be sure that the solutions we are creating are resilient, persisting without data loss even in the case of outages or destroyed computers.
Blockchain offer us a distributed network allowing us to maintain a history of data across numerous members (“nodes”) of this network. By default, this type of network offers us supreme data redundancy making blockchain very fault tolerant in use cases such as natural disasters.
One key feature of a blockchain is that the data is trustworthy. The theory is that we can trust the data in the blockchain because at the core of blockchain technology is a system requiring multiple nodes in our distributed system to agree on changes to the state of the data in the system. There must be a general consensus among the nodes to append to, or alter, the blockchain.
I believe there is a lot of mystery around blockchain due to new vocabulary, techniques, and its ties to cryptocurrency. At its core, blockchain is nothing more than a technique for distributed data storage, in contrast to centralized databases you and I may have experience in. Just like you can insert data into a centralized database (think MySQL, MongoDB, etc), data is inserted into the blockchain in an ongoing chain of blocks. Each block contains a series of inserts committed to the chain that, once committed, are usually impossible or very hard to change.
Every change to a blockchain can be seen through a public ledger, where each transaction is recorded and any identities are anonymous. In the case of cryptocurrency (digital currency), the public ledger would show where currency is transferred from (anonymized by a public key), to whom it was transferred to, and how much. Put simply, the blockchain enables a financial network to exist beyond the walls of any one particular server or beyond a physical bank. This not only removes power from a centralized entity but also enables data resiliency by removing a single point of failure.
Blockchain and Natural Disasters
You may be wondering how the cryptic topic of blockchain can be useful in the case of natural disasters. We’ve mentioned a few things–blockchain offers data redundancy, resiliency, and trustworthiness. But to get more specific when it comes to applying blockchain, here are some potential uses of blockchain. From manageable distribution networks to donation tracking, blockchain is key.
What is IoT?
IoT stands for the internet of things. Often when people hear IoT, they think of smart refrigerators and smart teddy bears, and the like. Although this can be considered IoT, there is another group of people that think of something else–sensors. When natural disaster strikes, there is likely little need for the latest and greatest smart toothbrush that tracks your dental patterns (low priority, but still pretty awesome). Rather, there is an overwhelming need for data tracking such as the environment in different parts of affected regions as well as surrounding areas.
Consider IoT to be the basis for a more complete view of an area. IoT is like getting a status update from numerous points of view. I cannot help but think of a scene from The Dark Knight where a 360 degree view of the city is made possible with the use of enough data.
Although silly and hollywood-ified, IoT is similar in nature in that it lets you see a perspective of the world that you may not see otherwise. The number of examples and use cases for IoT are uncountable.
IoT and Natural Disasters
Sensor data gives us a new view on the state of an emergency by measuring things regularly allowing us to perform real-time data analytics. This can give us an accurate check-in on areas that may dangerous to have people monitoring, or it can point out changes or signs of danger in areas that have not yet been affected. By having a detailed state of an area through the use of IoT, we can offer help such as a better ability to direct traffic safely, avoiding areas of high danger or unpredictable weather patterns. Here is some practice with IoT.
How to Make Sensor Data Possible
Don’t worry, you’re not left alone when it comes to monitoring areas of natural disaster. Obviously placing physical sensors in dangerous areas is not always possible when needed. There are many other possibilities. Thankfully, there are datasets made available to us. One of the most useful and impressive datasets is NASA’s Earth Observation Data: Data from tons of sources including Ozone monitoring, infrared imaging, and lightning imaging (to say just a few). There are numerous other advanced datasets from NASA’s constant monitoring, all made available through application programming interfaces (APIs) with less than a 3 hour time delay from observation to availability.
What is AI?
I’m sure you’ve heard of AI and its potential impact on the world. I was struggling what to choose for the third technology of choice that can change the world. AI (artificial intelligence)? Machine learning? Data science? Although not all one and the same, they all have one thing in common: the intelligent use of data. If IoT is the data, the AI step is making sense of this data and turning it into something useful.
Although rather insignificant for the topic of this article, I want to talk about some distinctions between AI, machine learning, and data science so that we can all be on the same page with vocabulary. AI is the task of producing technology that can act intelligent and make decisions. This is the goal. Machine learning, on the other hand, is one strategy to enable AI. Machine learning is the technique. Data science on the other hand is the discipline of analyzing data for trends or hidden insight. All are closely related, but not identical.
Artificial Intelligence uses a series of techniques to enable a few key things: automation and prediction. Automation is made possible and is widespread due to the fact that computers are highly predictable (that’s the theory, anyways). In the context of natural disasters, A computer program can follow a consistent algorithm to determine if a particular pattern of data is considered a threat, potential threat, or is safe. Consider automation to not only be the mundane decision making, but also intellectual in nature thanks to techniques such as image classification and natural language processing. Prediction is where AI shines. With predictive modeling, a software program can predict the propensity for particular events or changes (such as the next location for a storm, the spread of a disease, or potential bottlenecks for resource delivery). For example, the winners of the 2018 Call for Code initiative used predictive modeling of speech conversations to build a dashboard to assist first responders.
It’s no question that technology is very complex, but this complexity enables us to be creative in solving a complex problem–natural disasters.
I’m thankful I get to be a part in bringing awareness to Call for Code as this is an opportunity to simplify the complexity and understand the modern technology at its core, all while using it for a good purpose.
You’ll have until July 29th to submit your project. The grand prize winner will win $200,000 in addition to other prizes such as support in bringing your project into use. There are runner up prizes as well. Don’t just read this and walk away. Rather, embrace the challenge and use your skills for good. Accept the 2019 Call for Code Global Challenge.