I traveled quite a bit recently and got exposed to a negative aspect of current technology: Things work well if you have a solid internet connection with no traffic limits and are plugged into a power outlet. Otherwise, things do not work well at all. This blog post describes the problems that arise and suggests solutions.
Cell phones are quite good at conserving traffic, laptops much less so. This becomes a problem when your laptop has a mobile connection (e.g., via tethering or in a hotel with data caps). I once accidentally started iTunes in such a situation and immediately used up my daily allowance of traffic. Similarly, mobile email is frugal with traffic (only the current folder is updated, attachments are only downloaded on demand, etc.), desktop email is usually not.
How can this be handled better? I’d like to see three traffic modes for all operating systems: “full”, “restricted”, “minimal”:
The currently active mode can be chosen automatically, in most cases (but manual override must be possible). Location seems an interesting criterion:
Note that being connected via Wi-Fi does not necessarily mean that traffic is unlimited. Which mode to use could also be configured per network (cellular per carrier, Wi-Fi per WLAN).
Lastly, the same file is often downloaded multiple times. For example, the same image by several web browsers and by a Twitter client. Several apps could share a cache and traffic could be saved.
Automatically syncing one’s data via the internet has made operating multiple devices much easier. A few examples:
Alas, syncing doesn’t work if one is not connected. It would be nice if we could have peer syncing: create a WLAN and let the devices sync with each other, instead of with a server on the internet. Even in a broadband setting, it would help if one could peer-sync large downloads such as apps, OS upgrades, etc.
It is interesting to see how much apps and protocols are designed around continuous connectivity: Usually a task is aborted if there is a time-out. If connectivity is intermittent, one has to start from scratch every time one is connected. Therefore, the task will never finish if one cannot transmit all of the data in a single session, even if it could be done in multiple sessions. Additionally, you often have to re-try manually.
Again, some kind of queue seems useful: tasks requiring connectivity would be added to it and worked on incrementally, whenever there is a connection.
Additionally, I’d love to have a way to tell my device that I’m about to go offline for a longer time. It could then immediately download emails, web pages in reading lists, contacts, events, files, etc., without waiting for an app to start or a periodic timer to go off.
Operating systems (Windows 8, OS X, Android) are becoming increasingly adept at saving battery power: network requests are batched, apps put to sleep in the background, etc.
On desktop operating systems, I feel that I should get a warning if an app uses an exceptional amount of processing time. This is bad if you are running on battery power. But even if you are plugged in, you want such a warning, because processing-intensive apps can run for a long time without being noticed, while consuming considerable amounts of power.
When it comes to tethering, I like a feature that Apple has added to the upcoming OS X Yosemite: In your laptop’s Wi-Fi menu, you can see your tethered iPhone’s battery life and signal strength. Thus, there is no need to take one’s phone out of one’s pocket to check those stats.
These are a few random things that I find useful when I’m mobile:
Whenever I am mulling over the problem of unconnected computing, I keep coming back to the aforementioned task queue – an operating system service similar to a printer queue, to which apps post tasks that depend on being connected to the internet. Such a queue would have several advantages:
Controlling traffic via the previously mentioned modes would work well together with the queue: If a task is too expensive for the current mode, you can pause it temporarily, until conditions become more favorable.
Further reading: The website of the “Offline First!” project (by the team behind Hoodie) describes many interesting ideas for improving the offline operation of apps (especially of web-based apps, but also of native apps).