Xamarin DevDays 2017 - Azure Mobile Apps slide deck

Here's the slide deck for session #3 at the Xamarin DevDays 2017 in Montreal on Saturday, June 17 2017.  I spoke about how to create a backend for mobile apps using Azure Mobile Apps.

Visual Studio Talk Show - Intelligence artificielle et apprentissage automatique

Nous discutons avec Hoeurd Tep de ce qui le motive en tant que développeur à s’intéresser à l’intelligence artificielle et l’apprentissage automatique. L'apprentissage automatique (en anglais machine learning, littéralement «l'apprentissage machine »), champ d'étude de l'intelligence artificielle, concerne la conception, l'analyse, le développement et l'implémentation de méthodes permettant à une machine (au sens large) d'évoluer par un processus systématique, et ainsi de remplir des tâches difficiles ou problématiques par des moyens algorithmiques plus classiques.

Hoeur Tep est un consultant indépendant, passionné des nouvelles technologies et plus particulièrement ce qui se rapporte à l’intelligence artificielle.  Vous pouvez le rejoindre sur http://linkedin.com/in/hoeurdtep.


That 5 min meeting with a developer...

Sometimes a simple picture or graph is all you need to explain something.  This one nails it.


Source unknown but whoever you are, I'll buy you a beer!

Obfuscating Azure secrets while presenting or recording

If you've been presenting or recording presentations about Azure, you may have tried to hide keys, subscription IDs and other secrets from your audience.  It's not that easy, especially when these secrets move along the tiles in the Azure portal.  I finally found a couple of extensions to help obfuscate secrets while presenting to an audience or recording a video. 

Code obfuscation in Visual Studio
Viasfora is a free extension for Visual Studio 2012-2017 that offer a series of text editing improvements and one of them is the option to obfuscate code. Once installed, you open the Visual Studio Options menu and locate the Text Hiding section of the Viasfora settings.  Using a RegEx expression, Viasfora with look for a pattern in your code and hide that code.  I wanted to quickly add and remove the pattern so I came up with a RegEx expression that will look for this pattern: *_hidden*=.  This way, I can simply append any variable name with _hidden and voilà! Here's the expression: (?:_hidden\w*\s*=\s*")(.*)(?:")

Here's the code.  Notice the first two variables ends up with _hidden.

Selecting the View\Obfuscate Text menu will obfuscate the values.

However, you still need to be careful because if you hover the mouse on a variable, the value will be displayed in the tooltip.

Granted I could place these values in the config file or in a class that I won't show but none the less, this is a cool extension.

Text obfuscation in Chrome
Recording a video about an Azure service may expose some sensitive data like your subscription ID.  I once started blurring the ID in Camtasia but since the blades are moving horizontally, it was just impossible to do so I gave up until I saw Samir Bellouti presenting at the Global Azure Bootcamp.  All his secrets in the portal were hidden and he told me that he was using a Chrome extension.  I can't remember which one he was using exactly but I found Blur It Out in the Chrome Web Store.

