# Thursday, May 30, 2019

GCast 50:

Angular pt 9: Incremental Search

Implementing Incremental Search with Angular JavaScript framework

Thursday, May 30, 2019 9:00:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 27, 2019

Episode 564

Eric Boyd on Microservices

Eric Boyd describes the principles of Microservices and how he uses these principles to build better software.


Monday, May 27, 2019 9:23:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 26, 2019

PowerAndGloryIn the 1930s, the Communist Mexican government outlawed Catholicism and officials imprisoned or killed priests who refused to renounce their faith.

Graham Greene's The Power and the Glory chronicles the story of a Mexican priest on the run from a Mexican policeman.

We never learn the name of the priest or the policeman, but we learn much about the priest.

He is flawed in many ways and overwhelmed with guilt over the sins of his life. He drinks so much that he refers to himself as a "whiskey priest"; and he broke his vow of chastity years ago, resulting in an illegitimate daughter. But he clings to his faith, despite the risk to his life.

As the priest travels from town to town, the policeman pursues him, going so far as to execute those who did not turn in the priest when they had the chance.

Many characters come in and out of the story and nearly all are suffering from the poverty and/or from shame. Poor and weak and struggling with his faith, the priest's life is also filled with misery.

But The Power and the Glory still leaves us with a feeling of hope and a belief in redemption. For people and for the church.

Sunday, May 26, 2019 7:16:53 AM (GMT Daylight Time, UTC+01:00)
# Saturday, May 25, 2019

LuckyJimJim Dixon is miserable.

He is petty and shallow; he is unqualified for his job; he is lazy and judgmental and sexist; he makes faces at people behind their back; and he is a drunk.

And he is miserable. Miserable because he is trapped in a job that he dislikes working for people he doesn't respect and he is convinced he will be fired soon. Almost everyone in his life is pretentious or boring or neurotic or arrogant. And most of them are trying to bully or manipulate him.

He is the title character of Kingsley Amis's first novel: Lucky Jim.

Lucky Jim is a farcical story filled with failure and petty revenge and self-destruction. But Amis's wit succeeds in making it enjoyable for the reader and even getting us to cheer for the novel's anti-hero.

The book is filled with excellent prose, like the following description of Jim's feelings the morning after a night of hard drinking.

"He lay sprawled, too wicked to move, spewed up like a broken spider-crab on the tarry shingle of morning. The light did him harm, but not as much as looking at things did; he resolved, having done it once, never to move his eyeballs again. A dusty thudding in his head made the scene before him beat like a pulse. His mouth had been used as a latrine by some small creature of the night, and then as its mausoleum. During the night, too, he’d somehow been on a cross-country run and then been expertly beaten up by secret police. He felt bad."

Read this silly book to laugh with and about an underdog, who somehow makes good, despite his best attempts not to do so.

Saturday, May 25, 2019 2:31:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 23, 2019

GCast 49:

Angular pt 8: HTTP

Learn how to make HTTP calls from within your Angular app.

Thursday, May 23, 2019 2:24:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 20, 2019

Episode 564

David Makogon on Streaming Data

David Makogon talks about streaming data and the tools to help you make it happen.

David on Twitter

Monday, May 20, 2019 9:10:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 19, 2019

CryingOfLot49Oedipa Moss's life was uncomplicated until her former lover - millionaire Pierce Inverarity - passed away and she was named the executor of his estate.

She said goodbye to her husband Mucho Maase and traveled to San Narciso, CA to investigate Pierce's assets.

During her investigation, she encountered a plethora of bizarre characters with bizarre names (Dr. Hilarius, Genghis Cohen, Mike Fallopian, Stanley Koteks, …), along with an ancient secret society dedicated to providing an alternative mail delivery system, to break the monopoly of the U.S. Postal Service.

The Crying of Lot 49 by Thomas Pynchon is an absurd, satirical novel with a huge number of twists, considering its brief length.

On the surface, this is a detective story; but it leaves most questions unanswered and most mysteries unresolved.

Its strength is in its humor and in the creative way it bounces Oedipa from one situation to the next.

The story includes the following:

A lawyer happens to be a former child star with the stage name "Baby Igor". He seduces Oedipa by feeding her tequila and playing strip baccarat while one of his old movies plays on the TV.

