# Saturday, June 6, 2020

MoneyJohn Self is a successful director of advertising commercials, getting ready to direct his first feature film. He has a seemingly limitless budget for this film and is promised a huge salary. The Englishman travels from his London home to New York and back multiple times, consuming physical pleasures along the way.

Martin Amis's novel Money -sometimes titled Money: A Suicide Note- tells Self's story.

John leads a life of hedonism and debauchery, gliding from booze to porn to drugs to prostitutes to bar fights to masturbation to his girlfriend. And, despite his recent directing contract, he has trouble with money.

Most of his problems are Self-inflicted. He is an overweight drunk and a sex addict and a misogynist and is sometimes violent and he is extremely careless with money. Here are some examples of John's philosophy:

"The first thing I wonder about a woman is: Will I f*ck it? Similarly, the first thing I wonder about a man is: Will I fight it?"

"I disclaim responsibility for many of my thoughts. They don't come from me. They come from these squatters and hobos who hang out in my head"

But John is also a victim.

He suffers from a severe toothache and from tinnitus. When he came into money, his father presented him with a bill for the cost of his upbringing; his gold-digging girlfriend is unfaithful and is spending his savings; each of the film's actors pressures him to radically alter the movie's script in order to satisfy their ego; Self has a mysterious enemy, who calls him to harass and threaten him and seems to know everything about his life. And there are other forces conspiring against Self of which he is unaware until the end of the novel.

Amis does a good job building a character that is at once abhorrent and sympathetic. John Self is clever, but unlikeable. His first-person narrative is the stream of consciousness made popular by writers like Henry Miller, Vladimir Nabokov, Malcolm Lowry, and Jack Kerouak. And Self's path to self-destruction is not unlike the narrators of "Tropic of Cancer", "Lolita", "Under the Volcano", and "On the Road".

And the author's ability to take a complex, unlikely story filled with hyperbole and make it seem plausible is admirable, as is the humor with which he tells this story. Amis even inserts himself into the book, as the arrogant writer that John approaches to rewrite his screenplay. He may add himself as a character to convince the reader that he is not the vulgar anti-hero narrator.

It helped that I listened to the audiobook, which was expertly narrated by Graeme Malcom, who reminds me very much of Michael Caine

Money is a commentary on the excess consumerism of the 1980s; but it will remain relevant as long as humans value money over other aspects of their life.

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