This is the blog, but if you want to know more about me and my projects, check out the Projects and About pages.

Amazon Dash Buttons are Awesome For Everything but Buying Stuff

image

Sell a wifi-enabled button to buy stuff on Amazon? Sure you’d have to make sure you can’t easily modify the button so that people can buy them and _not_ buy stuff on Amazon with them, but that shouldn’t be too hard.

Amazon had barely started selling their $5 “Dash Buttons” before this post on Medium showed up: “How I Hacked Amazon’s $5 WiFi Button to track Baby Data”. In it, Ted Benson, the co-founder and CTO of Cloudstitch, detailed how he managed to capture the click of an Amazon Dash Button without a single modification and it’s very simple: Sit on your wireless network until you see the Dash Button join and request an IP address. Amazon was obviously trying to squeeze as much battery as possible out of these little buttons so they wisely made the wifi antennae only connect when the button was pressed and shutdown right after, but that connection makes ripples in the form of ARP packets that need to be sent to acquire an IP address. If you write a script that listens for those packets and knows the MAC address of a specific button (and if you did just enough of the Dash Button setup process to give it wifi access, but not enough to say which product you want to buy) then you’re all set to have yourself a snazzy wireless button!

Pretty cool. I need one of those. Do I need one of those? I can think of something I’m sure…ok, yeah…I thought of something. I’ll buy one.

Ted used a Python library called scapy to do his network sniffing, but I don’t like Python. I don’t run any Python scripts in my internal server, and I don’t want to, so lets rewrite this functionality in Go (golang).

Took some digging around in the Go documentation, but I got it…

So what was that thing I wanted to do with the button again…? Right, lights. So here’s the back-story: I have two ceiling light fixtures in my basement / home office / my daughter’s blanket fort area, with both on different switches. I have Hue Lux light in the fixtures but the problem with wifi lights is that when you hit the switch they are off and you can’t control them any more, but turning them off via the app every time is a pain in the ass. Plus the switch for the back lights is in this terrible place that I always forget to hit on the way out…anyway, it would be a lot better if I had one switch that controlled all of the light and that switch didn’t turn them off, but turned them down so they would still be reachable for the apps.

I looked for a Go Hue light API library, but the only one I found was dead and not very good…so lets write one of those now! Why not?! Actually the Hue API is a little weird, but it’s pretty simple. This shouldn’t take long (especially in blog post time)…

Ok, all set!

Here it is compiled all together in a single project: github.com/mikeflynn/go-dash-button. It logs out new Dash Buttons it sees, Hue errors, and has a config file option baked in for API keys and stuff. It could stand to be even more flexible and more easily importable in to a Go project, but I figured that not many will use this and stopped short. If you do want to use this for your own buttons let me know and I can clean it up further.

So my button works, now what? The finishing touches were capping the light switches (we rent) and adding a little hook to the wall for the button to live. The hook works out great as it’s right above the old switch but you can pull it off the wall and use it as a portable switch by the couch. I also found that regular Office Depot sticky labels are the perfect width to stick on over the brand logo for relabeling.

image

Now I’m just thinking of what else in my life needs a wireless button!

The Movie Hackers is 20 Years Old and I Still Love It

Every day there’s a new post on Reddit / Hacker News / Twitter / Bloop / Slammy / Buzzfeed about how some thing that we all loved has a nice round birthday and today it was “Hackers”. The cult class is 20 years old. Crazy. I’ve probably watched that movie 100+ times over the last 20 years.

image

People love to rag on “Hackers” (and really all movies that have computing as a central theme) because it’s outdated or “That’s not how it really works!” As if someone had to be told that when you “hack the Gibson” your computer didn’t spontaneously start tripping balls with crazy colors and lasers shooting all over the place. Doesn’t matter to me now and I didn’t matter to me 20 years ago. The fact is “Hackers” played a pretty big role in where I am today with computers being a massive portion of my life. I always loved my parents computer(s) but 20 years ago, at the ripe old age of 14, I wanted to be a doctor. More specifically, a surgeon. Even more specifically, a cardiovascular surgeon. It didn’t really even occur to me that “playing on the computer” was something more than a hobby. We had the internet (free dial-up text-only service provided by the local library) that I was on constantly, but it wasn’t like it is today where 5 seconds of Google can convince anyone that any random thought they have is shared by thousands of others. Watching “Hackers” was a revelation, talking about it with other kids at school was that x10. I want to do this! All the time! In short, “Hackers” made me, and many many others, realize that knowing about computers was cool. Sure it was 1995 and we still had a few years until “The Social Network” made it more cool, but Dade and the rest of the characters were very cool. The soundtrack was cool. Rollerblading down the street while your pre-programmed traffic light hack suddenly activated was cool. Close enough.

image

