Do You Know Your Email Address?

I had, without question, the strangest conversation I’ve ever had today.  It fundamentally makes me head hurt to think about it.  It reminds me of a bit from the comedian Lewis Black, where he was consumed by something he heard a woman say in a coffee shop: “If it hadn’t been for my horse, I wouldn’t have spent that year in college!”

Anyways, this is a completely real story that happened no more than an hour ago.  I wanted to record this exchange while it was still fresh.

Background

I have a Gmail address that I never use, but it’s only my last name, so I’ve held on to it.  It forwards all of its mail to my primary email address, so I still receive all of the messages.  For several years, I occasionally will get strange registration emails to this address for websites like Amazon, Best Buy, SoundCloud, and others.  I’ve never been able to reach out to the person, however, because the only contact information they provided was MY email address.

Today, I received a registration email from Netflix, registered to that email address.  And then I got another message that they needed to confirm my phone number.

verifyphone

When I clicked on the link, it showed me the entire phone number of the person.  This was the first time that I had a way to contact this foolish person registering accounts with my email address!!

So I decided to text this person, in the off-chance it was a mobile phone.  Maybe I could figure out what the problem was!  The following is a completely unedited text exchange between me and this person.

textmessages

 

Amazing, right?

Wrap Up

You may have noticed that I had the names of two people that had been registering accounts with my email address.  And she knew the other person, because it’s her cousin.

THIS MEANS THEY BOTH THINK THEIR EMAIL ADDRESSES ARE MY EMAIL ADDRESS!  This also, somehow, means that they both think they have the same email address.  I’m betting they’ve never discussed this, but I would love love love to hear her tell this story to her family tonight.

Just thought I should share!

P.S.  Did she say her grandpa brother?  Does she have a brother that is also somehow her grandpa?  This might offer a real explanation for this whole ordeal.

Getting Alexa To Pronounce Ordinals

Today, I’m working on a project that requires Alexa to say things like “first,” “second,” or “twenty-first.”  I’ve gone through a few iterations of creating these ordinal strings.

First: Brute Force Attempt

I started the easy way: I created a hard-coded switch statement for the values from 1 – 10, and used a helper function to feed me the appropriate return value as a string..  Not the most elegant, but it got the job done.

Second: Slightly More Elegant and Scaleable

As my application grew, I realized that I would now need the values from 1 – 50 available in my application.  I added to my switch statement…until I got to 15.  At that point, I realized I needed a new solution that could scale to any number I passed in.  So I started writing some logic to append “st” to numbers that ended in 1, “nd” to numbers that ended in 2, “rd” to numbers that ended in 3, and “th” to pretty much everything else.  I had to write some exception cases for 11, 12, and 13.

It was at this point that I made an amazing discovery.

Third: Alexa is already too smart for me.

While playing with my second solution, I used the Voice Simulator that is available when you are building an Alexa skill.  I wanted to see if Alexa would pronounce the words the same if I just appended the suffixes like “th” or “nd” to the actual number value, rather than trying to convert the whole thing to a word.

This is where the discovery was made.

I tried getting her to say “4th,” and she pronounced it as I expected: “fourth.”

On a whim, I added “th” to the number 2, which would normally be incorrect.  She pronounced it “second.”  I had the same experience with “1th,” which she still got correct as “first.”

If you append “th” to the end of any number, Alexa will pronounce the appropriate ordinal.

My mind was slightly blown today.  Thanks, Alexa.

The Art of the Coding Tutorial

As part of my new responsibilities at Amazon, I’m working to re-write the Alexa development tutorials for a couple of reasons:

  1. We want them to be as easy to follow as possible for developers of all skill levels.
  2. The Amazon Developer Portal and AWS will forever be making changes to their interfaces, and we want to be able to easily keep up with updating our screenshots.
  3. We want to be able to re-use as much of each tutorial as possible, again to minimize the maintenance costs that come with updates.

Before anything else, however, we want tutorials that help developers get from Point A (no Alexa skill) to Point B (published Alexa skill) with as few barriers as possible.