Oedipa's psychiatrist is intent on providing hallucinogenic drugs to his patients and ultimately reveals his Nazi past during a violent, paranoid, nervous breakdown.

An American rock band dresses like the Beatles and sing all their songs with a British accent.

And the story of the secret society, rebelling against the government by subverting its monopoly of the postal system keeps coming back to the front. It seems such a bizarre form of protest. But appropriate to this novella.

The novella makes up for its brevity by packing a great deal of quirkiness into less than 200 pages.

Sunday, May 19, 2019 2:58:00 AM (GMT Daylight Time, UTC+01:00)
# Saturday, May 18, 2019

MovieGoerThe Moviegoer by Walker Percy tells the story of Binx Bolling, a young stockbroker existing in New Orleans of the 1050s.

Binx spends most of his spare time chasing his secretaries and watching movies.

At first glance, Binx seems the shallowest of people. But he often sees the world through fresh eyes, even if he struggles to articulate these observations to those around him.

Percy takes us through life in New Orleans and Chicago as seen through Binx's eyes. He likes adventure, but he is easily bored. He loves his family, but he cannot relate to them. He cares for his cousin Kate, but not enough to protect her.

We see Binx interacting with his extended family, a remnant of southern aristocracy, who lament the changing ways of their society. We experience his relationship with Kate, who recently attempted suicide. Without thinking how it might concern Kate's parents, Binx and Kate leave suddenly for a week in Chicago, without informing anyone of their departure.

"What do you think is the purpose of life - to go to the movies and dally with every girl that comes along?", his aunt asks him? He responds "No", but the reader suspects otherwise.

One might think this is a tragic tale, but it is told in a lighthearted fashion and it ends with some optimism.

Saturday, May 18, 2019 9:26:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 16, 2019

GCast 48:

Angular pt 7: Routing

Routing in Angular is similar to routing in an MVC framework - except it happens on the client side. Learn how to implement it here.

Thursday, May 16, 2019 10:20:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 13, 2019

Episode 563

J Tower on .NET Standard

J Tower describes .NET Standard, .NET Core, and the .NET Framework and how developers can get different flavors of .NET to work together.

Monday, May 13, 2019 9:04:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 12, 2019

CallItSleepDavid's mother brought him to New York City from eastern Europe as a baby. Call It Sleep by Henry Roth follows young David through his first eight years, growing up in the tenements of early twentieth century New York City.

Life on the lower east side of Manhattan has been hard. Hard because the family struggles to make ends meet; hard because the quiet sensitive David is bullied by the other neighborhood boys; but, mostly hard because of David's abusive father Albert, whose temper and paranoia often prevent him from even holding down a job. Albert frequently takes out on his frustration on his young son.

David is sensitive and quiet and clings to his mother. His lack of assertiveness makes him an easy target for those who use him or bully him or blame him for their own mistakes. And there is no shortage of people in his world anxious to do this - from neighborhood kids to the local rabbi to his bratty cousins. The more the world troubles him, the more he clings to his mother for protection.

There is a constant tension between all the characters - partly the result of the stress of being a struggling immigrant in an unfamiliar country, but mostly because of Albert and his temper. And Roth does a good job bringing us into their lives and making us feel their angst.

When the point of view switches to young David, Roth often gives us an eloquent description of David's impressions of the world around him. But when angst overtakes the boy, Roth switches to a stream-of-consciousness inner dialogue, revealing young David's angst through incomplete sentences and phrases.

There is a lot of dialogue in this book and much of it is spelled phonetically to indicate the European or Bowery accents of the speaker. Add to that the occasional Yiddish word and this can be a difficult book to read.

But it is a good story that will make you feel for the characters trapped in it.

Sunday, May 12, 2019 9:23:00 AM (GMT Daylight Time, UTC+01:00)
# Saturday, May 11, 2019

AlGreenA pile of roses sat on a table far at stage left.

The band entered the stage and played a few minutes of a funky groove before Al Green walked out and picked up a handful of flowers and handed or tossed them to ladies in the audience. He repeated this gesture multiple times during his  performance.

This was an appropriate beginning to Green's performance. He did not as much perform for the audience as he charmed them. And, for the most part, they were delighted to be charmed.

It was Green's first tour in seven years and his stop in Chicago Tuesday night was a popular one.

The audience sang along to songs that were never pop hits. But, when he played some of his most popular songs ("Let's Stay Together", "Here I Am", "Tired of Being Alone", "I'm Still In Love With You"), everyone rose to their feet in appreciation.

