A news article last month gave me pause to perk up my ears. Robot refrigerators turned evil and spammed their masters. The dark side of the Internet of Things (IoT) has arrived!
Well I guess the IoT has been around for a while, but THE POINT IS: It’s come-of-age, is prime-time, the real-deal. Nine billion devices out there! 100 billion by 2020! Software companies, IBM, Microsoft, Blackberry, et al; and hardware companies Intel, ARM, et al; and the open source world have all announced they’re in the game. And one billion dollars of venture capitalist investment last year alone. One billion! That’s $1X10^9 that’s $1,000,000,000 that’s 10 tons of $100 dollar bills. Venture capital.
What does that mean for us? For developers and consultants? Are we ready? My first thought was: pretty much. But we have been working in the mobile, automotive, and embedded world for a while now. So what is the difference and what are we likely to need to learn?
The IoT is made up of small computers hooked up to a variety of sensors and the internet. The computers — many of them on a single board, some as small as a pack of gum – run mostly Linux, or variations of it like Android and QNX. The sensors are often connected via serial ports (RS232) or are connected directly via GPIO. The CPU’s on these machines can be slower than your average server or laptop, maybe 400Mhz. (Hey, that was a pretty hot machine in 1999!) So compiling to a native executable might be necessary. If you’re using C++, I’d recommend Qt. We’ve been having a ton fun with Qt for native development on Blackberry phones and some scientific telemetry projects — we’re currently teaching robot submarines how to see magnetism under the sea. Seriously.
For the IoT, the server side is much the same, except sheer the volume of data ( if a 100 billion devices just clear their throats — “Ahem.”, there’s a half a terabyte gone! Do you want xml tags with that?) So think scalability…and what are you going to do with all that data? Need the cloud? How are you going to update your sofware? Updates can be tricky depending on what your device is responsible for. Can you reboot even? And of course security — e.g. how do you build yourC++ structs to prevent buffer overflow attacks?
You might even be able to leverage your .NET skills. ZDNet reported yesterday that Microsoft is interested in Xamarin, bringing C# to android and other platforms.
So what’s new for IoT? Mostly just think small. Small data, small executables. Think fast, maybe native. And build for security, and easy upgrades.
What else do you need to take your place in the history of the IoT, building the sensory system of the world, promising economy, efficiency, ecology and who knows, enlightenment?!
Let me know.