# Friday, May 29, 2020

The fourth and final keynote of Microsoft Build 2020 focused on Teams, Microsoft Graph, Windows, and the Fluid Framework. As has been the case for some time, Teams appears to be innovating at a rapid pace. I was encouraged by the unified Windows platform, which allowed developers to combine UWP and desktop apps – a source of frustration in the past.

Here are my notes:

Teams

Changing the way people work and learn

Collaboration app

Extensible: Build apps using

Using Power platform

Bot framework

Graph API

SharePoint framework

New capabilities

Teams extensions for VS code and VS

Select type of app

Build app

Test in Teams with 1 click

Publish

To App Store

To your  tenant

Teams + Power Apps

Use templates or create from scratch

Customize Teams

Drag and drop

Multiple windows

GA this summer

AAD Single Sign on

Activity Feed API

Users can customize workspace with apps

Users can pop-out apps

 

Microsoft Graph

API to access mail, people,

Call via HTTP requests

SDKs for multiple languages

New

View and Modify permissions

Microsoft Graph Toolkit

Extend M365 (e.g., extend Teams)

Build your own apps

http://graph.microsoft.com

Publisher verification and certification

Apps verified/certified by MS

Increase trust

IT admins can set policies around this

Connectors

Move data in and out of MS Graph

e.g., Move data to/from Azure

Security and Compliance

e.g., Teams Chat webhook API

Knowledge Generation

Project Cortex

Knowledge network across org

e.g., show info about a specific topic

 

Fluid Framework

Content-centric collaboration

Built for end-users and developers

End-users

Components

Tables, lists

Can insert into email and chat

Rendered in-line

Developers

Web-based framework

Distributed data structures, data merge

Embed into other apps

http://fluid.microsoft.com

Low latency

Demo

Replace JavaScript Map with Fluid SharedMap

Listen to events on SharedMap

Framework is open source

 

Windows

Unifying App Development

Project Reunion

Unifying UWP and desktop apps/libraries

Decoupling from OS

Mix and match apps

No need to wait for users to update OS

New WinUI controls

Support for swiping gesture

Number control has ability to  do math

Windows Virtual Desktop (WVD)

Apps adapt when running on iPad, Linux, other platforms

 

 

Friday, May 29, 2020 9:25:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 28, 2020

GCast 86:

Logging in a Java Spring Boot Application

Learn how to add logging to your Java Spring Boot application and configure the level of that logging.

GCast | Java | Screencast | Video
Thursday, May 28, 2020 3:03:32 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, May 27, 2020

The third keynote at Microsoft Build 2020 was the most informative one that I’ve watched so far. It was hosted by Scott Guthrie, but included presentations and interviews by many other Microsoft experts, including Donovan Brown and CVPs Amanda Silver, Julia White, and Rohan Kumar. I’m most interested in exploring Codespaces (which was discussed in Keynote 2) and the new Machine Learning Studio.

Here are my notes:

 

95% of Fortune 500 companies use Azure

61 Azure regions

 

Sustainability

Carbon negative by 2030

By 2050, Remove all historical Microsoft carbon emissions

$1 billion climate innovation fund

 

Teams

75 million daily users

Built on Azure

 

Developing for the Cloud

Demo: Single Page App

Static Web Apps + Serverless Functions

Deployed from VS Code via GitHub

New Azure service; Static Web  App (Preview)

Github actions

Pull Request from VS Code, using GitHub extensions

Codespaces

 

Azure Static Web Apps

Currently in preview

Dynamic scaling

Github native workflow

Use JavaScript framework or static site generator to build app

You can Configure routing, auth, custom domains

 

Visual Studio Codespaces

Development environment in browser

Hosted in Azure

Extensions supported

VS or VS Code experience

 

Azure Serverless

Azure Kubernetes Service

Windows Server containers (new)

Azure Private Link

Spot pricing

cheaper, but allows for some interruptions