I remember these songs as soulful melodies, delivered at a slowburn pace. But Green's band (9 instrumentalists + 3 backing vocalists) increased the tempo, delivering each one a little funkier than the original.

Green played mostly R&B and soul, but mixed in a bit of Gospel music. Al Green is an ordained minister with his own church in Memphis and he moved us with his rendition of "Amazing Grace". A medley of songs by the Temptations ("My Girl"), the Four Tops ("Sugar Pie, Honey Bunch"), and Otis Redding ("Dock of the Bay") pleased the audience.

The band closed with a rousing rendition of "Love and Happiness".

At 73, Rev. Green is a few years older, a little thicker in the waist, and lacks some of the energy he possessed during his popularity of the 1970s and 1980s. His performance lasted only about an hour and did not include an encore; but he still can hit the high notes that made him famous; and he still projects joy while singing the songs that brought joy to so many of us during our youth.

Saturday, May 11, 2019 9:08:00 AM (GMT Daylight Time, UTC+01:00)
# Friday, May 10, 2019

DavidAtThatConferenceLately, I’ve done less public speaking than in past years. But I still have a few presentations scheduled.

I will be delivering a presentation titled "We Want the Func! Using Azure Functions to Ease Deployment" at the following events:

Date Event Location
May 11, 2019 Chicago Code Camp Chicago, IL
May 23, 2019 DevSum Stockholm, Sweden
July 22, 2019 Chicago Cloud Conference Chicago, IL

In addition, I will present "How Cloud Computing Empowers a Data Scientist" August 8, 2019 at the PASS Cloud Virtual Group – an online user group.

Friday, May 10, 2019 9:52:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 9, 2019

GCast 47:

Angular pt 6: Services

Learn how to use Services in Angular to separate functionality and take advantage of dependency injection.

Thursday, May 9, 2019 8:57:00 AM (GMT Daylight Time, UTC+01:00)
# Wednesday, May 8, 2019

Keeping a computer system available all or almost all the time is a challenge.

Sometimes software patches or upgrades need to be installed on a server. Sometimes, old hardware needs to be replaced. Sometimes, hardware unexpectedly fails. Sometimes power to building or part of a building fails.

All these things can contribute to downtime - some of it planned and some of it unplanned.

Monitoring, redundancy, and planning all reduce the risk of downtime in Azure.

Many resources in Azure are written in triplicate. Only one copy of that data or service is live at any given time. The other two exist in case the live copy becomes unavailable. If this happens, Azure will automatically route requests to one of these "backup" copies. The live copy is sometimes called a "hot" copy, while the 2 redundant backups are sometimes referred to as "cold" copies.

This works well during planned software and hardware upgrades.  The cold copies' servers are upgraded first; then, new requests are routed to one of the upgraded cold copies, making it the hot copy, before the original hot copy is upgraded. Azure maintains something called "Update Domains" to help manage this. Systems in separate Update Zones will not be shut down for upgrades simultaneously, in order to avoid downtime.

Unexpected downtime is harder to manage. This is typically caused by hardware or software failure or a failure of a system, such as a power supply on which a service depends. All hardware fails at some point, so this must be dealt with.

To handle these failures, Azure continuously monitors its systems to determine when a failure occurs. When a failure on a hot copy is detected, requests are routed to a cold copy; then, a new copy of the service or data is deployed onto available hardware in order to maintain 2 redundant cold copies. Redundant copies of a service are kept in different parts of a datacenter, so that they don't rely on a single point of failure. These independent parts of the data center are known as "Fault Domains" because a fault in one Fault Domain will not affect services in the other Fault Domains.

As a result of these practices, Azure can guarantee a certain level of uptime for each of its paid services. The level is dependent on the service and is usually expressed in terms of percentage uptime. Azure guaranteed uptimes range from 99.5% to 99.99%. This guaranteed uptime percentage is known as a "Service Level Agreement" or "SLA"

You can view the current uptime guarantee for each Azure service here.

An uptime of 99.5% would be down a maximum of 1.83 days per year and an uptime of 99.99% would be down a maximum of 52.6 minutes per year.

Azure guarantees this by agreeing to credit all or part of a customer's charges if the uptime target is not met in any given month. The exact credit amount depends how much the target is missed.

