Fantastic work, Erica! The Twitter integration creates a nice "ear to the ground" for giving your bot situational awareness focused on a pre-defined, fixed filter combined with user-specific subscriptions. Very nice. I'm curious to see what models and approaches emerge in bots, as they learn more and more from their environment, from popular services, and then integrate all of these things. Do you have plans to advance this bot with lots of new features? Or are you planning to experiment with some other bots?
I built my first demo bot over the weekend and look forward to learning more about LUIS, FormFlow for Bot Framework, and all of the other Cognitive Services from Microsoft, Google, IBM, and elsewhere.
I see chat bots, virtual assistants, and AI as inevitable, powerful, useful, ... and now practical with frameworks that make messaging platform integrations so simple: I spent only about an hour getting my first Bot Framework bot onto Skype and SMS, and there are many messaging platforms available for integrating easily into, with step-by-step instructions, that could be added next.
I'm glad you're doing videos of these, but I'm disappointed by the quality of the video. It's very difficult to read.
Also, I get an exception when following along. I'm doing so in a Silverlight Business Application project. I created a ContentControl with the RegionManager.RegionName attached property value of 'TestRegion'.
An exception occurred while creating a region with name 'TestRegion'. The exception was: System.Collections.Generic.KeyNotFoundException: controlType at Microsoft.Practices.Composite.Presentation.Regions.RegionAdapterMappings.GetMapping(Type controlType) at Microsoft.Practices.Composite.Presentation.Regions.Behaviors.DelayedRegionCreationBehavior.CreateRegion(DependencyObject targetElement, String regionName).
There's a difference between actual reliability and provable reliability. Gilad merely asserts that the actual reliability of programs written in dynamically-typed languages are equal to statically-typed languages. Not sure whether that's true or not,
but that distinction matters.
Gilad is right (and Anders admits) that dynamic typing allows greater flexibility and power (at a cost). But I think Gilad lacks appreciation for the advantages that static typing provides. Yes, it's harder to make static-type languages perform tricks like
pervasive type inference, and it's harder to implement metaprogramming, and this is due to the additional design constraints of proving reliability and safety. But with every constraint, every proof of logical correctness, you get some advantage... like better