For more tolerant apps

 

Azure Cosmos DB

Free tier

Serverless pricing

pay only when used

May be cheaper for "spiky" workloads

Auto-scale

99.999% availability

 

Cognitive Services

AI in Azure

Built-in models

Customizable models

Personalizer

Rationalization service

Apprentice mode: Run along time existing service

New Speech voice styles

Enhanced container support

 

Power Apps

Developers and "Citizen Developers"

 

Demo: Covid-19 screening

VS Connected Services experience

Wizard to connect to Azure resources, such as CosmosDB

HTTPRepl

Browse and debug API

Command line

ls: List services in API

get: execute HTTP GET on API

 

Interview with Starbucks CTO Gerri Martin-Flickinger

Using MS collaboration tools (e.g., "Teams") to connect teams

Using Azure to  analyze COVID-19 and understand which stores to open, when, and how to ope

 

Azure Synapse Analytics

Data warehouse

Integration with Power BI and Azure Machine Learning

Azure Synapse Link

Cloud native implementation of hybrid transactional analytical processing

Links operation databases to Synapse

Data available in seconds

No need for ETL pipelines

Currently available for Cosmos DB (other databases coming)

[Synapse Link] button in CosmosDB "Data Explorer" blade

 

New Azure Machine Learning Studio

Notebooks

Designer: drag and drop

Wizard

 

Azure Machine Learning Responsible ML (announced)

Understand, protect, and control data and models

Wednesday, May 27, 2020 9:47:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, May 26, 2020

This year’s Microsoft Build conference was entirely online, which changed the format of the keynote presentations. In the second keynote, Scott Hanselman sat at his home computer and connected with others at Microsoft via Teams. They showed off some of the projects they were working on, including a Xamarin application and a dog-tracking application; but, these apps were just an excuse to talk about some of the newer technologies from Microsoft. Technologies covered included Codespace, Guthub mobile, Wingget, WSL2, and Windows Terminal.

The conversations were enhanced by Hanselman’s wit.

Here are my notes:

WinGet

Package manager for Windows

e.g.,

winget install terminal

aka.ms/winget

 

Coding in Teams

@codeconversations

Allows you to write code