As of this writing, here are the guaranteed uptimes for each Azure service.

Service Uptime Notes
Active Directory 99.90%
Active Directory B2C 99.90%
AD Domain Service 99.90%
Analysis Service 99.90%
API Management 99.90%
App Service 99.50%
Application Gateway 99.50%
Application Insights 99.90%
Automation 99.90%
DevOps 99.90%
Firewall 99.50%
Front Door Service 99.99%
Lab Services 99.90%
Maps 99.90%
Databricks 99.50%
Backup 99.50%
BizTalk Services 99.90%
Bot Service 99.90%
Cache 99.90%
Cognitive Services 99.90%
CDN 99.90%
Cloud Services 99.50% Assumes at least 2 instances
VMs 99.50% Assumes at least 2 instances
VMs 99.90% Assumes Premium storage
CosmosDB 99.99%
Data Catalog 99.90%
Data Explorer 99.90%
Data Lake Analytics 99.90%
Data Lake Storage Gen1 99.90%
DDoS Protection 99.99%
DNS 100.00%
Event Grid 99.99%
Event Hubs 99.90%
ExpressRoute 99.50%
Azure Functions 99.50%
HockeyApp 99.90%
HDInsight 99.90%
IoT Central 99.90%
IoT Hub 99.90%
Key Valut 99.90%
AKS 99.50%
Log Analytics 99.90%
Load Balancer 99.99%
Logic Apps 99.90%
ML Studio 99.95%
Media Services 99.90%
Mobile Services 99.90%
Azure Monitor 99.90%
Multi-Factor Authentication 99.90%
MySQL 99.99%
Network Watcher 99.90%
PostgreSQL 99.99%
Power BI Embedded 99.90%
SAP HANA on Azure Large Instances 99.99%
Scheduler 99.99%
Azure Search 99.90%
Security Center 99.90%
Service Bus 99.90%
SignalR Service 99.90%
Site Recovery 99.90%
SQL Database 99.99%
SQL Data Warehouse 99.90%
SQL Server Stretch Database 99.90%
Storage Accounts 99.99% 99.9% for Cold Storage
StorSimple 99.90%
Stream Analytics 99.90%
Time Series Insights 99.90%
Traffic Manager 99.99%
Virtual WAN 99.95%
VS App Center 99.90%
VPN Gateway 99.95%
VPN Gateway for VPN or ExpressRoute 99.90%
Information Protection 99.90%
Win10 IoT Core Svcs 99.90%
VMWare Solution 99.90%

Services like Azure Backup and Azure Functions, which can be easily retried, have the lowest guaranteed uptime.

The highest guaranteed uptimes are reserved for mission-critical services, such as DNS and Traffic Manager, along with all the database and storage offerings.

Free services are not listed here, as they almost never have a guaranteed uptime. Even if they did, there is nothing to credit to the account.

Azure has systems in place to guarantee high availability and reliability and Microsoft has enough confidence in those systems to guarantee a predictable level of uptime and base that guarantee on monetary credits.

Wednesday, May 8, 2019 9:55:00 AM (GMT Daylight Time, UTC+01:00)
# Tuesday, May 7, 2019

Saturday, I passed the Microsoft Azure Fundamentals exam (AZ-900).

The topics covered for this exam are listed here.

It had a lot of general knowledge question (a few where you just needed to know the difference between IAAS and PAAS). But there were some trivia questions, as well.

I studied for 2-3 days and got an 850.

Here is how I prepared:

  1. I completed this 12-module course, which took about 8 hours: Azure Fundamentals course
  2. I reviewed this PowerPoint deck: AZ-900 Certification Training, created by Daniel Baker.

While studying the above 2 resources, if I found any service with which I had no experience, I opened the portal and created that service and poked around in it a bit. I found it stuck in my memory much better when I did that.

Also, I kept open a text document while studying, in which I listed any topics that I did not know or felt weak in. After studying, I returned to this and reviewed these topics multiple times.

Related to this practice, I saved a copy of the above deck and deleted the slides covering topics I felt I knew well. I reviewed the remaining slides until I could read the title and articulate the ideas covered by that slide.

This was probably the least technical Microsoft certification exam I've taken. It wasn't difficult, but it did require some preparation on my part. I've worked in Azure for years, but I don't think I would have passed without studying. There were too many questions about support options and SLAs and other things I don't spend much time on.

