# Sunday, February 2, 2020

2/2
Today I am grateful for a visit to the Henry Vilas Zoo in Madison, WI yesterday.

2/1
Today I am grateful for 2 years in my condo.

1/31
Today I am grateful for Coffee with Andy

1/30
Today I am grateful for those who offered to help me learn a new technology, without me even asking.

1/29
Today I am grateful to attend a Lunar New Year celebration yesterday.

1/28
Today I am grateful to reconnect with some old friends via email this past week.

1/27
Today I am grateful to watch the Grammy Awards last night

1/26
Today I am grateful to attend the Microsoft holiday party last night.

1/25
Today I am grateful for my first visit to Charlotte, NC.

1/24
Today I am grateful for dinner last night with Emiel after 15 years.

1/23
Today I am grateful for Carolina bbq last night in North Carolina.

1/22
Today I am grateful for dinner last night in Charlotte with Richard.

1/21
Today I am grateful for Inbox Zero.

1/20
Today I am grateful to get Emilija's car running again.

1/19
Today I am grateful to watch the harsh weather this week through my window from inside my warm living room.

1/18
Today I am grateful that the Michigan State basketball and ice hockey teams are both in first place.

1/17
Today I am grateful to attend an Andy Warhol exhibit at the Art Institute of Chicago last night with Julie.

1/16
Today I am grateful to watch Nick's team's first conference victory last night in Kalamazoo.

1/15
Today I am grateful for a new bike chain.

1/14
Today I am grateful for dinner last night with Julie and David.

1/13
Today I am grateful that I had a chance to know Scott Allen before he left us.

1/12
Today I am grateful for the blanket of white covering the city this morning.

1/11
Congratulations to the North Dakota State Bison on another title!

1/10
Today I am grateful for the hospitality and generosity of Chris Chris this week.

1/9
Today I am grateful for dinner with J. last night.

1/8
Today I am grateful for dinner last night with Kendall and Gary.

Jan 8, 2020, 8:34 AM
David Giard updated his status.

1/7
Today I am grateful to come to the Kalahari for the 12th consecutive January.

1/6
Today I am grateful for the NFL playoffs.

Sunday, February 2, 2020 12:56:53 PM (GMT Standard Time, UTC+00:00)
# Thursday, January 30, 2020

GCast 71:

Integrating Visual Studio Solution with Azure DevOps Repo

Learn how to configure your Visual Studio 2019 solution to integrate with an Azure DevOps repository.

ALM | Azure | DevOps | GCast | Screencast | Video | Visual Studio
Thursday, January 30, 2020 9:27:00 AM (GMT Standard Time, UTC+00:00)
# Monday, January 27, 2020

Episode 595

Tibi Covaci on Migrating to the Cloud

Tibi Covaci discusses strategies and factors companies need to consider when migrating their applications to the cloud.

Monday, January 27, 2020 8:02:00 AM (GMT Standard Time, UTC+00:00)
# Saturday, January 25, 2020

AHouseforMrBiswasMisfortune followed Mr. Biswas his entire life. He was born slightly handicapped and grew up weak in body and spirit. When he was a boy, his father accidentally drowned as a result of his negligence. He was sent to live first with a craftsman, then with an abusive uncle and each stay ended disastrously. As a young man, his flirtation with a local young lady is misinterpreted as a proposal and he is pressured by her family into marriage. From that moment on, he finds himself dependent on the wealthy Tulsi family - a dependence he comes to bitterly resent.

A House for Mr. Biswas by V.S. Naipaul takes place before and during World War II among the east Indian community of the West Indian island of Trinidad.

The house that Mr. Biswas craves is a symbol of his freedom and independence - evidence that he will no longer rely on others for shelter or status or anything else - and for the respect that will accompany that independence.

The reader wants to pity Mr. Biswas, but it is often hard because so much of his pain is self-inflicted. He alienates everyone around him with his rages and his pettiness. The book must have been painful for Naipaul to write, as the title character is based on his own father. At times, it was painful to read as I recalled the times in my own life when I acted against my own best interest out of anger or spite.

There isn't much action in this book and Naipaul removes suspense by revealing the ending in the prologue; but he makes it work for several reasons:

He builds characters that the reader can care for, even if they are not likeable.

His prose and dialogue are wonderful - sometimes tragic; often humorous.

He weaves together large themes, such as the changing cultures in a post-colonial world and the conflicts of toxic relationships.

A House for Mr. Biswas is an excellent story of a limited man struggling to free himself.

Saturday, January 25, 2020 12:59:02 PM (GMT Standard Time, UTC+00:00)
# Thursday, January 23, 2020

GCast 70:

Deleting an Azure DevOps Project

