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

Comedy Hack Day 9 - Humanize Her


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.


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:

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.

The Cardinals are Either Horrible or Super l33t Hackers


The St. Louis Cardinals have been in the news lately because they have the best record in MLB…and there was this little “hacking” story.

NYTimes: “Cardinals Investigated for Hacking Into Astros’ Database”:

Investigators have uncovered evidence that Cardinals employees broke into a network of the Astros that housed special databases the team had built, law enforcement officials said. Internal discussions about trades, proprietary statistics and scouting reports were compromised, said the officials, who were not authorized to discuss a continuing investigation.

St. Louis, baseball, computers, and sorta stupid with people freaking out?! This is my dream story! Why oh why couldn’t this have happened while I was still in St. Louis writing Punching Kitty?! This is my wheelhouse! It’s like my old blog became sentient and birthed it’s own perfect story in an effort to get me back to the old trusty Wordpress writing screen and we could be together again. My blog would be so happy, but alas it’s not to be. I’m going to write up my thoughts on this, my new blog. I have no doubt that after this half-successful attempt the now sentient Punching will have no choice but to go a more direct route and lure me to a van with promises of free sandwiches and then chloroform me when I peer in to the dark van interior. “Wait, where’s my sandwich? Urggumffff…” will be my last words for days until I wake up in a warehouse in St. Louis with nothing but a crappy laptop on a rickety table and a single lightbulb swinging above me. I’ll then spend days writing out story after story, dick joke after dick joke, catching up on Ferguson, Cardinals and “Gee it sure is hot!” stories. Finally I’ll try to do that trick from “Misery” where I ask for different paper but that won’t work because who the hell uses paper. Then…um…a local sheriff will get murdered when he stumbles upon my captivity and…um…well…maybe I’ll slip away during one of the many subsequent well meaning protests done by a crap load of white people from St. Charles County because they don’t understand how a blog killed a cop and figure it must be a black thing somehow.

Yeah, OK. I think I took that as far as it could go. Lets talk about the Cardinals again!

There are really three major responses to the Cardinals “hacking” story and it might make sense to just run through each of them, but first a short digression on why I keep putting “hacking” in quotes. It’s not because I’m a Cardinals fan that thinks this story is silly or doesn’t matter. It’s just that, as a computer professional, I hate how lame the word hacking has become. Guessing someone’s password isn’t “hacking.” That particular hack would be called, using industry terms, “guessing someone’s password.”

1. The Cardinals are an evil hacking empire!

Did the Cardinals hack other teams? If they broke in to the Astro’s system by using an old password, then no they probably didn’t…or maybe that “Everyone write your password down and give it to the Cardinals” game they play at the annual General Manager Meetings should really get canceled.

2. The Cardinals are so stupid! Don’t they have better a technical staff than this?!

If you believe the team orchestrated this “hack” then yes that would be really really stupid, but there’s no sign of the attacking being coordinated by upper management. If you believe that some low level stats or tech staff did this on their own, then yeah, they should have done a better job because apparently they didn’t even use TOR correctly. However, my theory is that a bunch of of the tech team were sitting around the Spring Training house and someone said “I wonder if Jeff still uses the same password.” and then another person muted the TV and said “Let’s try!” so they thought just long enough to decide to use Tor and then gave it a shot…and holy crap it worked! This of course doesn’t mean what they did was wrong and stupid and lame, but it might explain why they didn’t setup Tor correctly or bother to bounce through a few foreign proxies.

3. Ha! Screw the Cardinals.

Ok. When you win and when people write weird missives about how perfect Christian baseball angels all of the Cardinals are after years of having Tony LaRussa beat your team down with sunglasses on at 10p then I don’t blame you for waiting for a time to pounce and then roll around in the collective Cardinal misery and really grind it in to your butt crack. Sink down in to it like a giant bowl of schadenfreude-flavored pudding.

What’s next for the Cardinals?

Well the FBI might eventually name someone but it will only be a guess and that person will be fired and the rest of the people that were tangentially involved will finally read the whole article on how Tor works. I also know that there will be 30 new Sr. VP of Technical Security job postings for across all MLB teams. Lastly, the Cardinals will hear about this all the time but I doubt much will come of it long term. The only impact I’m concerned about is if other teams will be less likely to deal with the Cardinals during this or subsequent trade seasons. Lets hope John Mozeliak is as respected as we hear he is. We need a SP and a bench upgrade!

The Story of Egg.js


If you know me, read this site or Punching Kitty, or even just follow me on Twitter, it won’t surprise you that I like to put an easter egg in everything I make. (Example: Type the konami code right now.) APIs or command line programs aren’t always the best easter egg medium, but website are fertile ground and about two months ago I got tired of pasting the same basic easter egg code in all of my websites and thought about making a quick library to add easter eggs and tracking (you’ve got to know if people have figured them out!). Egg.js was born. I threw some simple javascript code together and pushed it up to GitHub…and then it needed a peer review (I practice what a preach) and sent it over to my friend Rob who is the best Javascript dev I know and he made some great suggestions / rewrote it. In the end, it works well and has a nice simple interface to get out the way and let you focus on the joke and not all of the setup.

A few days later, I was sitting at the Clojure/West conference, in between sessions, and said to Rob: “I wonder if I should submit this to Hacker News. It feels like one of those silly things that always take off and hit the homepage.”


I told you!

Yes, I was 100% right, but it was actually far more popular than I thought and, shockingly, the Hacker News comments were pretty nice. All of a sudden, Egg.js was one of the trending Javascript repos, sitting with the likes of React JS and React Native!


A few days later it raced past 1000 stars on GitHub and it’s still growing. Crazy. I guess people like silly web jokes.

You can check out the details at

mikeflynn @ GitHub thatmikeflynn @ Twitter