So I ask these questions of you, my wonderful readers:

  1. What are some examples of tutorials that you have found effective?
  2. Which is the best format for you to follow a tutorial?
    1. One long web page that covers every step.
    2. One web page that covers the essential steps, but has links to the “fringe-y” stuff that only some developers will require.
    3. Multi-page tutorial that breaks the process into 5-6 digestible chunks.
    4. A video.
  3. Is it more important to get to Point B, or understand *how* you got there?

Circle Solves THAT Problem

Last week, I had several conversations with other parents at my son’s school about technology, smart home stuff, and our kids.  They were telling me about how they had a “Circle with Disney“, and how that made it so much easier to manage their kids’ time online.  Normally, in a conversation like this, I tend to be the one sharing the merits of some technology (software or hardware) that is somehow simplifying my life.  This time, however, I was on the other side of the conversation, and it was weird.

I’d never even heard of this device.  (What is a Circle with Disney?  I imagined it was a wi-fi router with Mickey’s ears that had simplified software for non-technical folks to understand.)  Even if I haven’t tried something, I’ve usually heard of it, or at least the category.  This one completely caught me off guard.  So I checked it out.

It. Is. Awesome.

circleshot

It’s about the size of a can of soda, and it manages and reports all of the activity and devices that are on your wi-fi network.

You’ve probably seen clever images like this making the rounds on your social media:

wifipassword

The idea behind changing the wifi password every day seems brilliant.  “Kids, do your chores, and I’ll give you today’s password.”

In practical use, however, your kids aren’t the only ones using the wifi in your home.  Your phone, your laptop, your television, your Xbox, your light switches, your lightbulbs, your thermostat, your garage door, maybe even your refrigerator are using it too!  Nobody is going to change the wifi password on all of those devices every day, just to get their kids to do a few chores.

Circle solves that problem by giving you the ability to turn access to the Internet on and off for every single device (or person) on your network without any effort.  This means you can set specific limits for each person or device in your home.

Setting Up Your Circle

When you first set up your Circle, you go through a quick five minute setup, and then the work really begins.  You are presented with a list of every single device that is currently connected to your network.

circle1

I’d love to tell you that it automatically knows the name of every device on your network, and you won’t have to put on your Sherlock Holmes hat to figure some of them out, but I’d be lying to you.  I know my home is far beyond the average, but I have 44 devices on my network currently.  This includes:

  • 4 iPads
  • 3 iPhones
  • 3 computers
  • 2 light switches
  • 2 Amazon Dash buttons
  • 1 Garageio
  • 1 Fitbit Aria Scale
  • 6 Amazon Echo devices (Dot, Tap, Echo)
  • 1 Nest thermostat
  • 3 Rokus
  • 2 Xbox Ones
  • 1 Wii U
  • 2 webcams
  • 2 Apple TVs
  • 2 Nintendo DSs
  • 2 Amazon Kindles
  • 2 wi-fi printers
  • 2 televisions
  • 1 Logitech Harmony remote
  • a few wi-fi lightbulbs

Very few of them were obviously named, so I had to compare the MAC addresses to the Circle app to make sure I had the right one.  Even the iPads only identified as an iPad, so I had to make sure I knew which one was which.  Once you’re done with your sleuthing, however, it is magical, as you’ll see in the next section.  (My recommendation is to go to your router’s home page, and turn a device completely off.  If it disappears, that’s the one you were looking for.  Turn it back on, and mark it accordingly.)

What Circle Can Do

To start, you set up all of the people that live in your home.  For me, that’s my wife and my two children.

20161114_144346000_ios

You’ll notice on most of the screens of the app, there’s a prominent PAUSE button available.  This turns off Internet access for all of the devices in context.  In the screenshot above, that would pretty much turn off everything that I’m managing with Circle.  (You can have a list of “unmanaged devices” as well, that aren’t affected by your actions in Circle.  This makes sense for things like your thermostat, which you’d never want to shut off unless your kids find a way to watch YouTube on it.)

You can also manage access on an individual level.

20161114_144423000_ios

