“Be nice to your users, and they’ll be nice to you,” is the first law of the Internet of Things (IoT) for developers, according to Cort McAnlis, Google’s Developer Advocate. And the best way to be nice is to just stop taxing users’ handset batteries every time they go outside, whether to the mall or down town for a stroll.
These “power taxes” come in many forms. Developers responding to poorly designed marketing requirements results in unsolicited notifications when passing a store, unnecessary beacons, dings, pings, pongs and bells. When users become inured to beacons and solicitations, marketers turn to high-res images to get noticed, further draining the battery, as not only are high-res images not needed on a small screen – and many developers are unaware of their compression options. Even the simple act of moving increases power consumption as tracking algorithms have to work harder (higher-frequency sampling).
Every single one of these sucks power from a battery, said McAnlis, “Marketing: You’re taxing users for getting to your “funnel”.”
Marketers will do what marketers do, but the bigger crime is that developers aren’t pushing back hard enough on behalf of the user.
Even the type of coding used came under fire from McAnlis. “Developers, move past JSON: It’s bloated,” he said. It essentially uses a human-readable file format with annotations, strings and ampersands. But this is IoT, he said. “There are no humans here!” [Much of the IoT communication takes place in the background, unbeknownst to the users.] We’re bloating our data for no reason. JSON is great but if users are paying $17 per gigabyte on their plan, it’s not worth it.”
The problem goes as far as the very infrastructure and networking processes we use. As a “horror story” example, a Bluetooth connection to a parking meter can result in a handset paying a visit to a cellular tower to access a website to enter credit card information. “And guess what’s on the site? An ad,” he said. “And the user has to pay to download the ad,” both in terms of battery power, as well as bytes used on their data plan. “Every bit counts for users,” he said, and all this networking isn’t free.. it’s a taxation system for every little thing it does.”
“A billion users are about to come online for the first time in India and Indonesia, and they’re being taxed too – and they pay per byte, versus gigabyte.” It’s actually worse in these regions, he noted, given that most of these users will be on slower interfaces, therefore will consume more power to download a given amount of data.
“Battery power is driving every part of the IoT,” he said, and if developers don’t understand and act upon this fact at a fundamental level, the obvious answer is for users is to simply set their phone to “Airplane Mode”. This destroys the user experience while obliterating any chance of a success for a business strategy based on IoT and user location information.
Alas, these issues are all symptoms of a much more fundamental problem. “The issue is we are building the IoT on the technology we have. We need to build it on technology that doesn’t suck for the user.”
Better network options are a good start. “How do we get Wi-Fi involved in the IoT – safely and securely? We need an Internet for the Internet of Things.”
In the meantime, however, developers can take some practical steps to make the IoT more efficient, starting with moving off JSON to proto-buffers or FlatBuffers. “JSON is good, but for IoT we need to do better: we need to look at binary forms of serialization formats.”
From there, McAnlis advocates… well, see the video. It’s worth watching, just to hear him talk and get a crash course in compression, see whether or not GZIP will save the IoT, and join the developer world in taking a new form of pledge, one premised upon the good idea of not killing the IoT before it even starts.