# Thursday, June 4, 2020

GCast 87:

Logging to Azure Application Insights from a Java Spring Boot Application

With a few configuration settings, you can push your logs from a Java Spring Boot application into Azure Application Insights - even if the app is not running in Azure!

Azure | GCast | Java | Screencast | Video
Thursday, June 4, 2020 3:54:21 PM (GMT Daylight Time, UTC+01:00)
# Wednesday, June 3, 2020

When working with Git, I find myself frequently typing “git status” - a useful command that shows me on which branch I am working and the number of uncommitted files that have been changed, added, and deleted. An example is shown in Fig. 1:

gp01-gitstatus
Fig. 1

As you can see, I am working on the "dgiard/posh-git-demo" branch, I have added 1 file, deleted 1 file, and changed 1 file since my last commit.

But what if I could always see this information? What if was appended to the command line, so I never had to type "git status"?

The posh-git tool provides exactly this functionality.

To install posh-git, run Windows PowerShell as an administrator.

At the PowerShell command prompt, enter  

PowerShellGet\Install-Module posh-git

and press "Y" when prompted for confirmation.

Then, enter the command 

import-module posh-git

Your command prompt will change to something like the one shown in Fig. 2.

gp02-gitposhPsPrompt
Fig. 2

Notice the text in square brackets after the path. It lists the current branch no which I am working, followed by the number of files I have added, changed, or deleted (if any) since my last commit. The red text, indicates these changes not been added to my git rep repository. If I issue a "git add", the text will change to green to indicate they are ready to commit, as shown in Fig. 3.

gp03-added
Fig. 3

After I commit the files, I only see my current branch and no uncommitted files, as shown in Fig. 4.

gp04-commit
Fig. 4

Of course, I can get more details by typing "git status"; but most of the time, this is all the information I need.


Thank you to Hattan for showing me this tool.

Wednesday, June 3, 2020 3:31:00 PM (GMT Daylight Time, UTC+01:00)
# Monday, June 1, 2020

Episode 611

Nik Molnar on Visual Studio Codespaces

Visual Studio Codespaces (formerly Visual Studio Online) is a cloud-based development environment that you can connect to from Visual Studio Code, within a browser, and from Visual Studio (in private preview). PM Nik Molnar describes the capabilities and how it works.

Links:

https://online.visualstudio.com/

https://github.com/nikmd23/ballpark-tracker

Monday, June 1, 2020 9:01:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 31, 2020

SpyWhoCameInFromTheColdIt is the early 1960s at the height of the Cold War. Alec Leamas is the Berlin Station Head for the British Intelligence agency known as the "The Circus". Operations in Berlin have not gone well and Leamas is taking the blame.

When Leamas returns to England, the Circus chief - who goes by the name "Control" - gives him a new assignment. Leamas is told to pretend to leave The Circus under bad circumstances and lead a life of isolation, alcohol, debt, and bitterness. The Circus even circulates rumours of incompetence and embezzlement to make his despair more convincing. Sure enough, an agent of the Eastern Bloc approaches Leamas after he` is released from jail on an assault conviction.

Leamas defects to the other side and sows suspicion amongst his enemies. But is Leamas the manipulator or is he the one being manipulated?

John Le Carré is a master at building suspense. For a novel with very little action (much of it is interrogation), I found myself riveted to "The Spy Who Came in from the Cold" - anxious to know what will happen next. He kept me guessing until the end - pointing the reader in one direction, before pulling back the curtain to reveal a new twist.

On the surface, this is a complex spy novel with espionage and double agents and double-crossings and triple-crossings.

But there is a subtext to this novel that elevates it from good to great. The Communists of the East and the Democracies of the West each hold to ideals that they believe are best for their society. Yet, the agents protecting these societies are willing to completely ignore those ideals to protect their societies. To them, values are meaningless when a war must be won. To protect the interests of the state, bad guys are protected, and idealists are destroyed. England may believe in democracy for its citizens, but The Circus will abandon all national principles to win the Cold War. Leamas has become almost numb to this hypocrisy. He strives to ignore the moral issues and just do his job. If it were not for the love story, he would have succeeded.

Sunday, May 31, 2020 9:20:00 AM (GMT Daylight Time, UTC+01:00)
# Saturday, May 30, 2020

SandmanLong ago, in an isolated temple in the mountains near Kyoto, a magical fox falls in love with a monk. When the monk's life is threatened by a powerful rich man and his hired demons, the monk and the fox must choose whether to sacrifice themselves for the other.

They seek the help of Morpheus, the King of All Night's Dreaming - a character introduced in Gaiman's popular Sandman comic series.

Sandman: The Dream Hunters is a novella written by Neil Gaiman and illustrated by Yoshitaka Amano. Amano is famous for his work on anime projects video games and he adds depth to this story with beautiful watercolor and charcoal images.

This is a simple fairy tale, with the feel of Japanese folklore. It does not add much to the Sandman legend, as Morpheus is a peripheral character here, but he helps to tie the story together with his advice and philosophy.

Immediately after reading this novella, I read P Craig Russell’s comic adaptation, which was a simplified version of the same story and also worthwhile.

The Dream Hunters is a beautiful tragic love story, told with Gaiman's lyrical charm.

Saturday, May 30, 2020 9:54:00 AM (GMT Daylight Time, UTC+01:00)
# 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)