Start with ``` to go into executable  code in the cloud

aka.ms/codeconversations

 

WSL2

Real Linux kernel

Docker desktop works

GIMP running in WSL2

GUI in Linux

currently in preview; Available later this year

aka.ms/wsl

 

Windows Terminal is now version 1.0 (finally)

Unicode characters

Background images

 

 

GitHub

Just acquired npm

99% of npm packages hosted on github

Github is now free - even for private repos with unlimited people

Enterprise features available for a fee

Github mobile app for iOS and Android

 

GitHub Mobile

Check on pull requests and issues

Comment on Pull Requests

 

Codespace

Development environment in the cloud

From github repository, click green [Code] button

From dropdown: Open in Codespace

Opens dev environment in browser

Similar to VS Code

Settings | Preferences Sync

Select settings

[Turn on]

Same theme and extensions on-premise as in the cloud

LiveShare

Connect and collaborate with others using Visual Studio or Visual Studio Code

aka.ms/codepaces

 

Visual Studio Code

21,000+ extensions

 

Xamarin

Hot reload: Changes reflected immediately in running app (no recompile / redeploy required)

 

 

 

 

Tuesday, May 26, 2020 9:53:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 25, 2020

Episode 610

Christine Matheney on Teaching Computer Science to the Next Generation

Christine Matheney is passionate about teaching science and technology to young people. She works with Girl Scouts and high school students and teachers, helping them learning Computer Science. She discusses her activities and what Microsoft is doing in this area.

Monday, May 25, 2020 9:57:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 24, 2020

LordOfTheFliesWhat would happen if a plane crashed on a deserted island and the only survivors were a group of English schoolboys?

Would they form their own society?

Would they establish rules by which to govern themselves?

Would they be kind to one another?

William Golding describes this scenario in his 1954 novel Lord of the Flies.

It is a dark story.

After their plane crashes, killing all adults on board, the boys attempt to self-govern, but quickly devolve into savagery. The stronger boys seize power and bully the weaker ones.

Golding uses the boys on the island as a microcosm of society. Without the rule of law to govern them, the strongest take over and exert their way upon the weaker ones.

Not one of the boys is over 12 years old, but it is easy to forget this as they grow more violent and emotion overrides reason and groupthink overrules logic.

A power struggle takes place between Ralph, who tries to establish order and a set of rules to help the boys survive and increase their chance of rescue; and Jack, who appeals to their emotions and plays on their fear of an alleged monstrous beast on the island.

As their makeshift society collapses, they begin to worship the head of a pig swarming with flies (their "Lord of the flies") and even robbery and murder is no longer taboo to some of them.

I read this parable 20 years ago and again this week - and I loved it. Golding paints a dark picture of the chaos that results when rules are not enforced. We see ourselves in these young boys and it is not the best part of ourselves.

Sunday, May 24, 2020 9:09:00 AM (GMT Daylight Time, UTC+01:00)
# Saturday, May 23, 2020

AllTheKingsMenAll the King’s Men by Robert Penn Warren tells the story of Willie Stark - a southern country lawyer who beat the system and became Governor.

Stark began as "Cousin Willie from the country". His first entry into public life was to fight against a back-room deal that handed a school construction project to an undeserving contractor - a deal that resulted in the deaths and injury of dozens of children when a fire escape collapsed a couple years later. Willie continued his fight against the political establishment and eventually became governor. But, as he accumulated more power, he lost the idealism of his youth. Eventually, he became known to all his associates as "The Boss".

Willie was charismatic and popular because he championed the common man. But he was also brutal and would not hesitate to destroy his enemies. He often resorted to bullying, bribery, and blackmail to accomplish his goals and maintain his power. He built and presided over his own political machine.

Eventually, Willie encounters problems against which he is powerless.

But All the King's Men is not just the story of Willie Stark. It is as at least as much about Jack Burden - Stark's friend and right-hand man and the narrator of Warren's novel. Like Willie, Burden abandons his ideals as he carries out Willie's plans - ignoring the consequences of his actions.

And the book is very much about the consequences of actions. Neither man has trouble rationalizing his choices. Stark believes that the ends justify the means - that it is ok to accumulate power by any means necessary because he is doing good with that power. He is convinced there is only evil in the world, so he must use that evil as a tool to make good. Stark is not a bad man. But, in his quest to do good, he ends up causing bad things.

Burton, in contrast adopts a nihilistic attitude in which he ignores any results of his action. He lives much of his life through Willie and abandons his own sense of responsibility.

Even many of the minor characters in  the novel compromise their principles at least once - invariably with negative unintended results.

This is a novel about the corruption of power and the hypocrisy inherent in American politics and the consequence of using the end to justify the means and the limits of that power once obtained. Although written in 1947 and chronicling a fictional southern state governor (presumably based on Louisiana governor Huey Long), one can find parallels in the current administration.

Saturday, May 23, 2020 7:22:00 AM (GMT Daylight Time, UTC+01:00)
# Friday, May 22, 2020

The Microsoft Build conference had a different feel this year as the global threat of the COVID-19 virus forced the company to host the entire conference online – mostly from the homes of the developers and managers. Of course, this affected me less than others because I have never actually attended Build in person.

I always make a point of watching the opening keynotes, as this is where one hears about new announcements and the things about which Microsoft is most excited.

The day 1 keynote featured Satya Nadella calling attention to the success of Azure, Office 365, and Microsoft 365. He invited a couple of guest speakers to demonstrate how they were using Microsoft technologies to improve their business.

Immediately after Satya’s address, the finals for Imagine Cup were held. This is an international student tech competition that included thousands of submissions from all over the world. The 6 semi-finalists were introduced; the 3 finalists presented their project, and a champion was announced. This event is close to my heart, since I was involved a few years ago. Team Hollo from Hong Kong won with a project that used AI to track mood by analyzing video and voice and comparing it to pre-built models, as a way of combatting depression and suicide.

Here are my notes from Day 1:

Satya Nadella

CodeSpace

Provision dev box in cloud, provisioned with VS Code

Work from any device

WSL 2

Linux on  Windows

Power Platform

 

95% of Fortune 500 use Azure

Cloud extends to edge

Azure Arc

 

Microsoft 365

Build apps or extend apps

 

Power Platform

Rapid App Dev tool for professional developers

Also for "Citizen developers" who don't write code for a living

3.5 million users

Extends M365

1-click: Add Power Apps to Teams

 

Distributed Infrastructure

95% of Fortune 500 use Azure

Most data regions (61)

 

"Project Reunion"

Unify Win32 and USP app development

 

Case Study: Folding@Home

Greg Bowman, PhD, Washington U St Louis

Studying how proteins fold

Distributed computing to home computers

https://foldingathome.org/

 

Case Study

San Francisco Conservatory of Music

App integrates with Teams

Use Teams to perform for and interact with audience

Tudor Fay, New Blue, Inc.

 

Imagine Cup

6 semi-finalists

3 Finalists

Tremor Vision

United States

Parkinson's

Azure Custom vision to detect tremors associated with Parkinson's

Team Syrinx

Tokyo

Lost voice

Device on throat. Generates vibration patterns.

Hollo (winner!)

University of Hong Kong

Mood tracking app

Use Azure to track face, voice. Use models to evaluate mental health

 

New features for education

Microsoft Learn Student Ambassador

New student hub on Microsoft Learn

Student Zone at Build

Friday, May 22, 2020 6:12:47 PM (GMT Daylight Time, UTC+01:00)
# Thursday, May 21, 2020

GCast 85:

Dependency Injection in Java Spring Apps

Learn how to declarative initialize services using the dependency injection features of the Java Spring framework.

GCast | Java | Testing | Video
Thursday, May 21, 2020 1:37:26 PM (GMT Daylight Time, UTC+01:00)
# Sunday, May 17, 2020

GreatGatsbyYoung Nick Carraway spent the summer of 1922 in East Egg Long Island, renting a home next to the mansion of the enigmatic Jay Gatsby. A plethora of rumours about Gatsby bounced around the small community: Gatsby is the son of European royalty; he was a German spy in the war; he once killed a man.

The two men become friends and Gatsby asks Nick to help him re-connect with his former lover Daisy Buchanan, who is now trapped in a loveless marriage.

There are many reasons why F. Scott Fitzgerald's The Great Gatsby is a classic. It captures the spirit of the wealthy elite in the Jazz Age of 1920s America; it sings of lost love and unattainable love; and it is the kind of timeless tragedy that stays with the reader long after the novel is finished.

Gatsby represents the American dream of the self-made man, yet the old money of Long Island looks down on him. He cannot let go of the past, so he buys a mansion across the bay from his former lover; he throws lavish parties in the hope that she will attend. Gatsby reinvents himself; and he amasses a fortune, thinking it will win Daisy's heart and rekindle what they once had. He does not consider that Daisy is not the girl she was; or that she was never the girl he believed her to be. He is in love with a vision of her from the past - a vision that was never real.

Gatsby is likeable; Daisy's husband Tom is arrogant and unfaithful and violent. But Tom is from old money; born into a higher caste. And this makes a difference to Daisy.

It is a tragic story of the shallowness and arrogance of the financial and social elite. Gatsby idealized Daisy; in the same way, people overestimate the positive effect that money will have on their life. There is an emptiness inside so many of the characters.

Sunday, May 17, 2020 9:22:00 AM (GMT Daylight Time, UTC+01:00)