Magic Rocks

There’s something magical about asking a computer a question and having it respond to you.

When I was a kid my cousin had a VTech computer, which was essentially a TI calculator in a laptop shaped case, without the math stuff, and with a qwerty keyboard and some learning games. At some point I discovered it had BASIC on it, and was utterly amazed that I could make the computer do what I wanted via changing this simple code. This was pure black magic.

While it still feels like magic that we can force a computer to do our bidding, after over a decade I’ve grown accustomed to doing this and it feels like a mundane magic.

Imagine if wizards were a real thing, and they existed right alongside us. Now imagine the modern world, but one where those wizards had become embedded into society, just another component, accepted by everyone. Over time, civilization would integrate those wizards and they’d be doing all sorts of day to day stuff to make society work: building bridges, creating energy, and operating behind the scenes. You can imagine these wizards would grow used to their magic. Not bored per-se, but just accustomed to it. Here’s the thing though: This is the world we live in, the wizards are just programmers and the magic is code.

This quote summarizes my feelings about computers in general:

Then you take this rock and you give it a speaker and microphone and suddenly the novelty is back. Nothing has really changed; Alexa isn’t necessarily a huge leap forward in technology — Google has been able to answer text questions for quite some time — the only difference is now there is a new way to interact with the computer. Once we remove the monotony of these talking rocks we remember that this all really is magic.

This was my experience upon being exposed to Alexa. There is an initial novelty to asking questions to a piece of plastic and having it answer you. Even when it gets confused, or is just wrong, it’s still cool. Later on, I discovered there was an API to interact with it, and I knew my fate was sealed.

At work we got a pair of Amazon Dots to join our menagerie of cool tech toys searching for interesting uses. Then, we had a smart home hackathon, breaking up into two teams with developers and project managers. After some brainstorming we decided one of the teams would work with Alexa to deliver an Inspire related flash briefing. Just like when I was 12 years old, as soon as I got Alexa to say something I had written I was blown away.

The details for getting an Alexa working are boring. But the very fact that they’re boring is what makes it so interesting. Basically you deliver JSON to the Alexa and she reads it. These two guides walk through setting up a custom Flash briefing skill, and examples of the JSON.

We went with the flash briefing because it’s the easiest to get started with, although it lacks interactivity. One thing that eluded me at first, was that all the Alexa development happens on Amazon’s developer portal, not AWS. But once you’re there, it’s easy to follow along. Just put an endpoint that returns the appropriate JSON as the feed URL and you’re set.

In a lot of ways, making a custom Alexa skill has the same feeling that writing BASIC did. The juxtaposition of it being easy and self-explanatory while also having no idea what is going on. I think that balance is the key to making something interesting to develop in, while not being frustrating or boring.

We live in a world of talking magic rocks, and programmers are the wizards that make them think and speak. Whenever I feel like what I’m doing at work is routine, I try to remind myself of how lucky I am to be one of the wizards in this scenario, and how literally anything is possible if only I can think up the right spells.