Deleting a project from an Azure DevOps organization is not intuitive (at least it wasn't for me). Here is how to do it.

Thursday, January 23, 2020 6:08:00 AM (GMT Standard Time, UTC+00:00)
# Monday, January 20, 2020

Episode 594

Christian Geuer Pollmann on Erlang and Elixir

Christian Geuer-Pollmann describes the Erlang ecosystem, the Elixir language, and open source Azure tools he has built with Elixir.

Links:

https://github.com/chgeuer
https://twitter.com/chgeuer
http://blog.geuer-pollmann.de

Monday, January 20, 2020 9:34:00 AM (GMT Standard Time, UTC+00:00)
# Saturday, January 18, 2020

MIsForMagicM is for Magic collects 11 short stories by fantasy author Neil Gaiman.

The title is a tribute to Ray Bradbury's short story anthologies R Is for Rocket and S Is for Space and Gaiman's style is not dissimilar to Bradbury's.

The collection opens with "The Case of the Four and Twenty Blackbirds" - A detective story in the style of Dashiell Hammett's or Raymond Chandler's pulp novels, but featuring characters from nursery rhymes. Hard-boiled private eye Jack Horner attempts to solve the mystery of whether Humpty Dumpty fell from a wall or was pushed. The story is often laugh-out-loud funny.

10 more stories and a poem follow; they cover various subjects and styles, but revolve around the genres of fantasy, horror, and science fiction. These tales were written by Gaiman over a period spanning over 20 years. Many of them have appeared in other collections, but they were all new to me.

My favourite was "Chivalry", which tells of an old lady who buys the Holy Grail in a local thrift store for 70 pence and likes the way it looks on her mantle. When Sir Galahad arrives on his quest for the Grail, he offers her priceless treasures in exchange; but she really likes the way it looks between a ceramic figurine and a photo of her late husband.

Most of the stories are a bit scary, but none is terrifying. There is a bit of nudity and sex, so I would not recommend M is for Magic for young children. But teenagers and young adults will enjoy Gaiman's wit and creativity; And grown-ups like me will also like it.

The stories:

The Case of the Four and Twenty Blackbirds

Detective Jack Horner investigates the fall of Humpty Dumpty.

Troll Bridge

A young boy stumbles upon a giant troll, who declares he will eat the boy's life. The boy dissuades the troll by promising to return when he has experienced more life.

Don't Ask Jack

A mysterious and malevolent jack-o-lantern frightens the family

How to Sell the Ponti Bridge

An elaborate scam that impresses other grifters

October in the Chair

Each of the months of the year gather around a fire to exchange stories

Chivalry

An old lady discovers the Holy Grail in a secondhand shop. A few days later, Sir Galahad comes to her house on his holy quest.

The Price

The devil shows up and battles an adopted stray cat

How to Talk to Girls at Parties

Teenage boys attend a party hosted by alien females

Sunbird

An epicurean club travels to Egypt to capture and eat an extremely rare bird

The Witch's Headstone

A boy encounters the ghost of witch burned centuries ago and tries to help her

Instructions

A poem about what to do if you find yourself in a fairy tale.

Saturday, January 18, 2020 11:43:00 AM (GMT Standard Time, UTC+00:00)
# Friday, January 17, 2020

The C# string class provides a convenient method for replacing one string with another. The syntax is

string.Replace (<old string>, <new string>);

So the following code:

var oldName = "David";
var newName = "Mr. Giard";
var oldSentence = "My name is David";
var newSentence = oldSentence.Replace(oldName, newName);
  

stores the value "My name is Mr. Giard" in the variable newSentence.

It is simple and it works. But I recently discovered a limitation: Searching for the old string is always case-sensitive. If I want to do a case-insensitive search and replace instances of "David" or "david" or "DAVID" (or even "daVid"), the string.Replace method does not support this.

The following code:

var oldName = "DAVID"; 
var newName = "Mr. Giard"; 
var oldSentence = "My name is David"; 
var newSentence = oldSentence.Replace(oldName, newName);
  

Results in the value "My name is David" being assigned to newSentence. In other words, the Replace method did nothing.

Fortunately, I can use the regular expression library to do this. The code is below:

var oldName = "DAVID"; 
var newName = "Mr. Giard"; 
var oldSentence = "My name is David"; 
var regex = new Regex(oldName, RegexOptions.IgnoreCase); 
var newSentence = regex.Replace(oldSentence, newName);
  

It is only one more line than using Replace and it allows for much more flexibility. And, as Regular Expressions go, this one is quite simple.

C#
Friday, January 17, 2020 7:16:13 PM (GMT Standard Time, UTC+00:00)
# Thursday, January 16, 2020

GCast 69:

Azure DevOps Branch Policies

Learn how to set branch policies in Azure DevOps, including requiring approvers and requiring a linked work item.

Thursday, January 16, 2020 9:30:00 AM (GMT Standard Time, UTC+00:00)
# Monday, January 13, 2020

Episode 593

Annie Bougie on Autonomous Driving

Annie Bougie describes the different levels of autonomous vehicles and the state of the industry today.

Monday, January 13, 2020 9:28:00 AM (GMT Standard Time, UTC+00:00)