You can see above that I currently have five devices, and I don’t have many restrictions.  I’ll take you briefly through each of the sections.

Insights

Insights is for seeing data.  How much time a person was online, how much they used a certain app, etc.  Here’s a screenshot of my activity today:

20161114_144949000_ios

I can open each of those sections and dive into websites visited, time spent at each, etc.  The downside to this, at least in my situation, is that if you have a browser tab open, it seems to count that as “activity.”  It’s especially prevalent when that tab auto-refreshes, because even background activity will be considered activity.  It is only monitoring the traffic from these devices, it isn’t checking to see what the traffic actually is.

Devices

The devices section just shows you all of the devices you’ve assigned to a specific person.  It’s entirely up to you how you assign devices, but my personal rule was to classify anything that has one unique user to a person, and things like the Xbox One, which many people use, to my Home group instead.

20161114_144419000_ios

Opening a specific device gives you the MAC address, as well as a place to edit the Device name.  In most cases, the Manufacturer field will be filled in accurately, but not always.  I wish they would allow you to edit the Manufacturer field as well, but they don’t.  This is also where you can change where a device is assigned, or pause the access for this specific device.  (Circle manages your wi-fi access. It does offer an add-on program for $10/month that can also manage your cellular access.  I’m not using this, but I could see it being handy if you have a child that overuses data or spends time at school playing instead of learning.)

20161114_145059000_ios

Filter Level

Filter level is simply some default settings for people of different ages.  When the Circle detects a user trying to access content that isn’t appropriate for their filter level, it will present them with a webpage that lets them know the content has been filtered.  It also restricts the apps/websites they can use, but you can customize all of it to fit your family’s needs.

20161114_144428000_ios

Time Limits

As you’d imagine, Circle lets you set time limits for your users, and also by specific apps.  Many children need access to the Internet to do their homework, but they don’t need to be on YouTube while that’s happening.  This would allow you to limit their access to YouTube to 30 minutes a day, but their total time available could be more like three hours.

20161114_144457000_ios

Bedtime

Bedtime is just another way to manage access times.  You can set a time that everything shuts off for a specific person, so then when they’re supposed to be in their room sleeping, they’re not sneaking in another four hours of Netflix.  Obviously, you can take the devices out of their rooms (as we do), but on the weekends, we tend to be a bit more lax.  This lets you be as lax as you want.

20161114_144438000_ios

Summary

Overall, the Circle is an amazing device for my home.  Not only can I manage, view, and control what my children are accessing, but I also get this control for any additional devices that wander into my house, like the tablets and phones of their friends.  It gives me the peace of mind that they’re not going to venture to places I don’t want them going.  I don’t need angry neighbors asking why their child was watching something inappropriate at my house.

I get notifications every time a new device appears on my network, so there’s no way to sneak your way past the Circle, either.

Finally, I have to mention the Disney angle.  I mentioned that this device is called Circle with Disney.  It wasn’t obvious to me how Disney was even involved, other than the name.  They basically provide a portal on your network at http://mycircle.meetcircle.com.  If you go to that page from any of your devices, it will tell you the specifics about the controls on that device (bedtimes, time limits), as well as a bunch of Pinterest-style photos and links to Disney content.  This seems to be the only real involvement by Disney, which is fine.

circlescreenshot

Holy Cow Garageio!

I’ve decided to start a series of posts about the ever-growing list of smart home devices I’ve decided to bring into my home.  These won’t be on a regular schedule, but as I continue to add functionality to my house, I’ll do my best to provide my opinions and experience with those products.

Today, I want to talk about Garageio.

garageio

You can probably guess from the name, but Garageio is a device that you connect to your garage doors to open/close them, as well as monitor their state.  In addition, you can connect Garageio to Alexa, and make all of that functionality happen with your voice.

Yes, there are certainly cheaper options.  Yes, you could probably build one yourself.  But to get all of this functionality in a package that works reliably, had IFTTT integrations, a great mobile experience, AND works with Alexa?  That’s a tougher deal to beat.

