<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Jamie D</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/jamiedalton/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/jamiedalton/feed.xml</link>
    <description>Technical Evangelist</description>
    <lastBuildDate>Fri, 24 May 2019 10:31:40 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Moved</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/moved</link>
      <pubDate>Mon, 20 May 2019 07:30:02 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2735</guid>
      <description><![CDATA[My blog has now moved to https://jamied.me]]></description>
      <content:encoded><![CDATA[My blog has now moved to <a href="https://jamied.me">https://jamied.me</a>]]></content:encoded>
    </item>
    <item>
      <title>What is the Business Application Platform? (Developers overview)</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/what-is-the-business-application-platform-developers-overview</link>
      <pubDate>Mon, 14 Jan 2019 19:16:09 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2725</guid>
      <description><![CDATA[What is the Business Application Platform (aka Power Platform aka PowerApps, Flow and PowerBI)
A...]]></description>
      <content:encoded><![CDATA[<h3><a href="https://powerapps.microsoft.com/en-us/">What is the Business Application Platform (aka Power Platform aka PowerApps, Flow and PowerBI)</a></h3>
A simple question, but for new developers can be a challenge to understand exactly what it is, the business benefits and how to use it.  I've read numerous documents/slides and watched a few different //Build and Ignite sessions - but many were marketing pitches and not the right level for me.  Until I was steered to this video: <a target="_blank" href="https://www.youtube.com/watch?v=zomGjmzHsKI" rel="noopener" title="https://www.youtube.com/watch?v=zomGjmzHsKI">https://www.youtube.com/watch?v=zomGjmzHsKI</a> introduced by <a href="https://www.linkedin.com/in/charleslamanna/">Charles Lamanna</a>, worth watching all of it if you're actively learning this space.  If you like to learn by example - watch around the 18:30 mark where <a href="https://www.linkedin.com/in/rmcunningham/">Ryan Cunningham</a> does a great live demo.
<h3 class="copy-paste-block"><a href="https://docs.microsoft.com/en-us/common-data-model/">Common Data Model</a><strong></strong></h3>
<p class="copy-paste-block"><span>The <a href="https://github.com/Microsoft/CDM/blob/master/docs/CDMPoster_a3.pdf">Common Data Model</a> (CDM) is a modular definition of standard entities that represent commonly used concepts and activities across business and productivity applications.  Started from Dynamics 365 and <a href="https://github.com/Microsoft/CDM">open sourced with over 250 entities (including ecosystem partners industry specific releases)</a>.  It defines a rich metadata system including relationships, hierarchies and traits, and is extensible.  The CDM is evolving as part of the <a href="https://aka.ms/opendatainitiative">Open Data Initiative</a>, a jointly developed vision by Adobe, Microsoft &amp; SAP.</span></p>

<h3><a href="https://docs.microsoft.com/en-gb/powerapps/maker/common-data-service/data-platform-intro">Common Data Service for Apps</a></h3>
The Common Data Service (CDS) is a platform and includes the system of record for business critical transaction data, allows you to securely store and manage the data used within applications.    Data is stored in entities (sets of records), much like database tables.  Developers, ISVs etc. can build on CDS, there are different <a href="https://docs.microsoft.com/en-us/powerapps/developer/common-data-service/get-started-cds-developers">approaches</a> to this.  To deep dive into the concepts needed to build applications on the Common Data Service for Apps, this Microsoft Ignite Session <a href="https://www.youtube.com/watch?v=3rQBADJpaa8&amp;feature=youtu.be">"Common Data Service for Apps: Building Enterprise Ready apps with ease</a>" by <a href="https://www.linkedin.com/in/rjmax/">Ryan Jones</a> is worth watching.
<h3><a href="https://docs.microsoft.com/en-us/powerapps/">PowerApps</a></h3>
Everyone from app users, business analysts, administrators and developers can build PowerApps - depending on your entry point.  <a href="https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/dev-enterprise-intro">Developers can build custom connectors, extend apps with Azure Functions, Embed apps or build on/offline apps</a>.
<h3><a href="https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/model-driven-app-overview">Model Driven Apps</a></h3>
Design and model your application with no code environments.  Create responsive apps that work on cross platform mobile devices and the web.  Once you've determined what data your application will need you can define your own <a href="https://docs.microsoft.com/en-us/flow/business-process-flows-overview">business process logic/flows.</a>  Then, you use the app designer to compose the application using <a href="https://docs.microsoft.com/en-us/powerapps/maker/model-driven-apps/model-driven-app-components">app components</a>.
<h3><a href="https://docs.microsoft.com/en-us/powerapps/maker/canvas-apps/getting-started">Canvas Apps</a></h3>
WYSIWYG design surface for building applications.  Works based on Powerpoint paradigm, simply drag and drop UI elements onto the canvas.  Pull in data from various sources using Connectors.
<h3><a href="https://docs.microsoft.com/en-gb/connectors/">Connectors</a></h3>
Proxies or wrappers around an existing API.  Connectors have Actions and Triggers and come in two flavours, <a href="https://docs.microsoft.com/en-gb/connectors/">Standard Connectors</a> which are ready to consume, or you can roll your own <a href="https://docs.microsoft.com/en-gb/connectors/custom-connectors/index">Custom Connectors.</a>
<h3><a href="https://docs.microsoft.com/en-us/flow/getting-started">Flow</a></h3>
Automate workflows between your favourite applications and services to build innovate applications.  Send notifications, emails, move files, invoke other services etc.  Build from scratch or use one of the many <a href="https://flow.microsoft.com/en-us/templates/">templates</a> to bootstrap your process automation.
<h3><a href="https://docs.microsoft.com/en-us/power-bi/guided-learning/gettingstarted?tutorial-step=1#step-0">Power BI</a></h3>
A collection of software services, apps and connectors that turn unrelated data sources into meaningful, visually immersive and interactive insights.  The fundamental building blocks of PowerBI are visualisations, datasets, reports, dashboards and tiles.  Developers can <a href="https://docs.microsoft.com/en-us/power-bi/developer/embedding">embed</a> Power BI dashboards and reports into their own applications, create their own <a href="https://microsoft.github.io/PowerBI-visuals/docs/step-by-step-lab/developing-a-power-bi-custom-visual/">custom visuals</a> or automate dasboards using the <a href="https://docs.microsoft.com/en-us/power-bi/developer/overview-of-power-bi-rest-api">API</a>.]]></content:encoded>
    </item>
    <item>
      <title>Bot Framework v4 Resources</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/bot-framework-v4-resources</link>
      <pubDate>Thu, 01 Nov 2018 08:34:13 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2705</guid>
      <description><![CDATA[The Bot Framework SDK v4 release is a beast, as well as the Bot Builder SDK changes, there are many...]]></description>
      <content:encoded><![CDATA[The Bot Framework SDK v4 release is a beast, as well as the Bot Builder SDK changes, there are many new tools, samples, templates and solutions that have been released.  Here's a bunch of links to jump start your development: Bot Framework
<ul>
 	<li>Documentation: <a href="https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0">https://docs.microsoft.com/en-us/azure/bot-service/?view=azure-bot-service-4.0</a></li>
 	<li>Bot Builder SDK: <a href="https://github.com/Microsoft/botbuilder">https://github.com/Microsoft/botbuilder</a></li>
 	<li>Bot Builder SDK Samples: <a href="https://github.com/microsoft/botbuilder-samples">https://github.com/microsoft/botbuilder-samples</a></li>
 	<li>Bot Builder Community: <a href="https://github.com/BotBuilderCommunity">https://github.com/BotBuilderCommunity</a></li>
 	<li>Bot Builder Tools: <a href="https://github.com/Microsoft/botbuilder-tools">https://github.com/Microsoft/botbuilder-tools</a></li>
 	<li>Bot Framework Emulator: <a href="https://github.com/Microsoft/BotFramework-Emulator/releases">https://github.com/Microsoft/BotFramework-Emulator/releases</a></li>
 	<li>Bot Framework Blog: <a href="https://blog.botframework.com/">https://blog.botframework.com/</a></li>
 	<li>Bot Framework Enterprise/Virtual Assistant Template: <a href="https://github.com/microsoft/ai">https://github.com/microsoft/ai</a></li>
</ul>
Adaptive Cards
<ul>
 	<li>Documentation: <a href="https://docs.microsoft.com/en-us/adaptive-cards/">https://docs.microsoft.com/en-us/adaptive-cards/</a></li>
 	<li>Adaptive Cards Designer: <a href="https://adaptivecards.io/designer/">https://adaptivecards.io/designer/</a></li>
 	<li>Teams announcement: <a href="https://techcommunity.microsoft.com/t5/Microsoft-Teams-Blog/What-s-new-in-Teams-Microsoft-Ignite-Edition/ba-p/252531">https://techcommunity.microsoft.com/t5/Microsoft-Teams-Blog/What-s-new-in-Teams-Microsoft-Ignite-Edition/ba-p/252531</a></li>
</ul>
AI Cognitive Services
<ul>
 	<li>LUIS: <a href="https://www.luis.ai/">https://www.luis.ai/</a></li>
 	<li>QnA Maker: <a href="https://www.qnamaker.ai/">https://www.qnamaker.ai/</a></li>
 	<li>Speech: <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/">https://docs.microsoft.com/en-us/azure/cognitive-services/speech-service/</a></li>
 	<li>Custom Vision: <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/Custom-Vision-Service/home">https://docs.microsoft.com/en-us/azure/cognitive-services/Custom-Vision-Service/home</a></li>
 	<li>Personality Chat: <a href="https://labs.cognitive.microsoft.com/en-us/project-personality-chat">https://labs.cognitive.microsoft.com/en-us/project-personality-chat</a></li>
</ul>
Dispatch
<ul>
 	<li>Dispatch tool: <a href="https://github.com/Microsoft/botbuilder-tools/tree/master/packages/Dispatch">https://github.com/Microsoft/botbuilder-tools/tree/master/packages/Dispatch</a></li>
 	<li>C# sample: <a href="https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/14.nlp-with-dispatch">https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/csharp_dotnetcore/14.nlp-with-dispatch</a></li>
 	<li>Nodejs sample: <a href="https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/14.nlp-with-dispatch">https://github.com/Microsoft/BotBuilder-Samples/tree/master/samples/javascript_nodejs/14.nlp-with-dispatch</a></li>
</ul>
Channels
<ul>
 	<li>Channel Documentation: <a href="https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0">https://docs.microsoft.com/en-us/azure/bot-service/bot-service-manage-channels?view=azure-bot-service-4.0</a></li>
 	<li>Cortana announcement: <a href="https://techcommunity.microsoft.com/t5/Cortana-Skills-Kit-Blog/Publishing-Cortana-Skills-Just-Got-Easier/ba-p/280756">https://techcommunity.microsoft.com/t5/Cortana-Skills-Kit-Blog/Publishing-Cortana-Skills-Just-Got-Easier/ba-p/280756</a></li>
</ul>
Github, Blogs and other articles
<ul>
 	<li>Gary Pretty (MVP) Blog: <a href="https://www.garypretty.co.uk/">https://www.garypretty.co.uk</a></li>
 	<li>James Mann (MVP) Blog: <a href="https://blogs.blackmarble.co.uk/jmann/">https://blogs.blackmarble.co.uk/jmann/</a></li>
 	<li>Michael Washington (MVP) Blog: <a href="https://aihelpwebsite.com/Blog/tagid/1018/Bot-Framework-V4">https://aihelpwebsite.com/Blog/tagid/1018/Bot-Framework-V4</a></li>
 	<li>Stephan Bisser (MVP) Blog: <a href="https://www.cloudguy.pro/learn-to-bot/">https://www.cloudguy.pro/learn-to-bot/</a></li>
 	<li>Managing secrets with the .bot files: <a href="https://blogs.msdn.microsoft.com/martinkearn/2018/09/27/managing-secrets-with-bot-files-in-bot-framework-v4/">https://blogs.msdn.microsoft.com/martinkearn/2018/09/27/managing-secrets-with-bot-files-in-bot-framework-v4/</a></li>
 	<li>Luis Alves Martins ChatDownExplorer: <a href="https://github.com/luisalvesmartins/ChatDownLibrary">https://github.com/luisalvesmartins/ChatDownLibrary</a></li>
 	<li>Nodejs Waterfall Dialog sample: <a href="https://github.com/daltskin/WaterfallDialogBotv4">https://github.com/daltskin/WaterfallDialogBotv4</a></li>
</ul>
If you stumble upon any other great articles or repos and like me to reference them let me know @daltskin.]]></content:encoded>
    </item>
    <item>
      <title>YOLO on Azure Deep Learning Virtual Machine (DLVM – Linux)</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/yolo-on-azure-deep-learning-virtual-machine-dlvm-linux</link>
      <pubDate>Wed, 23 May 2018 10:55:34 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2655</guid>
      <description><![CDATA[In a previous post I covered setting up YOLO on an Azure DLVM.  In this I'll cover setting up YOLO...]]></description>
      <content:encoded><![CDATA[In a <a href="https://blogs.msdn.microsoft.com/jamiedalton/2018/03/23/yolo-on-azure-deep-learning-virtual-machine-windows/">previous post</a> I covered setting up YOLO on an <a href="https://docs.microsoft.com/en-us/azure/machine-learning/data-science-virtual-machine/deep-learning-dsvm-overview">Azure DLVM</a>.  In this I'll cover setting up YOLO on a Linux (Ubuntu) DSVM/DLVM using Docker.

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/predictions.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2018/05/predictions-300x199.jpg" alt="" width="300" height="199" class="size-medium wp-image-2675 alignnone" /></a>

First spin up a new Deep Learning Virtual Machine on Linux - this is already setup with Nvidia GPU CUDA drivers and Docker:

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/new-dlvm.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/05/new-dlvm-300x135.png" alt="" width="300" height="135" class="size-medium wp-image-2665 alignnone" /></a>

Then ssh in and pull down my docker github repo: <a href="https://github.com/daltskin/dlvm-darknet">https://github.com/daltskin/dlvm-darknet</a> - this uses a fork of <a href="https://github.com/AlexeyAB/darknet">https://github.com/AlexeyAB/darknet</a> and includes an opencv dependency fix, enables GPU and CUDNN in the Makefile.
<div>
<pre><span>$ git clone https://github.com/daltskin/DLVM-Darknet
$ sudo docker build DLVM-Darknet/darknet -t darknet:latest</span>
<span>$ sudo docker build DLVM-Darknet -t dlvm-darknet:latest
</span>$ sudo docker run --runtime=nvidia dlvm-darknet:latest</pre>
</div>
<div>You should see some output that looks like:</div>
<a href="https://msdnshared.blob.core.windows.net/media/2018/05/yolo-running.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/05/yolo-running-300x178.png" alt="" width="300" height="178" class="alignleft size-medium wp-image-2685" /></a>
<pre><span style="font-family: Consolas, Monaco, monospace">Loading weights from yolov3.weights...Total BFLOPS 65.864</span><span style="font-family: Consolas, Monaco, monospace">Done!</span>
<span style="font-family: Consolas, Monaco, monospace">seen 64</span>
<span style="font-family: Consolas, Monaco, monospace">./data/horses.jpg: Predicted in 0.101588 seconds.</span>
<span style="font-family: Consolas, Monaco, monospace">horse: 89%</span>
<span style="font-family: Consolas, Monaco, monospace">horse: 98%</span>
<span style="font-family: Consolas, Monaco, monospace">horse: 97%</span>
<span style="font-family: Consolas, Monaco, monospace">horse: 91%</span></pre>
&nbsp;

<a href="https://msdnshared.blob.core.windows.net/media/2018/05/yolo-output.png">Full output screenshot here</a>

<strong>Troubleshooting</strong>

Using Docker should eliminate a lot of the dependency issues involved with setting up YOLO, however the Nvidia drivers on the host VM should be checked, by running the following command:
<pre>$ nvidia-smi</pre>
You should see some output like this:
<pre>+-----------------------------------------------------------------------------+
 | NVIDIA-SMI 396.26 Driver Version: 396.26 |
 |-------------------------------+----------------------+----------------------+
 | GPU Name Persistence-M| Bus-Id Disp.A | Volatile Uncorr. ECC |
 | Fan Temp Perf Pwr:Usage/Cap| Memory-Usage | GPU-Util Compute M. |
 |===============================+======================+======================|
 | 0 Tesla K80 Off | 0000AC17:00:00.0 Off | 0 |
 | N/A 43C P0 56W / 149W | 0MiB / 11441MiB | 0% Default |
 +-------------------------------+----------------------+----------------------+

+-----------------------------------------------------------------------------+
 | Processes: GPU Memory |
 | GPU PID Type Process name Usage |
 |=============================================================================|
 | No running processes found |
 +-----------------------------------------------------------------------------+</pre>
It is recommended you update the CUDA drivers on the host VM: <a href="https://docs.microsoft.com/en-us/azure/virtual-machines/linux/n-series-driver-setup?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#cuda-driver-updates">https://docs.microsoft.com/en-us/azure/virtual-machines/linux/n-series-driver-setup?toc=%2fazure%2fvirtual-machines%2flinux%2ftoc.json#cuda-driver-updates</a>:
<pre><span>$ sudo apt-get update</span>
$ sudo apt-get upgrade -y
<span>$ sudo apt-get dist-upgrade -y</span>
<span>$ sudo apt-get install cuda-drivers </span>
<span>$ sudo reboot</span></pre>
You may need to do this if you don't see any output/predictions from running the darknet commands eg. if you only see something output like this (missing predictions):
<div>
<pre><span>seen 64</span>
<span>./data/horses.jpg: Predicted in 0.0101588 seconds.</span></pre>
</div>]]></content:encoded>
    </item>
    <item>
      <title>Windows 10 Docker &amp; GUI</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/windows-10-docker-gui</link>
      <pubDate>Thu, 17 May 2018 16:37:39 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2625</guid>
      <description><![CDATA[Recently, whilst working with YOLO on Docker I received the following message:

 Gtk_WARNING **:...]]></description>
      <content:encoded><![CDATA[Recently, whilst working with YOLO on Docker I received the following message:

<a href="https://ubuntuforums.org/showthread.php?t=1935260"> <strong>Gtk_WARNING **: cannot open display</strong>:</a>

To resolve this, I turned to <a href="https://www.straightrunning.com/XmingNotes/">Xming X Server</a>, an X11 display server for Microsoft Windows.  Once installed, simply add your ip address to the c:\Program Files (x86)\Xming\x0.hosts file eg:
<pre>localhost
192.168.0.5</pre>
Then run Xming.  It'll sit in the System Tray and say "Xming Server:0.0"

Then from within PowerShell or VS Code Terminal set a DISPLAY environmental variable to your ip address eg:
<pre>PS&gt; set-variable -name DISPLAY -value 192.168.0.5:0.0</pre>
Then run your docker container:
<pre>PS&gt; docker run -it --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix daltskin/darknet bash</pre>
If you don't have a docker image to test this on, you can try it with Firefox eg:
<div>
<pre><span>FROM</span><span> ubuntu:16.04</span>
<span>RUN</span><span> apt-get update &amp;&amp; apt-get install -y firefox</span>
<span>CMD</span><span> /usr/bin/firefox
</span></pre>
Then run the following commands (changing the ip address obvs)
<pre>PS&gt; set-variable -name DISPLAY -value 192.168.0.5:0.0
PS&gt; docker build firefox
PS&gt; docker run -it --privileged -e DISPLAY=$DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix firefox
</pre>
Then wait for the UI magic :)

</div>]]></content:encoded>
    </item>
    <item>
      <title>YOLO on Azure Deep Learning Virtual Machine (DLVM - Windows)</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/yolo-on-azure-deep-learning-virtual-machine-windows</link>
      <pubDate>Fri, 23 Mar 2018 19:35:09 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2425</guid>
      <description><![CDATA[[video width="854" height="480"...]]></description>
      <content:encoded><![CDATA[[video width="854" height="480" mp4="https://msdnshared.blob.core.windows.net/media/2018/03/CherryBot-Fans-short.mp4"][/video]

Video credits: <a href="https://www.greenwoodcampbell.com/">Greenwood Campbell</a> at <a href="https://news.microsoft.com/en-gb/2018/01/12/afc-bournemouths-chatbot-changes-depending-on-whether-fans-are-happy-or-sad/">CherryBot Launch</a>
<h1><a href="https://pjreddie.com/darknet/yolo/">YOLO</a> "You only look once" by <span>Joseph Redmon</span></h1>
A state of the art real-time object detection system that works using what I can only describe as magic: <a href="https://arxiv.org/abs/1612.08242">https://arxiv.org/abs/1612.08242</a>

If you've seen any of the youtube.com videos demonstrating it, you may be curious to setup a development rig and play with it yourself.  However, setting up an environment isn't that simple as there are quite a few dependencies, all evolving at different cadence - depending on what you've already got installed on your machine you can end up in a bit of a mess and scratching you head as to why it's not working.

I spent a couple of hours this week setting up my Surface Book (with GPU) to experiment with YOLO.  However, after doing so could only get Tiny YOLO to work as kept hitting CUDA out of memory errors.  Then had a dawning moment, why don't I just use <a href="https://docs.microsoft.com/en-us/azure/machine-learning/data-science-virtual-machine/deep-learning-dsvm-overview">Azure's Deep Learning Virtual Machine</a> (DLVM) with GPU?  Here is a guide to getting your own DLVM setup working with YOLO.

Note: There are numerous guides out there to walk through setting up a Windows development environment for YOLO.  I strongly encourage you to read the following first: <a href="https://pjreddie.com/darknet/">https://pjreddie.com/darknet/</a> and <a href="https://github.com/AlexeyAB/darknet/blob/master/README.md">https://github.com/AlexeyAB/darknet/blob/master/README.md</a>.
<h2><strong>Solution</strong></h2>
In the <a href="https://ms.portal.azure.com">Azure Portal</a>, create a <a href="https://docs.microsoft.com/en-us/azure/machine-learning/data-science-virtual-machine/deep-learning-dsvm-overview">Deep Learning Virtual Machine</a> (DVLM) <span>NC-Series GPU </span>on Windows (Linux also available).  Once provisioned, remote in:
<h3><strong>Dependencies</strong></h3>
The DVLM has a bucket load of tools already installed on it.  However, there are a few updates and additional libraries you need to install to get YOLO up and running.
<ul>
 	<li>Update the Visual Studio Installer</li>
 	<li>Update Visual Studio Community 2017 (currently v15.6.4)</li>
 	<li>Add the VC++ 2017 version 14.4 v14.11 toolset (for side by side MSVC toolsets: <a href="https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/">https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/</a>)</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/VS-2017-component_crop.png"><img width="300" height="168" class="size-medium wp-image-2505 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/VS-2017-component_crop-300x168.png" /></a></p>

<ul>
 	<li>Download <a href="https://opencv.org/releases.html">OpenCV 3.40</a> (not higher as it won't work: <a href="https://github.com/AlexeyAB/darknet/issues/402">https://github.com/AlexeyAB/darknet/issues/402</a>) and extract to the path c:\opencv_3.0</li>
 	<li>Install CUDA 9.1 <a href="https://developer.nvidia.com/cuda-downloads">https://developer.nvidia.com/cuda-downloads</a> (Windows 2016 version for DLVM)</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1_clip.png"></a><a href="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1-install_clip.png"><img width="300" height="219" class="size-medium wp-image-2445 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1-install_clip-300x219.png" /></a><a href="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1-install_clip.png"></a><img width="300" height="239" class="size-medium wp-image-2455 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1_clip-300x239.png" /></p>

<h3><strong>Environment setup</strong></h3>
<ul>
 	<li>Your environment variables should look like the below including CUDNN (as per: <a href="https://github.com/AlexeyAB/darknet/blob/master/README.md#how-to-compile-on-windows">https://github.com/AlexeyAB/darknet/blob/master/README.md#how-to-compile-on-windows</a>) which is already installed on the DLVM at the path C:\NVIDIA\cuda.  You'll also need to add a system variable for OPENCV_DIR to C:\opencv_3.0\opencv\build</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-environment-vars_clip.png"><img width="278" height="300" class="size-medium wp-image-2465 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-environment-vars_clip-278x300.png" /></a></p>

<ul>
 	<li>Tweak the C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v9.1\include\crt\host_config.h file to update it with the latest VS version eg:</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1-VS-tweak_clipo.png"><img width="300" height="136" class="size-medium wp-image-2525 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/CUDA-9.1-VS-tweak_clipo-300x136.png" /></a></p>

<ul>
 	<li>Clone <a href="https://github.com/AlexeyAB">AlexyAB</a>'s fork of the darknet repo: <a href="https://github.com/AlexeyAB/darknet.git">https://github.com/AlexeyAB/darknet.git</a></li>
 	<li>Copy the C:\Program Files (x86)\Microsoft Visual Studio\Preview\Community\VC\Auxiliary\Build\14.11\ props file to the darknet\build\darknet solution folder eg:</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/Copy-Props_clip1.png"><img width="300" height="137" class="size-medium wp-image-2535 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/Copy-Props_clip1-300x137.png" /></a></p>

<ul>
 	<li>Edit the darknet.vcxproj file to include the v14.11.props file copied above (again ref: <a href="https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/">https://blogs.msdn.microsoft.com/vcblog/2017/11/15/side-by-side-minor-version-msvc-toolsets-in-visual-studio-2017/</a>)</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/VS-Project-Props_clip.png"><img width="300" height="226" class="size-medium wp-image-2475 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/VS-Project-Props_clip-300x226.png" /></a></p>

<ul>
 	<li>Open the darknet.sln solution - retarget the project</li>
</ul>
<p style="padding-left: 30px"><img width="300" height="180" class="size-medium wp-image-2435 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/Retarget-project-300x180.png" /></p>

<ul>
 	<li>Build (Release x64 bit)</li>
 	<li>Open the solution/x64 output directory and you should see darknet.exe :)</li>
 	<li>Copy the OpenCV dependencies into the output directory above:</li>
</ul>
<p style="padding-left: 30px"><a href="https://msdnshared.blob.core.windows.net/media/2018/03/OpenCV-dependencies_clip.png"><img width="300" height="137" class="size-medium wp-image-2485 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/03/OpenCV-dependencies_clip-300x137.png" /></a></p>

<ul>
 	<li>Download the YOLO9000 weights: <a href="https://pjreddie.com/media/files/yolo9000.weights">https://pjreddie.com/media/files/yolo9000.weights</a></li>
 	<li>Run solution/x64/darknet_coco_9000.cmd</li>
</ul>
Enjoy.

Slight update 26/04/2018: After rebooting the machine at a later point I got the below error when running the darknet.exe.

"CUDA Error: CUDA driver version is insufficient for CUDA runtime version"

To get round this I just needed to re-install CUDA again (over the top)]]></content:encoded>
    </item>
    <item>
      <title>Microsoft Teams Configuration Tab: We couldn't save your tab settings.  Please try again.</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/microsoft-teams-configuration-tab-we-couldnt-save-your-tab-settings-please-try-again</link>
      <pubDate>Fri, 23 Feb 2018 09:03:22 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2375</guid>
      <description><![CDATA[You can troubleshoot JavaScript in Teams using the web based version of teams via:...]]></description>
      <content:encoded><![CDATA[You can troubleshoot JavaScript in Teams using the web based version of teams via: <a href="https://teams.microsoft.com">https://teams.microsoft.com</a>

If you're building a configuration tab and get the following message:

[caption id="attachment_2415" align="alignnone" width="300"]<a href="https://msdnshared.blob.core.windows.net/media/2018/02/couldnt-save1.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/couldnt-save1-300x267.png" alt="" width="300" height="267" class="wp-image-2415 size-medium" /></a> We couldn't save your tab settings.[/caption]

You can bring up F12 Developer Tools to see what's going on and even debug your JavaScript eg:

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/configuration.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/configuration-300x129.png" alt="" width="300" height="129" class="size-medium wp-image-2395 alignnone" /></a>

Clicking on the configuration.htm you can see I've forgotten to use the SSL ngrok endpoints - which was the cause of this error.  This is a prerequisite referenced here: <a href="https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/tabs/tabs-configuration">https://docs.microsoft.com/en-us/microsoftteams/platform/concepts/tabs/tabs-configuration</a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/error.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/error-267x300.png" alt="" width="267" height="300" class="size-medium wp-image-2405 alignnone" /></a>

In case this doesn't solve your issue, here's some other links that may also help with this error:
<ul>
 	<li><a href="https://docs.microsoft.com/en-us/microsoftteams/platform/troubleshoot/troubleshoot">https://docs.microsoft.com/en-us/microsoftteams/platform/troubleshoot/troubleshoot</a></li>
 	<li><a href="https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema">https://docs.microsoft.com/en-us/microsoftteams/platform/resources/schema/manifest-schema</a></li>
</ul>]]></content:encoded>
    </item>
    <item>
      <title>Custom Vision with TensorFlow exported model using C# .NET Core and TensorFlowSharp</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/custom-vision-with-tensorflow-exported-model-using-c-net-core-and-tensorflowsharp</link>
      <pubDate>Wed, 07 Feb 2018 17:39:48 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2325</guid>
      <description><![CDATA[In a previous post, I built an image classification model for mushrooms using CustomVision.ai.  In...]]></description>
      <content:encoded><![CDATA[In a <a href="https://blogs.msdn.microsoft.com/jamiedalton/2018/01/30/custom-vision-model-for-mushroom-classification-using-bing-images/">previous post</a>, I built an image classification model for mushrooms using <a href="https://CustomVision.ai">CustomVision.ai</a>.  In this post I want to take that a stage further and create a TensorFlow model that I can use on different operating systems and crucially, offline with no internet connection and using my favourite language, C#.

There are already some mobile <a href="https://CustomVision.ai">CustomVision.ai</a> samples on Github:

<a href="https://github.com/Azure-Samples/cognitive-services-ios-customvision-sample">iOS (CoreML)</a>

<a href="https://github.com/Azure-Samples/cognitive-services-android-customvision-sample">Android (TensorFlow)</a>
<h2>So what about other platforms?</h2>
Well, it turns out that our very own Elon Musk, Miguel de Icaza has been busy working on a <a href="https://github.com/migueldeicaza/TensorFlowSharp">TensorFlowSharp</a> library which are <span>NET bindings to the TensorFlow library published here: <a href="https://github.com/tensorflow/tensorflow">https://github.com/tensorflow/tensorflow</a></span>

This library makes it easy to use an exported TensorFlow model from CustomVision.ai in your own cross platform .NET applications.  So, I've built a sample .NET Core CLI that takes a TensorFlow exported model and uses TensorFlowSharp to perform offline image classification.  To get started, head over to the CustomVision.ai portal.  Make sure you have one of the Compact Domains selected, as these are the only ones that you can export.  If you change your Domain, you'll need to retrain the model.  Once you've done this, the option to Export the model in the TensorFlow format will become available.  Download the zip file containing both the model.pb and model.txt file.

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/Export-model.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/Export-model-300x123.png" alt="" width="300" height="123" class="size-medium wp-image-2345 alignnone" /></a>

If you need help on this, follow the docs: <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/export-your-model">https://docs.microsoft.com/en-us/azure/cognitive-services/custom-vision-service/export-your-model</a>

In the <a href="https://github.com/daltskin/CustomVision-TensorFlow-CSharp">.NET Core CLI application sample</a>, simply replace your model.pb and model.txt file within the <a href="https://github.com/daltskin/CustomVision-TensorFlow-CSharp/tree/master/Assets">\Assets</a> folder and change the image to your own.  Depending on your Domain you may need to change the RGB values as described in the <a href="https://github.com/daltskin/CustomVision-TensorFlow-CSharp/blob/master/Readme.md">Readme.md</a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/test-Custom1.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/test-Custom1-300x268.jpg" alt="" width="183" height="163" class="alignleft wp-image-2365" /></a>

<a href="https://msdnshared.blob.core.windows.net/media/2018/02/test-image.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/02/test-image-300x166.png" alt="" width="300" height="166" class="size-medium wp-image-2335 alignnone" /></a>

&nbsp;

Full code with mushroom classification exported TensorFlow model here: <a href="https://github.com/daltskin/CustomVision-TensorFlow-CSharp">https://github.com/daltskin/CustomVision-TensorFlow-CSharp</a>]]></content:encoded>
    </item>
    <item>
      <title>Custom Vision Model for mushroom classification using Bing Images</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/custom-vision-model-for-mushroom-classification-using-bing-images</link>
      <pubDate>Tue, 30 Jan 2018 17:57:57 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2205</guid>
      <description><![CDATA[Creating a mushroom classifier
I'm no mycologist, but am a fun-guy (badum...tish).  I know there...]]></description>
      <content:encoded><![CDATA[<h1>Creating a mushroom classifier</h1>
I'm no mycologist, but am a fun-guy (badum...tish).  I know there are a few different types of mushroom about in the wild and some should never be eaten.  Here, I'd like to build an image classifier that can identify a few different types of mushroom.  I'm a busy guy, so naturally, I don't go around taking photos of every mushroom I come across, therefore I don't have a large photo library of different types of mushrooms.  However, Bing has millions of images already indexed and stored and has an API that I can leverage to return them.  I can then use these images to create my own mushroom classifier within Microsoft Custom Vision - using the Custom Vision API.
<h2>First, we need to grab some images of different types of mushrooms</h2>
I've created a simple cross platform CLI to do this: <a href="https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/tree/master/BingImageCLI">https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/tree/master/BingImageCLI</a>

To use we simply provide the arguments for the Bing Search criteria and Bing Search API key eg:
<p style="text-align: left"><code>BingImageCLI.exe -k <i>yourkey</i> -s "Amanica muscaria" -l ShareCommercially -p c:\photos\mushroom -m 50 -fmax 4000000</code>
<code>BingImageCLI.exe -k <i>yourkey</i> -s "Coprinopsis atramentaria" -l ShareCommercially -p c:\photos\mushroom -m 50 -fmax 4000000</code>
<code>BingImageCLI.exe -k <i>yourkey</i> -s "Geastrum triplex" -l ShareCommercially  -p c:\photos\mushroom -m 50 -fmax 4000000</code>
<code>BingImageCLI.exe -k <i>yourkey</i> -s "Lycoperdon perlatum" -l ShareCommercially -p c:\photos\mushroom -m 50 -fmax 4000000</code>
<code>BingImageCLI.exe -k <i>yourkey</i> -s "Psilocybe cubensis, magic" -l ShareCommercially -p c:\photos\mushroom -m 50 -fmax 4000000</code>
<code>BingImageCLI.exe -k <em>yourkey</em> -s "Agaricus bisporus" -l ShareCommercially -p c:\photos\mushroom -m 50 -fmax 4000000</code></p>
This will download over 200 images (some may fail with 403/404s) to the c:\photos\mushroom folder each within their own subfolder of category eg:

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/folders-explorer.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/01/folders-explorer-300x209.png" alt="" width="300" height="209" class="size-medium wp-image-2285 alignnone" /></a>

You'll want to quickly scan through all the downloaded images, deleting any rogue ones - as some images may have been incorrectly labelled or will simply not be useful for your classifier eg:

<a href="https://msdnshared.blob.core.windows.net/media/2018/01/remove.png"><img width="300" height="215" class="size-medium wp-image-2235 alignnone" alt="" src="https://msdnshared.blob.core.windows.net/media/2018/01/remove-300x215.png" /></a>
<h2>Next, we need to create a Custom Vision model for our mushroom classifier</h2>
I've created another cross platform CLI to do this: <a href="https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/blob/master/CustomVisionCLI/Readme.md">https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/blob/master/CustomVisionCLI/Readme.md</a>

To use we simply provide the arguments for the Custom Vision API eg:

<code>CustomVisionCLI.exe -k <i>yourkey</i> -p c:\photos\mushroom" -n Mushroom</code>

This will upload all of the remaining images above, labelling them at the same time and will then train the model.  After a couple of minutes you can then test the new classifier with a previously unseen image.  You can either do this in the Customvision.ai portal, or again from the CLI tool eg:

<code>CustomVisionCLI.exe -k <i>yourkey</i> -p c:\dump\unseen\mushroom.jpg" -n Mushroom -q</code>

[caption id="attachment_2305" align="alignnone" width="180"]<a href="https://msdnshared.blob.core.windows.net/media/2018/01/mushroom.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2018/01/mushroom-300x270.jpg" alt="" width="180" height="162" class="wp-image-2305" /></a> Closed cup mushroom from the local supermarket - not used in the training data[/caption]

[caption id="attachment_2295" align="alignnone" width="300"]<a href="https://msdnshared.blob.core.windows.net/media/2018/01/quick-test.png"><img src="https://msdnshared.blob.core.windows.net/media/2018/01/quick-test-300x157.png" alt="" width="300" height="157" class="wp-image-2295 size-medium" /></a> Agaricus bisporus correctly identified[/caption]

More details and demo here: <a href="https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/">https://github.com/daltskin/Bing-Image-and-Custom-Vision-CLI/</a>]]></content:encoded>
    </item>
    <item>
      <title>Telemetry my dear Watson - don't leave your bot unmonitored</title>
      <link>https://docs.microsoft.com/archive/blogs/jamiedalton/telemetry-my-dear-watson-dont-leave-your-bot-unmonitored</link>
      <pubDate>Tue, 03 Oct 2017 07:54:13 GMT</pubDate>
      <dc:creator><![CDATA[Jamie Dalton]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/jamiedalton/?p=2095</guid>
      <description><![CDATA[Here's a recent example of why it's important to keep tabs on your chatbot conversations.  Once they...]]></description>
      <content:encoded><![CDATA[Here's a recent example of why it's important to keep tabs on your chatbot conversations.  Once they are out there in the wild, people <em>will</em> try to break them - be it on purpose, curiosity or even accidentally.  Whilst you can add buttons and UI elements to your conversations, you most likely want to allow free text for natural language at some point.  Language Understanding Intelligent Service (<a href="https://www.luis.ai/">LUIS.ai</a>) makes this easy to do, allowing you to resolve the intent from the multitude of ways a user can ask a question or give a response.

The <a href="https://www.facebook.com/howlonghaveigotbot">How Long Have I Got Bot</a> was the first bot I built using the Bot Framework shortly after it was announced in preview at <a href="https://channel9.msdn.com/Events/Build/2016/KEY01">//Build 2016</a>.  It's a low value bot that doesn't do anything but calculate the time left between now and a future (or passed date).  It's useful for working out how many days you've got left until Christmas, a birthday etc and that's pretty much it.  I used this sample bot to learn about the <a href="https://dev.botframework.com">BotBuilder SDK </a>and to explore how channels behaved differently.  I enabled <a href="https://azure.microsoft.com/en-gb/services/application-insights/">Application Insights</a> telemetry so that I could monitor the bot once it was public.  So roll on over a year later and it's still out there being hammered by random folk, largely on <a href="https://www.facebook.com/howlonghaveigotbot">Facebook Messenger</a>.  Within App Insights, I track (anonymously) the questions that are asked to the bot and the response the bot has given.  Recently, one conversation stood out, since it was on the Facebook Messenger channel - here's a screenshot of the actual conversation dialog between the user and the bot:

<a href="https://msdnshared.blob.core.windows.net/media/2017/09/facebook-messenger.png"><img src="https://msdnshared.blob.core.windows.net/media/2017/09/facebook-messenger-250x300.png" alt="" width="250" height="300" class="size-medium wp-image-2105 alignnone" /></a>

So whilst the bot users' response did make me chuckle, I was curious to what had actually happened here.  The user had requested a future date of <strong>15th June 3967</strong>, pretty far out - but a valid request all the same.  I had updated the bot back in May shortly after this announcement: <a href="https://blog.botframework.com/2017/05/08/luis-date-time-entities/">https://blog.botframework.com/2017/05/08/luis-date-time-entities/</a> to make date handling <em>much</em> simpler, where I'm using the <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/luis/pre-builtentities#builtindatetimev2">builtin.datetimeV2</a> entity to do the hard work of date resolution.  So I wondered how this could happen, it was time to test out the <a href="https://www.luis.ai/">Luis.ai</a> model to ascertain what's going on inside with the date entity for dates with some outlier year values.

Here's what happened:

<a href="https://msdnshared.blob.core.windows.net/media/2017/09/luis-entities.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/09/luis-entities-300x145.jpg" alt="" width="300" height="145" class="size-medium wp-image-2115 alignnone" /></a> <a href="https://msdnshared.blob.core.windows.net/media/2017/09/tokens.jpg"><img src="https://msdnshared.blob.core.windows.net/media/2017/09/tokens-300x130.jpg" alt="" width="300" height="130" class="size-medium wp-image-2125 alignnone" /></a>

Notice the entity detection, where the year is outside the [$datetimeV2] entity for 31st December 1899 and 1st January 3000.  It turns out that the Luis<span> <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/luis/pre-builtentities#builtindatetimev2">builtin.datetimeV2</a> range is from the 1st January 1900 to 31st December 2099.  Any dates outside that and the year is ignored, causing LUIS to return an ambiguous date - for which my code was always using the latest one (in this case defaulting to the future year 2018).  So I've now added the min and max datetimev2 thresholds to the documentation: <a href="https://docs.microsoft.com/en-us/azure/cognitive-services/luis/pre-builtentities#builtindatetimev2">here</a>.</span>

If you're building a bot for your business or brand, I recommend you monitor your bots' conversations using <a href="https://azure.microsoft.com/en-gb/services/application-insights/">Application Insights</a>.  To help mitigate against these types of language understanding challenges I'd take a look at using <a href="https://azure.microsoft.com/en-gb/services/cognitive-services/text-analytics/">Text Analytics</a> Cognitive Service, which you can use to automatically parse any phrase that's given to your bot and determine if it's positive or negative sentiment or to extract key phrases.  There are plenty of samples out there that show you how to do this from a bot, such as this article by one of our MVPs, <a href="https://www.linkedin.com/in/robinosborne/">Robin Osborne</a>: <a href="https://www.robinosborne.co.uk/2017/03/07/sentiment-analysis-using-microsofts-cognitive-services/">https://www.robinosborne.co.uk/2017/03/07/sentiment-analysis-using-microsofts-cognitive-services/</a>.]]></content:encoded>
    </item>
  </channel>
</rss>