Once installed, you simply click on the Blur It Out toolbar button and add the text you want to obfuscate (Note that I've blurred the ID using SnagIt in the next screenshot)

The text is now hidden in any page you browse.

Still, be careful because if you hover the mouse over the obfuscated text, it will be revealed!

That's it!  If you have some tricks to hide secrets while presenting, I'd be more than happy to hear from you.

Visual Studio Talk Show - Les nouveautés de Visual Studio 2017

Nous discutons avec Eric Moreau de quelques unes des nouveautés de Visual Studio 2017.

Eric est en consultant .Net. Il est aussi Visual Studio and Development Technologies MVP (Microsoft Most Valuable Professional). Eric peut être rejoint eric@moer.ca et son blog est disponible www.emoreau.com.


Visual Studio Talk Show - TypeScript

Nous discutons avec Mathieu Richard du langage TypeScript, un langage de programmation libre et open-source développé par Microsoft qui a pour but d'améliorer et de sécuriser la production de code JavaScript.

Développeur chez GSoft , Mathieu Richard est un passionné des nouvelles technologies et plus particulièrement, tout ce qui se rapporte au développement web.  Il est co-organisateur de la Communauté .NET de Montréal où il présente régulièrement sur divers sujets touchant le développement Web. Son implication est reconnu par Microsoft car il est récipiendaire de la reconnaissance MVP.  Sa passion et sa curiosité pour la programmation lui ont causés quelques nuits écourtées, mais lui donne le sentiment du devoir accompli. Toujours en attente de la prochaine coupe Stanley du Canadien... Vous pouvez le suivre sur twitter @matrichard5


Global Azure Bootcamp 2017 Montreal - Slide Deck

Here's the deck we used for the Global Azure Bootcamp 2017 Montreal that took place on Saturday, April 22, 2017.  We did an intro to Azure development and I presented how to use the Text Analytics API that is part of the Microsoft Cognitive Services APIs.  It was a full day of fun live coding.  The source code is available on GitHub


Easy data generation with Faker.Data

I was tasked to generate a million dummy customer records in CSV files to test the import process of a service that my client uses.  I wanted to add some randomness in the data and a quick search led me to Faker.Data, a simple C# library available on GitHub that generates all kind of fake data and it's super fast.  I was able to generate 3 CSV files with a million records each in less than 30 seconds on an ordinary laptop.  Here are a few examples of what Faker.Data can generate:

var state = Faker.Address.State();
var stateAbbr = Faker.Address.StateAbbreviation();
var provinceAbbr = Faker.Address.ProvinceAbbreviation();
var province = Faker.Address.Province();
var streetName = Faker.Address.StreetName();
var country = Faker.Address.Country();
var cityPrefix = Faker.Address.CityPrefix();
var citySuffix = Faker.Address.CitySuffix();
var secondaryAddress = Faker.Address.SecondaryAddress();
var usCity = Faker.Address.USCity();
var usCounty = Faker.Address.USCounty();
var canadianZip = Faker.Address.CanadianZip();
var usZip = Faker.Address.USZip();

var maleName = Faker.Name.MaleFirstName();
var femaleName = Faker.Name.FemaleFirstName();
var first = Faker.Name.FirstName();
var full = Faker.Name.FullName();
var last = Faker.Name.LastName();
var gender = Faker.Name.Gender();
var ethnicity = Faker.Name.Ethnicity();

//Geo Location
var lat = Faker.GeoLocation.Latitude();
var lon = Faker.GeoLocation.Longitude();

var rgb = Faker.Color.RGB();
var hex = Faker.Color.Hex();
var systemColor = Faker.Color.SystemColor();
var color = Faker.Color.ColorString();

var randomNumber = Faker.Number.RandomNumber();
var randomNumber1 = Faker.Number.RandomNumber(10);
var randomNumber2 = Faker.Number.RandomNumber(10,20);
var negativeNumber = Faker.Number.NegativeNumber(10);
var evenNumber = Faker.Number.Even(0,50);
var oddNumber = Faker.Number.Odd(0,50);
var doubleNumber = Faker.Number.Double();
var boolResult = Faker.Number.Bool();

var jpeg = Faker.Images.JPEG();
var bmp = Faker.Images.BMP();
var png = Faker.Images.PNG();

var host = Faker.Internet.Hosts();
var ipv4 = Faker.Internet.IPv4();
var ipv6 = Faker.Internet.IPv6();
var macAddress = Faker.Internet.Mac();
var localhost = Faker.Internet.LocalHost();
var protocol = Faker.Internet.Protocol();
var topDomainSuffix = Faker.Internet.TopDomainSuffix();
var topCountrySuffix = Faker.Internet.TopCountryDomainSuffix();
var domainSuffix = Faker.Interent.DomainSuffix();

//Credit Card
var type = Faker.CreditCard.CreditCardType();

var between = Faker.Date.Between();
var birthday = Faker.Date.Birthday();
var forwardTime = Faker.Date.ForwardWithTime();
var forwardTime1 = Faker.Date.ForwardWithTime(1, 1, 1);
var forward = Faker.Date.Forward(1, 1, 50);
var forward1 = Faker.Date.Forward();
var past = Faker.Date.Past(1, 1, 1);
var past1 = Faker.Date.Past();
var pasteTime = Faker.Date.PastWithTime();
var pasteTime1 = Faker.Date.PastWithTime(1, 1, 1);
var recent = Faker.Date.Recent(5);
var monthShort = Faker.Date.MonthShort();
var month = Faker.Date.Month();
var weekday = Faker.Date.Weekday();
var day = Faker.Date.Day();
var year = Faker.Date.Year();

var word = Faker.Lorem.Word();
var words = Faker.Lorem.Words();
var letter = Faker.Lorem.Letter();
var letters = Faker.Lorem.Letters(4);
var sentence1 = Faker.Lorem.Sentence();
var sentences = Faker.Lorem.Sentences(3);
var paragraph = Faker.Lorem.Paragraph(2);

var  = Faker.User.Username();
var  = Faker.User.Email();
var  = Faker.User.Password();
var  = Faker.User.Password(3);

Visual Studio 2017 - Montreal Launch Event Slide Deck

Here's the deck we used for the Visual Studio 2017 Launch Event in Montreal.

Surface Dial: How it works?

If you're been curious about how the Surface Dial works, the Microsoft Mechanics have published a nice video explaining how the Dial works.  Cool little puck!

Page List

Month List