Web, Computing, Resilience
How do you work, program, and be productive with intermittent Internet and electricity? This is my challenge in Ukraine now. But it is a situation that is increasingly occurring in peaceful countries in face of climate change and other emergencies.
In a location with intermittent Internet and power, you discover that your choices of software to use have to change. Even wonderfully constructed web applications and desktop software become useless in such an environment.
Let's focus on two common types of applications that everybody uses and are crucial:
With intermittent Internet and electricity you immediately discover that web applications become useless. Even those constructed with PWA - progressive web apps, technology. A PWA application is web applications that store data in the browser. This includes things like Google Docs. For them to be useful when such a situation occurs you need to have the web application open in the right document. So that its auto-save and automatic write/read to the cloud, when you are back online will be useful. However, you very fast discover ypu can be caught up suddenly without all you documents open. So you are left high and dry.
This leads you naturally to consider desktop applications.
Nowadays no one works with a desktop only application. Even if the application runs on the desktop it writes and reads from the cloud. You must have this if you want to collaborate with others. And you need it especially in such situations because may have to switch computers, or leave you computer behind, and go somewhere else.
While many desktop applications today alert you when you are offline, saying your changes will not be saved, you discover this capability is a double-edges sword. Not only are you alerted that you are offline, you changes are lost, or are even blocked.
Other applications will not block your work, you can still say enter new tasks, or edit a document, however because your data is stored in the cloud, you must make sure your desktop application is synchronised with the cloud. So if you have not opened the application in a long while. And moreover, the application is not running a service in the background to continuously fetch/store data from/into the cloud, you are again left high and dry without any real ability to work.
With intermittent power, and in winter, you have no light, and if you have you need to conserve power usage for the benefit of all. So a computer, laptop, or mobile might seem the best possibility to record any information, or do some brainstorming in the dark. But you are limited by your device battery power, and you need to conserve that.
This leads you to use pen and paper to write, to think, to brainstorm. And then when powers comes up copy some things to the computer.
Most programming today is concentrated in programming a web application working in the browser and interacting with a server. Even if are programming a mobile application, or in the more rare case, a desktop application, it needs to interact with the server. The server stores data, which your application fetches and stores.
In real-life the server, the database, the images storage, is somewhere in the cloud, in one of the cloud providers.
If you want to program with intermittent Internet and power, you need all this environment, including the server and database, to be on your desktop computer. Otherwise, you will not be able to do any programming when disconnected from the Internet.
Disconnection from the Internet in this hardship can occur at any time, so you need to plan your work into carefully distinguished phases of programming and deploying your work to the cloud.
I wanted to share my experience in Kyiv with you, in order to raise you awareness to resilience as a major consideration in your environment. Resilience is achieved better and faster if it is thought in advance.
Yoram Kornatzky