Tuesday, May 7, 2019 9:57:00 AM (GMT Daylight Time, UTC+01:00)
# Monday, May 6, 2019

Episode 562

Mike Benkovich on Visual Studio 2019

Microsoft MVP Mike Benkovich discusses the important new features in Visual Studio 2019

Monday, May 6, 2019 9:07:00 AM (GMT Daylight Time, UTC+01:00)
# Sunday, May 5, 2019

Today I am grateful to pass an Azure certification exam yesterday.

Today I am grateful to chat yesterday with people from 3 different continents.

Today I am grateful to attend the AUVSI XPONENTIAL conference this week and see some amazing uses for drones.

Today I am grateful to see "Avengers: Endgame" with Tim last night.

Today I am grateful I did not have to go out in the storm the last couple days.

Today I am grateful I was able to figure out my son's CRM questions yesterday.

Today I am grateful for a walk around Park Ridge yesterday.

Today I am grateful:
-to participate in this year's Global Azure Boot Camp yesterday
-for a visit from my son Nick this weekend.

Today I am grateful for my first visit to Ottawa when the temperature was above freezing.

Today I am grateful to successfully complete a project we have been working on for months.

Today I am grateful I've managed to keep up this "Daily Gratitude" thing for 6 years.

Today I am grateful for an excellent ramen dinner with my team last night in Ottawa.

Today I am grateful to arrive safely in Ottawa after many delays.

Today I am grateful to spend Easter in Michigan with my siblings and their families.

Today I am grateful to attend the first playoff game at Little Caesars Arena, which was also my first time seeing the Pistons at LCA.

Today I am grateful for lunch in East Lansing, MI yesterday.

Today I am grateful to David, Mike, and J. for answering my technical questions yesterday .

Today I am grateful for a walk around Glencoe Beach yesterday evening.

Today I am grateful for the opportunity to learn something new every day.

Today I am grateful for people who reach out unprompted to see how I'm doing.

Today I am grateful to learn the TV in my building's Community Room has HBO.

Today I am grateful for this view before I go to bed each night.

Today I am grateful to finish preparing my taxes in time.

Today I am grateful to watch lightning splash across the downtown sky last night.

Today I am grateful for good Project Managers who take over some of my headaches.

Today I am grateful for good news (I.e., no news) from my surgeon at my follow-up appointment yesterday.

Today I am grateful to wake up to this view every morning.

Today I am grateful to spend hours in Andersonville coffee shops yesterday afternoon, reading a detective novel.

Sunday, May 5, 2019 3:37:17 PM (GMT Daylight Time, UTC+01:00)
# Saturday, May 4, 2019

AssistantFrank wants to be good. But he keeps doing bad things - really bad things, like armed robbery and rape. Still, he tries to make up for it. Most of the harm he causes is to the Bober family, an immigrant family struggling to keep their Brooklyn grocery store going.

So, Frank volunteers to work in the store at slave wages to make up for his sins. Customers like him and business increases. The family is kept from destitution by Frank's hard work and the fact that he sneaks some of the money he stole back into the cash register.

But soon, he is stealing again from the cash register. And trying to redeem himself again.

The Assistant by Bernard Malamud focuses on 3 characters:

Morris Bober, the impoverished, long-suffering Jewish immigrant grocery store owner. He works 18-hour days, but sees his business and savings evaporating.

Helen Bober, Morris's bright daughter, who defers her dreams of college in order to help support her family.

Frank Alpine, an Italian-American orphan, struggling to survive and to regain his lost morality.

Frank and Helen fall in love, to the horror of their parents, who disapprove of the gentile Frank. And as Morris grows older and weaker and frailer, Frank works himself sick to help the family that he feels he owes.

Ultimately, Frank succeeds the overworked, suffering Morris as his ultimate atonement.

Through Frank's story, Malamud shows us that we are all capable of redemption - no matter how terrible our sins.

Saturday, May 4, 2019 9:10:00 AM (GMT Daylight Time, UTC+01:00)
# Thursday, May 2, 2019

GCast 46:

Angular pt 5: Master Detail Components

Continuing the Angular tutorial: Learn how to coordinate the data-bound items in a list with a component showing the selected item.

Thursday, May 2, 2019 3:50:13 PM (GMT Daylight Time, UTC+01:00)