Failure is, in fact, an option

I read a lot of running blogs, and they’re basically all glowing prose about how special running is, about how wonderful life is, and about how they’re setting one PR after another after another…

Read More

Conversational design

If you’ve heard me ever deliver a presentation on bots, one thing you’ve heard over and over is that a bot is just an app. There are numerous reasons I repeat this mantra, but not the least of which is the fact it’s true - a bot is simply an app with a different interface.

Read More

TypeScript in 4 lines of code

In four lines of code, here is why you should stop using JavaScript, and write every project in TypeScript:

Read More

New York Marathon - 2017 edition

The New York City Marathon. Even today, having run it twice now, it still gives me chills. While there will always be people who will tell you Boston is better, to me, it’s not even close - New York hosts the best marathon on the planet. Granted, that’s based on a small sample size, and a strong New York bias, but I’m standing by my statement.

Read More

Managing versions and timeouts in Bot Framework

Creating bots in the real world brings additional challenges with versioning and user behavior. Obviously, when you update your bot, you want to make sure you seemlessly migrate users over to the new bot, often allowing them to complete the conversation they’re currently having before showing them the new bot. Also, because Bot Framework does not time out users, you can also run into a situation where a user has left for a sizeable amount of time, and either state has changed or you simply want to offer the user the chance to start over.

Read More

Getting running in Seattle

A quick overview of where to run in Seattle, and who to run with.

Read More

Create bots with TypeScript

Whenever I’m doing demos or other presentations I work very hard to keep things as real world as possible. While there will certainly be little “cheats”, such as keeping all items in a single file, or having snippets already available, to help make the demo easier to digest, there’s one big lie I wind up telling every bot presentation I do. I do all my demos in JavaScript, even though I create all my bots using TypeScript.

Read More

Working with custom buttons to drive conversations

If I’ve said anything about bots, it’s that they’re apps. They’re just apps with a conversational interface. This style of interface can be extremely powerful, as it allows the user to better express themselves, or “skip to the end” if they already know what it is they’re trying to accomplish. The problem, though, is without a bit of forethought to the design of the bot it’s easy to wind up back in this scenario, where the user isn’t sure what to do next:

Read More

Managing conversations and dialogs in Microsoft Bot Framework using Node.JS

Communication with a user via a bot built with Microsoft Bot Framework is managed via conversations, dialogs, waterfalls, and steps. As the user interacts with the bot, the bot will start, stop, and switch between various dialogs in response to the messages the user sends. Knowing how to manage dialogs in Bot Framework is one of the keys to successfully designing and creating a bot.

Read More

New York Marathon - 2016

The New York Marathon. There’s really nothing else you need to say to runners and non-runners alike. It’s the largest marathon in the world, and arguably the most prestigious. While it doesn’t have the qualifying cache that Boston does, it’s a marathon everyone knows, and is on the bucket list of every runner, or at least all the ones I know.

Read More