You're Thinking About Chatbots All Wrong
Almost two years, I brought up the lack of a killer application when it came to chatbots. That killer app still doesn't exist.
Almost two years, I brought up the lack of a killer application when it came to chatbots. That killer app still doesn't exist.
I have a confession... I don't actually hate Facebook. And I no longer blame Facebook for any of the societal or political upheaval surrounding it. If you follow me on Twitter, you'll likely read me...
With a traditional Express applications, routes are defined directly in the entry point of your application...
I struggled to find a good title for this issue. I'm pulling together a handful of concepts, philosophies, and recent events to contemplate how technology impacts other parts of our society, and sometimes that cross-contemplation prevents a quippy title.
I ended up going with the VAVOFO Outdoor Smart Plug. This is an outdoor quality extension that has 2 or 3 plugs (depending on which device you purchase)...
In the last episode of Codepunk for 2019, we did an extended dive into the GitHub Arctic Code Vault and their whole archiving initiative. Normally, I don't like to repeat content from one format into another, but this newsletter does allow for some additional rumination on certain off-the-cut commentary from the podcast.
Anil Dash wrote a blog post about a year ago about cleaning up your Twitter timeline in order to reset your perspective, and although I didn't want to...
With Zeit's Now, you can control all of this through the now.json file, so that your routes are uncoupled from your file structure.
Back in May, my institution went through a little bit of a reorganization. The end result included a team dedicated to medical education software, and my job was to begin reviewing our team's overall process and workflow to find pockets of improvement, and to begin a minor transformation from an applications and custom software team, to one more focused on the business value of our medical education mission.
The problem? When you've worked in a Windows Server pipeline for a few decades, you get used to a few conventions, and with .NET Core being...
Most people know how to process CSV files, but when you open them in Excel, you get that annoying pop-up, so let's use an actual Excel library to get the...
Online-only isn't truly a thing, and sometimes when you're building a web application, you need to be able to offer your users the ability to download content in different formats.
With this milestone release, you can now create Twitter bots with the Microsoft Bot Framework. Let's go over some of the sample code from the repository.
With Python's popularity over the decades you might want to use JWT authentication in your apps.
IISNode can be slow and ill-performant at times, but there are some key tweaks you can make to your configuration (beyond standard Node.JS performance...
A little bit ago, the Bot Builder Community launched a middleware component for integrating IBM Watson's natural language understanding (NLU) with your...
Are you sold on the current state of virtual reality? Although I've always appreciated the advances that we've stumbled into, my primary experience with VR has been a few low-end Samsung devices that mostly stick a screen close to your eyeballs--neither enjoyable, nor comfortable.
We are adding the Google Cloud Platform's Natural Language API. Each of these middleware packages performs text analysis that allows you to gather better...
This time around, let's talk about the newly released AWS Comprehend middleware. This is yet another middleware component for text analysis built upon...
The neat thing about Watson's NLU is that it doesn't just track sentiment, but actually attempts to detect and analyze emotions as well. If asked, it'll return an emotion score object containing five emotions and their various scores.
If you're an ASP.NET programmer, you may have noticed various settings in the web.config that have left you confused, but since everything worked, you didn't bother to dig deeper.
Sometimes though, Python can still feel a bit cobbled together when trying to use it on a Windows machine. Ever move from one machine to another, and...
Behavior can be unpredictable. Are we really sure we want to pattern robots and chatbots after that? The greatest example in recent memory is Microsoft's Tay, which was revisited and profiled in a story on ZDNet in July.
A few weeks ago, we made the official release. You can now use IBM Watson as the text analysis engine in your Bot Framework chatbots.
I'm a big fan of Hyper, and I'm a big fan of Visual Studio Code. Both are electron applications, and each allows for custom themes.
You know what old school is? Old school is putting a `for` loop inside of a `for` loop to check to see if two arrays contain the same element.
I plan on covering the steps needed to deploy Flask to IIS in a future post, but for this post, I wanted to focus on obtaining environment variables.
The nature of the downloaded materials, and the fact that students need to download multiple items, means that we want to zip those files up. Since the...
A while back I went over how to add change requests to Team Foundation Server (TFS) while working in an agile environment.
One of the major reasons Bill and I started Codepunk was for the distillation of information. If I learn something that I think others could benefit from, I'll drop it here.
Facebook's announcement of Libra should come with zero shock attached. The social media company's entire business model revolves around keeping people within their walled garden, invading all aspects of their attention and lives.
I've learned that writing a book is easy, but finishing a book is hard. A lot has happened in the last two years, and certainly a lot is still happening in the conversational interface space...
The \rule command has two options length and thickness. In own case, we want the line as long as the text, so we set this to \textwidth...
Anyone who has been following me on this web site is well aware that I've been diligently working on a Bot Framework book for close to two years now.
Way back in March of 2017, we did a podcast episode on the Microsoft Bot Framework. Shortly thereafter, I (Michael) started working on a book about how to build chatbots with the Bot Framework Node.JS SDK.
This posts is the first on a series about building real-time application feeds in Node.JS with Socket.io. Maybe we'll even do a few videos on it, as well.
The new Set() method creates a new collection of iterable objects specifically meant to contain unique values. By passing in the courses array, you are...
Social media wants your attention like any other media company, and both Twitter and Facebook find ways to keep you on their site rather than allow you to click-through to another application or web site. They even build their own in-line browsers, so even if you want to read an article, it's minimal effort to return to those holding you captive.
A lot of that starts with the TestAdapter class, which is a special adapter used for returning a TestFlow class when functions such as test(), send(), or...
Express is the most popular Node.JS framework for a good reason. There is a lot of power and configuration behind it. I actually prefer to use Express' little cousin Restify for most things to keep the overall cruft low, but Express has it's advantages.
This issue of the newsletter was prompted by a rediscovery of a 2017 Wired article where researchers showed that you could encode malicious software onto DNA--software that doesn't affect the human host in the traditional sense of biohacking, but instead affects gene sequencers, and other genetic or forensic software and machines.
Rewire is a fantastic module for dependency injection meant to help you modify the behavior of your code for unit testing. With Rewire you can capture...
Mocha has been my go-to testing framework, as I get more disciplined in ensuring greater code coverage. It's a pretty easy framework to use, and works in...
With a simple command line switch or tsconfig.json change, you can exclude packages and typings files from the TypeScript compiler.
I've been working a lot with JavaScript, TypeScript, and Node.JS recently--even building out web services at work with Restify that I can consume on the front-end in some of our ASP.NET applications.
People complain a lot about JavaScript, but I think that many of these people are stuck in the past. Not only does JavaScript have a great number of new...
We often laugh that the government is eternally behind the curve when it comes to software and IT infrastructure upgrades, but one thing is certain... Technology has consistently and fundamentally shaped our political theater over the decades.
If you know me, have read any of my posts, or heard me speak at a conference over the last two years, you're probably aware of my immersion in chatbots.
With Restify, you might want to stand up an API, but then check on that API via a single page application. These applications could each exist in testing...
I use TypeScript for most anything nowadays. It's basically like programming in a less verbose C# or Java with a faster to prototype end result.
Although I have familiarity with a lot of programming languages, in my professional career, most of my jobs have centered on ASP.NET and C# development (since roughly 2004).
I gave a talk on chatbots at a recent JavaScript conference in Richmond, Virginia. The crowd was lighter than some of the other talks, and I've actually noticed a downward trend in attendance on sessions about chatbots.
Chatbots don't just send information, but they receive information as well. Bots are normally seen accepting information in a very choose-your-own-adventure way, as well as through LUIS--an implementation of natural language processing. This was as textual input, however, which is great for conversations, but chatbots are not just conversations, they are conversational applications.
Yesterday I needed to transform some XSLT, and wanted to be able to do it in Visual Studio Code, which is my editor and IDE of choice. I wasn't happy...
The adapter object represents the Bot Framework adapter that manages your chatbot, and you can attach middleware to the adapter in order to enhance your...
Have you ever enabled Windows authentication, but when you launch Firefox, it asks you to login with an authentication prompt? Even worse, you enter in...
Many of the 'ethics of AI' discussions exist in a vacuum. What I mean is that we often refer to something that AI does (or that we think AI will do in the future), and we...
At work, we integrate our LDAP instance and our LDAP groups into the security of our applications. Organization-wide, if your organizational ID made it...
A few months ago, Gary approached me about joining the Bot Builder Community org with him, James, and Arafat Tehsin. A week or so later, we were joined...
To create your own prompts, all you have to do is extend the base `Prompt
Fear of automation is nothing new, and it's something that has plagued the consciousness of the modern working person since the dawn of the industrial revolution.
I had a fit of inspiration last night that carried into today, and I ported over the sentiment analysis middleware, so that there was a Node.JS package...
Videos don't stop accumulating views just because you stop producing some though, so I've still be getting traction, as well as comments. One of the...
How did I become a programmer? While going to college and working part-time at a hardware store, I offhandedly mentioned Java programming to the store's...
Those involved with application infrastructure have always search for the holy grail of separation between business logic and design. The idea is that...
Being exposed to Travis CI, I've found that although the documentation is pretty strong, it can occasionally be difficulty to track down the right...
For those of you that have been reading this blog for a while now, clearly you know that chatbots have been my thing. I got involved early, and as a Microsoft MVP, I've been privy to newer things coming down the pipeline thanks to interactions with the product group.
Node.JS was throwing an error for "Uncaught SyntaxError Use of const in strict mode" and failing to run the tests.
I wanted to make some adjustments to the video aspect ratio (within reason), but the Camtasia editing software I use, isn't so straightforward, and some...
With the advances in artificial intelligence, we keep getting bombarded with news articles about how Elon Musk says we need to fear AI, or how employment is going to suffer.
There is actually a little known HTML attribute value that allows you to distinguish duplicate content, and by doing so, instruct search engines that...
In order to write 5 lines of code as an example in my book, I spent the entire weekend--and three iterations--building out BotBuilder Config--a utility...
Once you have your web sites set up with HTTPS, you don't really want people visiting the non-SSL version, so for ASP.NET or IIS hosted applications, you...
Speech Synthesis Markup Language (SSML) is an XML schema language designed to describe speech and voice meta data for things like text-to-speech. This is...
What exactly should AI be? Should it be greater than us? Equal to us? Less than us? Artificial intelligence seems to be this catch-all term for an idealized state of human-machine interaction...
A lot of programmers are aware of the split in .NET between Framework and Core, but unless you live in the Windows scripting environment, you might not realize that PowerShell has also experienced this Renaissance.
There are four primary components that are good to have handy when you're creating a chatbot in Azure that uses the QnAMaker service Subscription Key...
All of the configuration you can do with the Bot Emulator (including attaching services) is really just a GUI interface to update the *.bot file, and all...
In late 2017, I became a Microsoft MVP, and that made me (slightly) overextend myself by submitting to a bunch of conference. One of those conference was...
Microsoft and Facebook started championing bots because they saw how much people were using communication applications on phones.
One of the thing I've been working on at work is something we call an object attribute mapper. For medical education, it's important to be able to attach meta data (attributes)...
I've been playing around a bit with text classifiers for work. In particular, we have a relatively large...
In my last post we talked about the new Bot Framework Emulator and the Bot Framework's new Chatdown syntax and CLI for prototyping conversations in advance.
Did you hear all of the great news that came out of Microsoft's Build conference? The Bot Framework team has been on fire, which is a sure sign that chatbots are still high on Microsoft's priority list.
ChartaCloud is the robotics company behind NAO and Pepper. You might not know the company, but you've seen the robots. Their photos are used in almost every article about robot assistants--even when they aren't the actual robots or chatbots being talked about in the article.
Programmers spend a lot of time on the command line, and all of us have our favorite Linux shells, or debate the merits of MS-DOS vs. PowerShell...
Every year, Microsoft holds a Global Azure Bootcamp in cities across the world--all on the same day. These events are held by local organizations...
If you've been paying any attention to my Twitter feed, the podcast, or even the blog, you probably know that I've been working hard since November...
I ran into this early in the week when attempting to install Anaconda Python on my work computer. This is was actually a reinstall. My work computer had...
Lots of great stuff from the Microsoft MVP Summit, but it's under an NDA.
This isn't so much a detailed post as a stream of consciousness from an interaction I had a few weeks back that got me thinking. I'm blogging about it because I'm trying to follow Scott Hanselman's rule of never emailing information you can put at a URL.
Last week, I received a LinkedIn invitation from a gentleman who mentioned that he follows my Bot Framework video tutorials on YouTube.
It's been a week since I returned from Seattle for the Microsoft MVP Summit, and although it seems to be an obligatory thing to write a post about one's experiences (especially first-timers like me), I wanted to take a slightly different path, and talk about a few of the people that I met.
Recently, Microsoft announced the Python SDK for the Bot Framework, so now all the Pythonistas can get in on the fun of building chatbots using...
What better article to feature in a bots and beer newsletter than one that actually has to do with artificial intelligence (okay, text mining) and craft beer? We decided to give this article a little love, and let it be the only article featured.