In fact, I tried.  I bought a WeMo Maker device ($70) and hooked that up to my garage door.  It worked, but it didn’t manage state.  So I added a webcam to my garage so that I could see whether the door was open.  It also only allowed me to send an “event” to my door, which meant that it would close if it was open, and open if it was closed.  Not a great experience.

Installation

Installation was surprisingly easy.  The entire contents of the box boiled down to five parts. (I have the two-door model, but the different models really just determine how many wires you get.  It appears it’s always the same box.)

  • The Garageio Black Box
  • Wire for connecting box to garage door opener #1.
  • Wire for connecting box to garage door opener #2.
  • Sensor for garage door #1.
  • Sensor for garage door #2.

Basically, you connect all four wires to the box, connect the box to your wifi, and you’re off and running.  Incredibly easy.

garageioproductphotos-6

Using the Garageio App

For most smart home devices, the app that drives everything is a make-or-break experience.  Thankfully, the Garageio team knocked this one out of the park.  I have a horizontal scrolling list of my doors, and swiping up on a door opens it, swiping down closes it.

20161107_151428000_ios

I also get notifications if a door stays open for 15 minutes.  This is a nice feature, but as a parent of two active kids, the door is constantly open in the afternoons after school.  My daughter gets home at 3pm, and so nearly every day at 3:15pm, I get a notification that the door is still open.  You only get one notification, however, so it’s not annoying.

You can see from my screenshot that there’s also the ability to “Share Doors.”  This allows me to grant temporary (or permanent) access to my garage door to others.

20161107_152049000_ios

IFTTT Integration

As expected, they also did an excellent job with their IFTTT integrations, so that all of the functionality I want can be triggered by all of the other services I use.  For example, I can set a geofence on my phone, so that if I enter a specific area, my garage door automatically opens.

I can also set specific times for it, so that at 10:30pm, it automatically shuts both of my doors so that I don’t leave them open all night.

If you’ve used IFTTT, you know this is only scratching the surface of what is possible, but there’s only so many creative ways to open and close a door.  So far, I’ve been delighted, however.

Alexa Integration

“Alexa, ask Garageio to close Bike Door.”

It works exactly as you would expect.

Garageio was an early entrant in to the world of Alexa, which is awesome.   I think that they will eventually hook it up to the new smart home skill API, which helps in simplifying how I communicate with it, but even now, it’s perfect. It recognizes the names I gave my doors, and works every time.  I’m really happy to have this device in my house, and I would highly recommend it for yours.

You can pick one up on Amazon for about $200.

Making An Alexa Raspberry Pi

Last week, I ordered all of the bits and pieces I needed to get a Raspberry Pi configured to become an Alexa device.  It was incredibly easy, the tutorial was very straightforward, and I ended up with something that can do this:

What You Need

If you want to try this, here’s what you’ll need (links and prices from Amazon):

Optionally, you might want to protect your Raspberry Pi if you plan to take it anywhere.  They make a very nice, inexpensive case for it:

Finally, there are a few things you’ll need to get it running, but these are things I assume you probably have.  If you don’t, I’ve recommended some with the links.

  • USB keyboard & mouse (Logitech MK270 Wireless USB keyboard and mouse – $19.95)

    keyboard
    I like this one because it’s small, compact, and easy to travel with.  Most travel keyboards are garbage, so I tend to lean towards smaller, full-function keyboards instead.  (My primary keyboard is a Das Keyboard, much bigger and clickier.)

  • HDMI monitor (there are way too many options here, any monitor will do. I’m hunting for a tiny one I can travel with.  Like 5″ or smaller.  But in a secure case, since it will likely see the bottom of my backpack occasionally.)
  • Micro-USB Charging Cable (you literally have 100 of these in a drawer. Any of them.)
  • 3.5mm audio cable
  • Literally ANY speaker that can take a 3.5mm audio cable as input (I used the Nokia MD-12 for mine, but you can certainly find cheaper speakers if you need one.)

    nokiamd12

The How-To

I would normally give you a run-down of the steps I took, and the issues I faced, but there simply isn’t much point in that.  I followed the provided tutorial on GitHub, and it was one of the smoothest experiences I’ve ever had setting something like this up.