I remember reading txt files from whocanremember.com about how a computer virus works (made my dad nervous when he heard me talking about it to a friend). A year later I was hand copying the source code of TI-83 games in to my calculator (I couldn’t afford the crazy expensive transfer cable) and after all that tedious work I was quickly realizing what lines I needed to modify to make a different version of the game. It wasn’t long after that, while being very frustrated by my terrible chemistry teacher, that my mom suggested that maybe I think about studying Computer Science in college. Now, roughly 16 years later, I’m 12 years in to a successful career in computers, and I’ve got big plans to watch “Hackers”, for the 101st? 150th? 200th? 300? time later tonight. This time in 720p!

…and I’m still struggling to come up with a better handle than “Zero Cool”.

Required “Hackers” reading / viewing:

‘Hackers’ at 20 @ passcode.csmonitor.com

“Hackers” @ artofthetitle.com

The “Hackers” Trailer

Comedy Hack Day 9 - Humanize Her

image

The 3/4ths of the family went down to Santa Monica a few weekends ago so that I could participate in Comedy Hack Day 9 and here’s the short version: My team went to the finals and we had some crazy projector issues but it was still a blast.

I’m in LA at least once a month (much more as of late) and am the CTO of a Beverly Hills media company, but it was still surprised to me how different Comedy Hack Day in LA was over San Francisco. I figured there would be less developers and more comedians (and “comedians”), and there was, but what I didn’t expect was how seriously people took an entirely silly (but wonderful) event. Differences aside I still had a great time, got to be on the big stage again, and gained some random listening to several conversations about what it’s like to audition for commercials.

Our project was called “Humanize Her” and it was an mobile app that made a woman talking look like a man so you’ll listen to her and respect her opinions. Technically, we used your phone’s camera and then applied “filters” that were pictures of men with their faces cut out. There were two people that could code on the team (an embarrassment of riches compared to some other teams) and the two of us decided to go with a mobile web app as the other developer was primarily a Javascript developer. This was kind of a mistake. The app worked fine and functioned just as a mobile app, but the HTML5 APIs we needed were only on Android’s Chrome browser which effectively made it an “Android App” and then made it 1000x harder to send the phone’s image to a projector. Every Android maker has their own video out cable and even if you had the right cable it still didn’t really work. We managed to get through the Saturday night round with a Chromecast but we weren’t so lucky in the finals when the projector in the theater never wanted to show the video (it worked fine in the pre-show walkthrough, naturally). The presentation was really funny but after 20 minutes of everyone (host, judges, team, and audience) sitting there it just wasn’t ever going to be as funny as it could have been. I think we had a great chance to win the thing, but…oh well. It wasn’t to be even despite Cultivated Wit’s newly anointed CEO doing an inspired job as our iPhone camera man shooting our Android phone.

image

Some people on my team were pretty upset but getting to the finals and being on stage is the real treat…still, I’m not known for my ability to let things go, so I came home and made the iOS version we should have made from the start.

VLOG 000 - VidCon

In my 0th Vlog post, I chronicle my afternoon trip down to Anaheim for VidCon 2015. If you aren’t in the know, VidCon is

VidCon is a multi-genre online video conference, held annually in Southern California since 2010. Originally conceived by Hank and John Green of the “VlogBrothers” YouTube channel, the convention is the largest of its kind in the world, gathering thousands of online video viewers, creators, and industry representatives worldwide. One of the creators, Hank Green, described it as “a convention, and a conference, and a celebration, and a discussion”.

It’s also crazy as creators, online video industry folk, and the fans converge on one location for four days. I was only there for a few hours and that was plenty of crazy for me.

VidCon in Six Hours

Alexa, Lets Play Jeopardy!

Alexa Jeopardy Demo

I’ve been playing around with my new Amazon Echo and writing up some “Skills” for the Amazon Alexa voice assistant and so far so good! What I’ve got above is a link to a YouTube video I did demoing a “Jeopardy” skill. It’s not fully baked in that you can’t play a complete game of Jeopardy, but you can choose a category, get a question, and it will keep score for you. There’s no way I can release this officially without the cold hand of Jeopardy Corp. slapping me down, but it was a great first project for Alexa development as it involved multiple voice intents, keeping an active session, etc.

Everything is written in Go using my Go Alexa Skill library that kind of formed by accident as I was working through the initial build and keeps the Jeopardy-specific portion to a 350 line file. You can find the code for everything, the library, the Jeopardy example and even the Amazon API configuration files (voice intents and sample utterances) here: github.com/mikeflynn/go-alexa

Please reach out on Twitter or file a GitHub issue if you have any questions (or a pull request). I’m happy to dive in to more detail as needed.

Going forward I’ve got a few much larger ideas I can implement with the Alexa Skill API, and I might go back and flesh out Jeopardy a little more. It needs Double Jeopardy.

mikeflynn @ GitHub thatmikeflynn @ Twitter