# 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)