https://github.com/alexa/alexa-avs-sample-app/wiki/Raspberry-Pi

My Takeaways

I’m working on a few things to enhance the experience, but here’s my takeaways:

  1. If you ONLY want an Alexa device, this is probably not the project for you.  The Echo Dot is $49.99, and doesn’t require any setup to work.  This project, at a minimum cost, is about $53.15.  That being said, having an Alexa device that can also run some other services is really compelling.  Adding a touchscreen to it would allow you to see the “cards” that Alexa skills produce at http://alexa.amazon.com, for example.
  2. Each time you power up the Raspberry Pi, you have to manually start all of the services again.  I’m hoping that with some creative effort, this might not always be true, but there’s some authentication that happens that requires your monitor, mouse, and keyboard every time you power it up.  (This is why I’m looking for travel keyboards and monitors.)
  3. This was one of my first experiences in the Raspberry Pi ecosystem, and I’m very excited by what I found.  There are tons of accessories to enhance and protect your device, and I’m looking forward to seeing where I can take this project forward.

 

 

 

My Frustrations with “Smart Home”

That’s not a fair title.  I LOVE the smart home movement.  I love being able to open/close my garage remotely.  I love having rooms light up as I walk into them.  I love concocting recipes on IFTTT to mash-up my smart devices into even smarter experiences.  I love telling Alexa to control my home with only my voice.

“If it is 10:30pm, and the garage door is open, close it.”

What I don’t love, however, is that much of the experience and joy that is meant to be created by smart devices seems to have been created exclusively for one person that lives by themselves.  Let me give you a few examples:

Smart Bulbs

Smart lightbulbs can be controlled by my phone.  They can change colors, be turned on and off, and even dance to my music.  Amazing, right?  Where this story falls apart quickly, however, is the traditional light switch.

If I turn the bulb off from my phone, the light switch becomes non-functional.

If I turn the bulb off with the switch, I lose all of the “smart” features.

If I am a single person living by myself, I can consciously make a decision to only control the bulbs from my phone, and everything is harmonious.  Once you introduce roommates, like a spouse, or even worse, children, this entire experiment falls apart.  The consistency that you require evaporates instantly.

Smart Plugs

 

 

This is another example of power management that has so much potential.  Plug this into the wall, and now you can control a lamp, a stereo, or really anything else that requires power.  You can even set timers, so it’s an incredible way to manage those random lamps you have around your home!

That is, until someone turns that lamp off in the traditional way.

catlight

Now your smart plug is a $40 brick that can control nothing.  It’s incredibly frustrating, and most of the frustration comes from the fact that our homes are not constructed with the idea of a smart home in mind.

Geofencing

geofencing

Geofencing might be one of the coolest ideas around when it comes to smart home functionality.

“When I pull into my driveway, open the garage, turn on the lights, set the thermostat to 71F, and turn on my favorite music.”

“When I am gone for more than 18 hours, set the entire house to away.  Light bulbs on timers, thermostat as low energy as possible, all doors closed and locked.”

If I lived by myself, This. Would. Be. Awesome.  Instead, it becomes an incredible way to scare my entire family to death as I dramatically announce my home arrival.  There HAS to be a better way.

Summary

In short, I love smart home stuff.  But as a software developer, my brain wants more.  Today, in our homes, we basically get the equivalent of a solitary IF statement.

IF I pull in the driveway, THEN do this stuff.

In order for this smart home stuff to be truly impressive (and accessible) to everyone, we need to be able to add as many conditions as we possibly can.

IF I pull in the driveway AND my family is home, THEN open the garage.
ELSEIF my family isn’t home, THEN open the garage AND turn the house up to eleven.

Smart home is still really in its infancy for consumers.  If we want to make it more accessible, we need to be able to provide this level of customization in an easy to use format.  IFTTT and Stringify have made huge strides here, but we still have a long way to go.

I, for one, look forward to the very near future.  This stuff is amazing, even if it’s also frustrating sometimes.