In the last article, I showed you how to create an Azure AI Speech Service. You can use this service to write an application that creates speech from text. You can access the service via API calls, but it is easier if you use an SDK. In this article, I will show how to use the .NET Speech Service SDK to convert speech into text.


Log into the Azure Portal and navigate to a Speech Service you created. See this article) to learn how to create a Speech Service.


Fig. 1 shows the "Overview" blade of the Speech Service. This contains the region and the keys for this service. Copy and save the Region and one of the keys.



Speech Service Overview Tab

Fig. 1


To work with the SDK, your project needs to reference the Microsoft.CognitiveServices.Speech NuGet package. The following command installs the package in the current project.


dotnet add package Microsoft.CognitiveServices.Speech --version 1.30.0

This package contains two relevant classes: SpeechConfig and SpeechRecognizer. SpeechConfig accepts our Speech Service's key and region as constructor parameters, so that it knows where to call to handle the translation. The SpeechRecognizer class takes as constructor parameters an instance of SpeechConfig and an AudioConfig object. The AudioConfig object allows you to specify the source of the speech, which can be a microphone or a file.


Here is the code:


string aiSvcKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string aiSvcRegion = "xxxxx";
SpeechConfig speechConfig = SpeechConfig.FromSubscription(aiSvcKey, aiSvcRegion);
using AudioConfig audioConfig = AudioConfig.FromDefaultMicrophoneInput();
using SpeechRecognizer speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);

Replace the x's with the key and region of your service. In a real (not demo) application, you would choose to store these values in a configuration store or file, rather than in code. This is for demo purposes.


Finally, we call the SpeechRecognizer's RecognizeOnceAsync method to translate the spoken words into text. This method returns a SpeechRecognitionResult object that contains a Text property: The text of what it heard spoken. SpeechRecognitionResult also has a Reason property that can come in handy if an error occurs.


Here is the code:


Console.WriteLine("Speak into the default microphone!");
SpeechRecognitionResult result = await speechRecognizer.RecognizeOnceAsync();
Console.WriteLine($"You said: {result.Text}");
Console.WriteLine($"Result: {result.Reason}");

Below is the full code for a console app that allows the user to speak into a microphone, then print what was spoken:


using Microsoft.CognitiveServices.Speech;
using Microsoft.CognitiveServices.Speech.Audio;

namespace SpeechToTextDemo
{
     class Program
     {
         static async Task Main(string[] args)
        
{
             string aiSvcKey = "8cda2fb96d0c431aa975e9b103911a24";
             string aiSvcRegion = "EastUS";

            SpeechConfig speechConfig = SpeechConfig.FromSubscription(aiSvcKey, aiSvcRegion);
             using AudioConfig audioConfig = AudioConfig.FromDefaultMicrophoneInput();
             using SpeechRecognizer speechRecognizer = new SpeechRecognizer(speechConfig, audioConfig);

            Console.WriteLine("Speak into the default microphone!");
             SpeechRecognitionResult result = await speechRecognizer.RecognizeOnceAsync();
             Console.WriteLine($"You said: {result.Text}");
             Console.WriteLine($"Result: {result.Reason}");
         }
     }
}


In this article, you learned how to convert speech to text in a C# application, using the Azure AI Speech Service.


Episode 809

Andrew Brust on the History of Big Data

Andrew Brust talks about how big data tools have evolved, how cloud computing has helped, and what Microsoft is doing to make Big Data analysis easier.


Ain't Misbehavin' Cast 2024Thursday at the Drury Theatre in Oakbrook Terrace, I attended a performance of "Ain't Misbehavin'" - a musical review of the works of Fats Waller.

I have been a fan of this man's music for decades, so I was excited about the show, even though I knew almost nothing about it.

The musical features thirty-one songs recorded initially by Waller. Waller composed some tunes, such as the title song, "Honeysuckle Rose," and "I Can't Give You Anything but Love." He recorded others that originated from a different composer, including "I'm Gonna Sit Right Down and Write Myself a Letter," "Two Sleepy People," and "Your Feet's Too Big."

This "play" lacks a story or plot. Instead, the singers and dancers act out each song on stage, dressed in period costumes and pretending to frequent the speakeasies and jazz clubs of the 1930s.

Although not specifically identified as Fats, Lorenzo Rush Jr. was perfect in the role, with his rotund physique and bravado. James Lane was the other male singer, along with three ladies: Sharriese Hamilton, Alanna Lovely, and Alexis Roston. Each added depth to the characters while entertaining us with their excellent voices.

The music was bluesy and bawdy, with a few ballads mixed in. Backing up the singers, an excellent band led by dynamic pianist and conducter William Foster McDaniel, whose piano moved around the stage to make room for the dancers.

Fats died in 1943 at thirty-nine, but his music lives on, allowing us to behave or misbehave, as we choose.


The Cast Of Native Son 2024How does one compress a 500-page novel into a 90-minute stage performance? This was the challenge the folks at Lifeline Theater in Rogers Park decided to tackle.
How does one compress a 500-page novel into a 90-minute stage performance? This was the challenge the folks at Lifeline Theater in Rogers Park decided to tackle.

Richard Wright's 1940 novel "Native Son" remains a classic of American literature. It tackles the issues of institutionalized racism and violence in the Black community through the eyes of the 20-year-old Bigger, an African American living in the projects of Chicago's south side in the 1930s.

Bigger takes a job as a driver for the Daltons - a wealthy white family. During one drive, the family's radical daughter Mary drinks and flirts with Bigger and introduces him to her Communist friends. The evening ends tragically when Bigger accidentally kills Mary. The incident destroys the lives of everyone involved.

The Lifeline production retained the novel's basic plot but moved quickly from place to place and from time to time, showing flashbacks of Bigger's troubled past. Writer Nambi E. Kelley and Director Ilesa Duncan did an excellent job maintaining the spirit of Wright's novel and characters.

While the Bigger of this play is not quite the sociopath of the book, his instincts for self-preservation push him to make catastrophic selfish decisions, often at the cost of those around him. Bigger struggles to control his anger, which leads to his downfall. Kelley emphasized Bigger's struggles to suppress his violent nature and survive in white society by having two actors play the role. Tamarus Harvell played the Bigger seen by the world, frequently arguing with his invisible dark side, James Lewis, who constantly followed him, influencing his behavior. The device worked, eliminating any need for an inner monologue or narrator.

The supporting cast provides much to consider. The self-congratulating white liberals and the Black women in Bigger's life, who unfairly face the consequences of their men, add complexity to the story.

This adaptation felt frantic and brutal but never rushed.


In the last article, I showed you how to create an Azure AI Speech Service. You can use this service to write an application that creates speech from text. You can access the service via API calls, but it is easier if you use an SDK. In this article, I will show how to use the .NET Speech Service SDK to convert text into speech.

Log into the Azure Portal and navigate to a Speech Service you created. See this article) to learn how to create a Speech Service.

Fig. 1 shows the "Overview" blade of the Speech Service. This contains the region and the keys for this service. Copy and save the Region and one of the keys.

Speech Service Overview Tab
Fig. 1

To work with the SDK, your project needs to reference the Microsoft.CognitiveServices.Speech NuGet package. The following command installs the package in the current project.

dotnet add package Microsoft.CognitiveServices.Speech --version 1.30.0

This package contains two important classes: SpeechConfig and SpeechSynthesizer.

We create a SpeechConfig object, passing our Speech Service's key and region into the constructor, so that it knows where to call to handle the translation. This object also allows us to set properties, such as the voice to use and the output audio device.

Here is the code:

string aiSvcKey = "xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
string aiSvcRegion = "xxxxx";
SpeechConfig speechConfig = SpeechConfig.FromSubscription(aiSvcKey, aiSvcRegion);

Replace the x's with the key and region of your service. In a real (not demo) application, you would choose to store these values in a configuration store or file, rather than in code. This is for demo purposes.

Next, we select a voice and accent in which to speak. Microsoft provides hundreds of voices in dozens of languages. You can find a full list here.

The code below sets the voice to an American male.

speechConfig.SpeechSynthesisVoiceName = "en-US-AriaNeural";

We then SpeechSynthesizer object, passing the SpeechConfig object into its constructor, as in the following code:

using SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig);

SpeechSynthesizer's TranscribeCommand method attempts to convert the text to speech. If successful, you will hear a voice speaking the input text in the voice coming from the output speakers you chose. The method returns a SpeechSynthesisResult object, which contains a Reason property. This can be useful to examine if something goes wrong. Here is code to call the method:

var text = "Hello World";
SpeechSynthesisResult speak = await speechSynthesizer.SpeakTextAsync(text);
Console.WriteLine("Result reason = {speak.Reason}");

Below is the full code for a console app that allows the user to input text, then speaks that text aloud:

using Microsoft.CognitiveServices.Speech;

namespace TextToSpeechDemo
{
    class Program
    {
        static async Task Main(string[] args)
        {
            string aiSvcKey = "8cda2fb96d0c431aa975e9b103911a24";
            string aiSvcRegion = "EastUS";
            SpeechConfig speechConfig = SpeechConfig.FromSubscription(aiSvcKey, aiSvcRegion);
            speechConfig.SpeechSynthesisVoiceName = "en-US-AriaNeural";
            using SpeechSynthesizer speechSynthesizer = new SpeechSynthesizer(speechConfig);

            Console.WriteLine("Type text to speak:");
            var text = Console.ReadLine();

            SpeechSynthesisResult speak = await speechSynthesizer.SpeakTextAsync(text);
            Console.WriteLine("Result reason = {speak.Reason}");

        }
    }
}

In this article, you learned how to convert text to speech in a C# application, using the Azure AI Speech Service.


GCast 179:

Using Copilot for M365 and MS Graph

Learn how to use Copilot for Microsoft 365 to create prompts that access Microsoft Graph data and provide information about emails, meetings, people, documents, and other items within your organization.


Azure AI Services (formerly Cognitive Services) provides the ability to quickly add artificial intelligence to an application without the pain and complexity of building models.

The Azure AI Speech Service allows you to implement text-to-speech and speech-text via simple API calls. To make it even simpler, Microsoft has provided SDKs in a number of languages.

To use the APIs or the SDK, you must first create a Speech Service.

To do this, navigate to https://portal.azure.com and login.

Click the [Create a Resource] button (Fig. 1) and search for "Speech Services," as shown in Fig. 2.

Create Resource Button
Fig. 1

Search
Fig. 2

On the "Speech" tile (Fig. 3), click the [Create] button to expand the submenu; then, click the [Speech] button, as shown in Fig. 4.

Speech Tile
Fig. 3

Create Speech Buttons
Fig. 4

The "Basics" tab of the "Create Speech Services" displays, as shown in Fig. 5.

Create Speech Services - Basic Tab
Fig. 5

At the "Subscription" dropdown, select the Azure subscription in which you wish to create this service. Most of you will only have one subscription.

At the "Resource group" field, select a resource group for this service or click the "Create new" link to create a new resource group for the service.

At the "Region" field, select the Azure geographic region in which to deploy the service. Consider the location of the clients who will access the service. Keeping the service close to the clients will reduce latency.

At the "Name" field, enter a unique name for this service.

At the "Pricing tier" field, select the pricing tier. Currently, the only options are "Free" and "Standard." You are allowed only one free tier speech service per subscription.

Other tabs allow you to configure a network, identity values, and tags, which are all optional.

Select the "Review + create" tab, as shown in Fig. 6. This displays the data you entered, along with any errors that you must correct before proceeding. If no errors list, click the [Create] button (Fig. 7) to create the Speech Service. This takes only a few seconds. When the service is created and deployed, a confirmation message shown in Fig. 8 displays.

Create Speech Services - Review Tab
Fig. 6

Create Button
Fig. 7

Deployment Complete message
Fig. 8

Click the [Go to resource] button (Fig. 9) to display the "Overview" blade of your new Speech Service, as shown in Fig. 10.

Go To Resource Button
Fig. 9

Speech Service Overview Tab
Fig. 10

The keys on this blade are important. You will need them to tell your application where to find this service.

In this article, you learned how to create an Azure AI Speech Service. In the next articles, I will show you how to write code to access this service.


Episode 808

Michelle Sandford on Responsible AI

Michelle Sandford describes the principles of Responsible Artificial Intelligence and what the developers of AI applications and models are doing to implement these principles.

Links:
https://microsoft.com/ai/responsible-ai


June 2024 Gratitudes

Comments [0]

7/7

Today I am grateful to see a production of "Native Son" on my first visit to Lifeline Theatre last night.

7/6
Today I am grateful for:
- my first time playing at Big City Pickle
- tacos with Tim last night

7/5
Today I am grateful for no serious injuries from my recent biking accident.

7/4
Today I am grateful for a phone call from Mike yesterday.

7/3
Today I am grateful to see the Wallflowers in concert last night.

7/2
Today I am grateful for my new water flosser.

7/1
Today I am grateful for new beginnings.

6/30
Today I am grateful for the time we had together.

6/29
Today I am grateful:
- to catch up with Ernesto, Hattan, and Tze Lin yesterday
- to see Third Eye Blind in concert last night

6/28
Today I am grateful to see two old friends yesterday:
- Lunch with Adam
- Coffee with Godfrey

6/27
Today I am grateful to watch the Navy Pier fireworks last night.

6/26
Today I am grateful for my new ear buds.

6/25
Today I am grateful to play pickleball with Tobias yesterday.

6/24
Today I am grateful:
- to pick up my sons at the airport last night and spend some time with them
- for a phone call with Gary yesterday

6/23
Today I am grateful for:
- lunch with J. yesterday in New Buffalo.
- a phone call with Darlene yesterday

6/22
Today I am grateful to talk with Carol yesterday

6/21
Today I am grateful to talk with Josh yesterday.

6/20
Today I am grateful to celebrate Nick's birthday and Father's Day last night with my sons

6/19
Today I am grateful to everyone who volunteered to cheer me up, even though they did not know why I was depressed.

6/18
Today I am grateful to talk with my cousin John last night.

6/16
Today I am grateful for dinner with my son and his fiancé last night to celebrate Father's Day

6/15
Today I am grateful to catch up on editing the many videos I recorded the last few weeks.

6/14
Today I am grateful to talk with Jay and Christina yesterday.

6/13
Today I am grateful that Pete and I got to see John Cleese perform yesterday at the Vic Theatre.

6/12
Today I am grateful to see Sarah McLachlan in concert last night.

6/11
Today I am grateful for dinner with Jesse last night.

6/10
Today I am grateful
- to see "Six: The Musical" yesterday
- to pick up Nick and Adriana at the airport yesterday after their vacation

6/9
Today I am grateful to talk with Dan and Rowena yesterday.

6/8
Today I am grateful to the Nederlander Theatre box office, who resolved my ticket issues yesterday.

6/7
Today I am grateful to attend Marline's funeral yesterday with her family.

6/6
Today I am grateful for a flexible time-off policy.

6/5
Today I am grateful for easy accessibility to many enjoyable books.

6/3
Today I am grateful to attend Natale's bridal shower yesterday.


TheWallflowers2024-1How badly did I want to see The Wallflowers in concert Tuesday night? I was two blocks from Thalia Hall when I collided violently with a car door that flew up in front of me. The collision threw me from my bike into the street, leaving me sore and dazed. After a few minutes I contined to the concert.

I had seen this band two years ago in Evanston, but I enjoyed them enough to experience them in a different venue.

Had I skipped the show, I would have missed out on Brother Elsey - an excellent blues rock band from Detroit. Brother will return to Chicago in October and I have already marked my calendar.

Lead singer Jakob Dylan is the son of legendary singer/songwriter Bob Dylan. While not as prolific as his father, the younger Dylan has created an impressive catalog of music, which he showcased on this evening. His band peformed many of the hits from their seven studio albums. Highlights included "6th Avenue Heartache," "One Headlight," from my favourite WF album, "Bringing Down the Horse." and "The Difference," as well as "Roots and Wings" from their most recent album "Exit Wounds." All these songs were penned by Dylan, but he was not afraid to tackle other songwriters' material. Halfway through the concert, they delivered a moving rendition of Van Morrison's "Into the Mystic." And three of his four encore tunes were hits by others, beginning with Cat Stevens's "Wild World," followed by two Tom Petty compositions: "Refugee" and "The Waiting." For those who don't know, Dylan's father partnered with the late Petty in the supergroup The Traveling Wilburys.

TheWallflowers2024-2One thing Jakob does better than his father is relate to the audience. He actually makes eye contact and engages those across the footlights. He praises them, he thanks them, and he teases them. When someone in the crowd continued shouting while Jakob was talking, the singer stepped back, telling him "I'm sorry. I will wait for my turn to talk." He even identified the shouter as "guy in the white shirt," which drew laughter from the crowd and cheers from white-shirt-guy and his buddies.

I am writing this still sore Wednesday morning as I write this.


Episode 807

Jeff Fritz on Deploying NET Aspire Applications

.NET Aspire was released to General Availability at the Microsoft Build Conference in May 2024. It provides an opinionated way to build Distributed .NET applications that include by default important features such as telemetry, caching, and reliability.

Jeff Fritz takes us beyond the basics of a .NET Aspire application and shows how to automate deployment to Azure and other cloud platforms. He also shows off aspireify.net - a site he created using Aspire that shows how to work with Aspire.

For an introduction to .NET Aspire, see episode 806: Scott Hunter on .NET Aspire

Links
https://aspireify.net/
https://www.youtube.com/@dotnet


Third Eye Blind 2024"All our best concerts included a rainstorm" shouted Third Eye Blind singer and frontman Stephan Jenkins as the skies opened during their show at Northerly Island's Huntington Bank Pavilion Friday night.

The weather threatened all evening. Clouds approached ominously as two warmup bands - Arizona and Yellowcard - performed. Each plays post-punk power pop music that resonated well with 3EB fans, Yellowcard enhancing their music with a violinist.

Third Eye Blind opened with the hypnotic "Motorcycle Drive By" before launching into a series of energetic songs. They slowed things down when the band members pulled up chairs at the front of the stage and picked up acoustic instruments to play an acoustic set. After this, the downpour began. It did not last long, but the crowd embraced the stormy weather, particularly as 3EB closed their set with "Jumper," "Semi-Charmed Life," and their encore "How's It Going to Be."

The group drew heavily from their classic 1997 self-titled album that kicked off their recording career; but they played songs from throughout their career.

Yellowcard at SunsetThe lighting on stage this night seemed intent on hiding the band with red, orange, and yellow backlighting. Even the obligatory live projections on the big screen displayed only black and white video. In the end, it made no difference. The focus was on the music.

The rain held off until the show ended, which sadly forced us to ride our bikes home in the rain. We arrived home drenched and happy.


GCast 178:

Administrative Setup for Microsoft Dev Box

Microsoft Dev Box allows you to create workstations in the cloud pre-configured with software, tools, and services required for an application or project. Learn how an administrator can configure Azure to allow developers to create, manage, and use Dev Boxes.


Episode 806

Scott Hunter on NET Aspire

.NET Aspire was released to General Availability at the Microsoft Build Conference in May 2024. It provides an opinionated way to build Distributed .NET applications that include by default important features such as telemetry, caching, and reliabilty. Microsoft VP Scott Hunter describes .NET Aspire and how to use it in your applications.

Links:
https://learn.microsoft.com/en-us/search/?terms=aspire


Joe Jackson 2024I remember when I first heard the music of Joe Jackson. "No Wave," an A&M Records compilation album, contained two of his songs: "Got the Time" and "Sunday Papers." I enjoyed the music enough that I bought Jackson's debut album the day it appeared in my local record store. I enjoyed every track on the album, so I bought tickets to see him in concert at the now-defunct Punch & Judy Theater in Grosse Pointe, MI. That July 1979 show was one of my first concerts; I still recall it fondly. I was a fan for life, appreciating the many different genres he explored over the years. I loved the post-punk new wave sound of his early albums, his jazz-influenced pop songs from a few years later, his covers of Louis Jordan and other swing musicians, his new wave and classical albums, and his rock & roll.
It took me 45 years to see Joe Jackson a second time when he performed Sunday night at Evanston's Cahn Auditorium.
Few artists have reinvented themselves as often and as successfully as Joe Jackson. He did so again on his most recent album, "What a Racket." On this album, Jackson plays tribute to Max Champion, a London music hall performer and songwriter from the early twentieth century. The gag is that Max Champion is a figment of Jackson's imagination and all songs credited to Max are the work of Jackson.
Mr. Jackson opened his Cahn Auditorium performance alone on stage, accompanying himself on electric keyboards, performing eight songs from his long recording career. He followed with an inspired cover of the Kinks' "Waterloo Sunset" and two songs from England's Music Hall days of a century ago: "Hello, Hello, Who's Your Lady Friend?" and "My Old Dutch."

Joe Jackson singing Max Champion 2024He then left the stage, announcing that this was not an intermission but was part of the show. The curtain behind him rose, revealing a backdrop painting of early twentieth-century London. A nine-piece band entered one by one, setting up their instruments. Each musician was dressed in period costumes of the 1910s. After a few minutes, Jackson returned wearing a top hat, high collar, and tails. Backed by the small orchestra, he performed every song from his "What a Racket" album. Some songs were raucous ("The Sporting Life"), some were bawdy ("The Bishop and the Actress"), and some were sentimental ("Dear Old Mum - A London-Irish Lament"). All were wonderfully executed. With a wink, Jackson revealed what little was known about the fictitious composer Max Champion. The set was great fun for both the band and the audience.
This show differed significantly from the 1979 concert, which featured a four-piece electric rock band playing power pop and new wave music. Each event was special in its own way.
I hope to see Joe Jackson again and not to wait 45 years to do so!


Episode 805

Rocky Lhotka on Designing Distributed Systems

Rocky Lhotka talks about cloud-native distributed systems and how to architect them successfully. He uses the example of his open sourced CSLA framework.

Links:
https://12factor.net/
https://cslanet.com/


John Cleese In Chicago 2024John Cleese enjoys being naughty.

Legendary comic John Cleese brought his show to Chicago's Vic Theatre on Wednesday evening. Depending on which advertisement one read, the show was titled either "Last Chance to See Me Before I Die" or "An Evening with the Late John Cleese." Both titles are equally morbid - one suggesting the man's impending demise, the other mourning his recent passing.

An announcer began the show by introducing Mr. Cleese, who walked a few steps onto the stage, waved to the audience, and then walked off just before a video showed highlight performances from his numerous television and movie appearances. The video screen flickered on multiple times during the first set, showcasing scenes from Monty Python, Fawlty Towers, or The Meaning of Life to illustrate a point the comic was making.

John returned to the stage and told jokes and funny stories for an hour before leaving again for a brief intermission.

He took the time to explain what makes something funny. He told us that jokes are best when they are edgy and make people a bit uncomfortable. Once, a wildlife organization asked John to contribute a recipe. He responded with a recipe for poached giant panda in snow leopard sauce. Jokes making fun of people are OK, as long as they come from a position of affection rather than meanness, he insisted to us before launching into a series of stories mocking Irish, Welsh, Jews, Italians, and other ethnic groups. It had us laughing, even if we sometimes felt guilty doing so. He shared his frustration about those who put limits on what a comedian can say.

Cleese poked fun at American politicians on both sides. The 84-year-old comic walks with a shuffling gate that he compared to fellow octogenarian Joe Biden. He showed a series of photographs of dead heroes to convince us that dead people are superior. The contrasting images of awful living people included many brutal dictators and ended with Donald Trump.

Following an intermission, Cleese returned to answer questions from the audience. Here, he displayed his remarkable wit, commenting on everything from his opinions of his fellow Python cast members to the possibility of an afterlife.

It was an evening of philosophy, of conversation, and of humor - both light and dark.

It was an evening of much rejoicing.


GCast 177:

Getting Started with NET Aspire

.NET aspire is an opinionated tech stack that by default provides some key services to your distributed cloud applications. These services include telemetry, health checks, and reliability. This video walks through the code and configuration of an ASP.NET Aspire application.


Episode 804

Valerie Gurka on Documentation in Software Engineering

Valerie Gurka describes the value of documenting software, the different types of documentation, and some best practices for writing well-documented code.


Steven Millhauser's 1996 novel "Martin Dressler: The Tale of an American Dreamer" tells the story of a man who grew up poor in nineteenth-century New York City but achieved success through hard work and clever ideas.

Martin Dressler was the son of a cigar maker who, after receiving promotions at the hotel that employed him, decided to open one - then a chain of restaurants. After a few years, he sold the chain and turned his attention to building and managing modern hotels. His ideas resonated with the press and potential tenants, so he continued incorporating new ideas into new hotels. This strategy worked until it did not, leaving a Manhattan building with expensive and creative amenities but a high vacancy rate.

Dressler's meteoric rise in business parallels his difficulties with personal relationships. He befriends a mother and her two daughters - Emmeline and Caroline Vernon. Martin connects with Emmeline but decides to marry the beautiful and withdrawn Caroline. The marriage never succeeds. The couple has nothing in common, and Martin's infidelity, along with Caroline's listlessness, makes it impossible for them to become close.

Millhauser does an excellent job painting a portrait of New York City in the 1890s. It was a period of significant growth for the city, and the fictional Martin contributed to this transformation with his vision.

Martin's final vision of a hotel is so self-contained that one never needs to leave. This vision resonates with Martin, who is self-absorbed but not with the press and the public, who desire a connection with the outside world.

I seldom find a novel as easy to consume as this one. Each chapter flowed into the next with a natural progression, so I finished it in one sitting. Millhauser builds a believable set of characters and an entertaining story of the rise and fall of an American businessman.

"Martin Dressler" is a very good story of ambition and pursuit of the American dream, but it is also a story of hubris and arrogance.


I was on vacation in Europe during the Microsoft Build conference, so I did not watch it live. I returned to work last week and watched the two keynote addresses. Microsoft CEO Satya Nadella, CVP Scott Guthrie, and others provided information on the current state of Microsoft technologies, as well as a few significant announcements. As expected, Artificial Intelligence (AI) news dominated the keynotes.

Here are the announcements from the keynotes that caught my attention.

GPT-4o LLM

Microsoft introduced the GPT-4o Large Language Model and added this to their Azure OpenAI services and in Azure AI Studio.

This model is faster, less expensive, has higher rate limits, and supports more languages than GPT-4.

GitHub Copilot Extensions

I have been using GitHub Copilot (GHCP) extensively to help with coding documentation, writing tests, and other tasks. Microsoft has introduced some useful extensions to help in other areas. GitHub Copilot for Azure is an interesting one that allows you to query cloud resources from within Visual Studio Code. Other interesting extensions include ones for Docker, MongoDB, and Teams.

Soon, developers will be able to create their own extensions to GHCP.

More info

Small Language Models

The Phi-3 family of Small Language Models (SLMs) are faster, cheaper, and smaller (duh) than Large Language Models (LLMs) yet provide much of the same functionality. Phi-3-mini, Phi-3-small, and Phi-3-medium provide SLMs of increasing size depending on your needs. Because of their size, they are perfect for working locally using Edge computing scenarios. In addition, Phi-3-vision is a small model that includes image recognition and generation in addition to its language capabilities.

Azure OpenAI Studio is in General Availability

This is portal that allows you to build AI solutions, such as chatbots without quickly using a graphical interface. After months in preview, this service is now generally available.

CosmosDB Vector database capabilities

Azure Search uses the features of a vector database to perform semantic search queries. To access data in a CosmosDB database, we currently need to synchronize that data with a Vector database. Adding native Vector capabilities to CosmosDB for NoSQL eliminates the need for this synchronization, reducing latency and complexity. This feature is currently in preview.
More info

Improvements to Microsoft Dev Box

Microsoft Dev Box provides a cloud-based workstation to develop code.

Users and administrators will be able to customize DevBox for use by themselves and/or their team members, including tools and libraries required by the projects on which they are working. Admins will also be able to set up hibernation scale to save costs when a dev box is not in use.

More info

Partner Stories

The keynote included many stories and case studies from partners, but the most interesting one came from Khan Academy, which is using Azure AI tools to build Khanmigo, a service that provides AI services to teachers. They plan to provide Khanmigo free to all K-12 educators.

More

There were many more announcements - too many to list here. The Microsoft Build Book of News provides more announcements, as well as more details on the above announcements.


Episode 803

Scott Hermes on Microsoft Fabric

Microsoft Fabric is an end-to-end analytics and data platform designed for enterprises that require a unified solution Scott Hermes of Kin+Carta describes the tool set and how you can manage your data.

Links:
https://blog.fabric.microsoft.com/
https://support.fabric.microsoft.com/
https://fabricconf.com/


May 2024 Gratitudes

Comments [0]

6/2
Today I am grateful to clean and organize a closet yesterday

6/1
Today I am grateful to see an exciting soccer match between Mexico and Bolivia last night at Soldier Field.

5/31
Today I am grateful to attend two AI meetups run by partners yesterday.

5/30
Today I am grateful for a new pair of gym shoes.

5/29
Today I am grateful to return to a personal trainer yesterday for the first time in months.

5/28
Today I am grateful for so many days off in May.

5/27
Today I am grateful to visit Marline yesterday.

5/26
Today I am grateful to do a lot of writing yesterday

5/25
Today I am grateful for my first bike ride in weeks.

5/24
Today I am grateful:
- for an amazing trip to Sweden, Finland, and Estonia
- to arrive safely home last night

5/23
Today I am grateful for:
- my first visit to Estonia
- a guided tour of Tallinn

5/22
Today I am grateful for:
- a guided walking tour of Helsinki
- a visit to the Helsinki City Museum

5/21
Today I am grateful for:
- my first visit to Finland
- a walk around downtown Helsinki last night

5/20
Today I am grateful:
- for an amazing week in Stockholm
- for my first time on a cruise ship
- to arrive safely in Helsinki

5/19
Today I am grateful to see Taylor Swift in concert last night with Lino and Jessica.

5/18
Today I am grateful for:
- a cruise around the Stockholm Archipelago last night.
- a tour of the Vasa Museum
- a visit to the Nordic Museum

5/17
Today I am grateful to deliver 2 presentations at #DevSum

5/16
Today I am grateful for dinner and drinks last night in Stockholm with many old friends

5/15
Today I am grateful to arrive safely in Stockholm.

5/14
Today I am grateful for 800 episodes of #TechnologyAndFriends!

5/13
Today I am grateful to see the musical "Death Becomes Her" last night.

5/12
Today I am grateful for all my mother did for me during her life.

5/11
Today I am grateful for Copilot training yesterday.

5/10
Today I am grateful to participate in Insight's Build + Modernize AI Apps Roadshow yesterday.

5/9
Today I am grateful for breakfast with Avin this morning.

5/8
Today I am grateful
- to the organizers of LambdaConf for an excellent event
- for a few days in Colorado

5/7
Today I am grateful to speak at LambdaConf for the first time.

5/6
Today I am grateful:
- for my first visit to Estes Park, CO
- to cook s'mores and sip beer at a fire pit last night


N. Scott Momaday was a Native American author who wrote about Native Americans. His 1969 novel "House Made of Dawn" tells the story of Abel, a young man who grew up on a New Mexico reservation. Abel returns from the war to resume his life on the reservation but goes to prison after killing a man that he suspects of witchcraft. Upon Abel's release, he tries and fails to assimilate into white America.

The story jumps around in perspective and time, sometimes making it difficult to follow. But Momaday brings things together eventually.

Momaday is primarily known as a poet, which explains the beauty of his prose throughout this book. The following passage describes Abel's impression of the desert landscape:

"The clouds were always there, huge, sharply described, and shining in the pure air. But the great feature of the valley was its size. It was almost too great for the eye to hold, strangely beautiful and full of distance. Such vastness makes for illusion, a kind of illusion that comprehends reality, and where it exists there is always wonder and exhilaration. He looked at the facets of a boulder that lay balanced on the edge of the land, and the first thing beyond, the vague misty field out of which it stood, was the floor of the valley itself, pale and blue-green, miles away. He shifted the focus of his gaze, and he could just make out the clusters of dots that were cattle grazing along the river in the faraway plain."

"Dawn" was written when few mainstream novels were by or about Native Americans. It shed light on the alienation suffered by Indians in this country and broke down barriers for other native writers. Its Pulitzer Prize opened the door for other Indian writers to follow.

It portrays the struggle of a man trying to reconcile the two worlds in which he lives, fitting into neither. It describes the effects of PTSD. It highlights those struggling with mental health issues and how they cope. And it is a tale of self-destruction.


GCast 176:

Using Azure AI Document Intelligence Studio

Learn how to use the Document Intelligence Studio (formerly the Forms Recognizer) to build a model that can analyze the layout of a form and pull information for new forms provided to it.


Episode 802

Raj Krishnan on the Challenges of Artificial Intelligence

Raj Krishnan talks about what you should consider before deploying an AI solution.


It has been years since I traveled to an overseas conference, so I was delighted to accept an invitation to speak at the DevSum conference in Stockholm, Sweden.

I left on Tuesday and arrived in Stockholm on Wednesday. I made the mistake of waiting until I landed before checking locations, and I could not find information on the conference hotel in my emails. "No problem," I thought. "I will go to the conference center and ask. Someone from the conference is bound to have this information." Sadly, when I arrived at the conference center, I only found people behind closed doors attending and teaching day-long workshops. Fortunately, I contacted my friend Tibi, who told me the hotel was five miles away.

The day before a conference is always special. Speakers arrive and greet one another with affection, like a family reunion. This one was even more special as I saw many old friends I had not seen since before the pandemic. After talking in the hotel lobby, some of us walked to a restaurant for a tasty hamburger.

The conference opened Thursday morning with a keynote by Royal Institute of Technology Professor Danica Kragic, who talked about her research on robotics and artificial intelligence. I attended interesting sessions about complex user interfaces (Dean Schuster) and about scaling .NET applications (Callum Whyte) before heading to the speaker room for the afternoon, where I prepared for my presentations and recorded interviews for Technology and Friends.

A Thursday evening attendee party provided the opportunity to talk with many others. One topic that came up was Taylor Swift, who was performing for three nights this week in Stockholm. After discussing the concerts and checking ticket availability, some of us decided to attend the Saturday night show. I bought three tickets - for myself and my friends Lino and Jessica. It took too long to retrieve my purchased tickets from the Swedish Ticketmaster site, but I eventually succeeded.

On Friday, I delivered two presentations: "Effective Data Visualization" in the morning and "Navigating Cloudy Horizons with Azure Monitor and Application Insights" in the afternoon. I have given the Data Visualization talk many times, but this was only the second time I gave the Application Insights talk, which added stress. Both went well, and the audience seemed to enjoy them. The biggest challenge was restricting my content to 50 minutes, as these talks typically take an hour or more.

I attended two other Friday sessions: Steve Sanderson's keynote on "The beginning, present, and future of web tech" and "Refactor your code to use modern C# language features" by Rachel Appel.

After the conference, the organizers invited the speakers for dinner on a boat that traveled around the islands surrounding Stockholm. Going to a bar after the ship docked was fun, but I ran out of gas before others in my party. Walking back to the hotel, I was approached by prostitutes three times. I politely declined.

Saturday morning, the conference organizers continued to spoil the speakers by inviting us to lunch and to visit the Vasa Museum, a well-preserved ship that sank on its maiden voyage in 1628. This was my second visit to Vasa, but I had forgotten much of the history in the nine years since my last visit.

Saturday evening, we attended the Taylor Swift conference. She entertained us for three and a half hours, and I was a Swiftie by the night's end.

I panicked when I realized my hotel reservation ended on Saturday, but I planned to stay until Sunday. The large number of people visiting for the Taylor Swift conference drove up the price of a hotel room above $800 - well out of my price range. Luckily, David Whitney (who I just met earlier in the week) planned to go home Saturday and had a room reserved until Sunday. He was kind enough to allow me to stay in his room after he left town, saving me a lot of money.

When traveling for an overseas conference, I almost always extend my trip with a vacation before or after. Because this was my fourth visit to Stockholm, I decided to explore some other countries. I booked a cruise ship cabin for an overnight voyage to Helsinki, Finland. This was my first time on a cruise ship, which was a pleasant experience. I sipped a beer on the top deck and watched the islands roll past as I enjoyed a leisurely dinner in the dining room. We made a brief stop in Mariehamn, the capital of Aland, a group of Finnish Islands between Sweden and Finland, before continuing toward Helsinki.

Fourteen hours after departure, we arrived in Helsinki, where I was able to check into my hotel early. The last few days drained me, so I slept for a few hours before an evening walk around the city.

Monday morning, I reserved a guided walking tour of the city. The guide was entertaining and informative. Here are a few things I learned from him.

  • Finland has more forested land and more lakes than any country in Europe
  • Finland was part of the Swedish Empire for 16 years
  • Finland is a republic. It has a Prime Minister, a Parliament, and a President
  • Education is free in Finland
  • Saunas were invented in Finland. The word "sauna" is a Finnish word
  • Helsinki is the second northernmost national capital in the world (Reykjavík)
  • Speeding fines are based on the income of the speeder
  • For seven consecutive years, Finland has been named the happiest country in the world. It has a very low crime rate and no homeless people.
  • Fins drink the most coffee per capita of any country
  • Finland was initially settled by people who emigrated from central Asia. Because they lived in isolation in the Finland forests for centuries, the Finnish language is much more similar to the languages of central Asia than to the Germanic and Slavic languages of the surrounding countries.

After the tour, I had lunch with a Georgetown professor I met on the tour. She is teaching in Europe for a few months and traveling around to speak at European universities about her latest book. We connected on social media, and I hope to continue our conversation.

I closed the day with a visit to the Helsinki City Museum in the city's oldest building, before trying Finland's famous salmon soup at a harborside restaurant.

I rode a ferry to nearby Tallinn, Estonia Wednesday morning and hired another guided tour of that city. The tour was good, but the guide was not at the level of my Helsinki guide. It was fun to share the tour with a group of elderly ladies from Maryland and Virginia who were traveling together. Here are some things I learned about Estonia on this tour:

  • Skype was invented in Estonia. The creators later sold the technology to a Swedish company
  • A fortress was built around Tallinn by a Danish king in the fourteenth century
  • The Estonia Parliament building was built in the eighteenth century on a castle, so it looks very different in the front and back
  • The Tallinn Old Town consists of an upper town (where the wealthy live) and a lower town (where the working class resides)
  • Tallinn boasts the first Christmas tree in Europe
  • The world's oldest pharmacy is in Tallinn.

It took about 15 hours to fly home (via Frankfurt), leaving me exhausted and ready to pass out when my head hit the pillow of my bed.

The trip was fantastic. I visited Finland and Estonia for the first time; I reconnected with old friends and made some new friends; I attended an excellent conference where the organizers treated us like royalty; I had my first cruise ship experience; I learned some new things; And I had fun!

Photos


TaylorSwift2024-1Taylor Swift has released eleven studio albums over the past eighteen years and now stands as one of the world's biggest stars - musical or otherwise. Her recent tour of America sold out in minutes, and prices on the secondary market were so high that many Americans opted to fly to Sweden to see her perform, as the cost of the Swedish concert, airfare, and a hotel stay was reportedly still lower than the concert ticket in many US cities.

I happened to be in Stockholm at the time of the tour, so my friends and I braved a plethora of teenage girls to see the iconic Taylor Swift in concert Saturday evening at Stockholm's Friends Arena.

Swift wanted to showcase music from throughout her career by playing a set from each of ten different albums. She referred to each set as an era, inspiring her to name this "The Eras Tour." Sometimes, she combined 2-3 songs into a medley to squeeze in an impressive forty-five tunes.

Taylor is a solid songwriter, dancer, and singer. However, her combination of these talents makes her an outstanding performer. The show featured numerous costume changes, which she was able to complete during a short video or dance number. The singer entered the stage by stepping through a secret door in the video screen or by rising up from below or by appearing out of the darkness.

TaylorSwift2024-2The choreography was impressive, often integrating with the lyrics of a song. Swift showed remarkable stamina dancing for the nearly three-and-a-half-hour concert. The show itself was a major spectacle. In addition to moving elements of the stage, large video boards, a light show, and fireworks, each attendee was given a wristband containing a light. These bands lit up during the performance, forming shapes and patterns that often moved across the arena in time to the music and stage happenings.

One of Taylor Swift's talents is making her audience feel she cares about them. On this night, she made a point to engage each section of the 60,000+ seat arena. When extended applause followed one song, Taylor removed her earphones and smiled silently for a few minutes, as if choked up that the crowd expressed their appreciation so strongly. The crowd went wild when she spoke to them in Swedish.

I was impressed by Ms. Swift and her ability to entertain. I was not a Swiftie before seeing her live, but I am now.


Episode 801

Michael Eaton on Sharing Knowledge

Michael Eaton has a passion for sharing knowledge, via public speaking, blogging, and creating public GitHub repositories. He discusses how this practice helps himself and others.


Death Becomes Her Cast 2024Long ago, I giggled at "Death Becomes Her." Meryl Streep, Goldie Hawn, Bruce Willis, and Isabella Rossellini starred in Robert Zemeckis's 1992 dark comic film, which told of a potion that granted eternal youth and two women who drank it and got what they deserved. To refresh my memory, I watched the movie again this week.

Decades after the movie's release, a musical adaptation debuted at Chicago's Cadillac Palace Theatre.

As in the film version, frumpy Helen Sharp (Jennifer Simar) introduces her fiancé, Dr. Ernest Menville (Christopher Sieber), to fading movie and theater star Madeline Ashton (Megan Hilty). Madeline steals away Ernest and marries him herself. Ten years later, Madeline's beauty and career have faded, the marriage is on the rocks, Ernest has abandoned his humanitarian career to perform nose jobs for celebrities, and Helen is institutionalized thanks to the stress of losing her love to her best friend.

Enter Viola Van Horn, played by Michelle Williams, formerly of Destiny's Child. Viola has a magic potion that grants youth and eternal life to all who drink it.

Great acting, singing, music, and dancing would have been enough. But this musical brought much more. Marco Pennette's script deviated slightly from the film but kept the black humor. The music and lyrics of Julia Mattison and Noel Carey combined catchy melodies with clever lyrics. Hilty and Simard are brilliant as friends/rivals/frenemies seeking beauty and immortality. Sieber was the perfect awkward everyman caught in the middle. Williams gives a chilling performance as the pusher of the magical potion.

The direction and choreography of Christopher Gattelli took this show to another level. I do not recall seeing so many changes in a show before. Sometimes, the costumes seemed to transform magically. Even the special effects were a step above most productions. Madeline's fall down the stairs is dramatic because it is done in slow motion. And a shotgun to the belly leaves a large hole complete with smoke on the edges.

"Death Becomes Her" is a Faustian morality play that inevitably ends in tragedy. It is also a fun ride!


GCast 175:

Getting Started with Azure OpenAI and Azure OpenAI Studio

Learn how to create an Azure OpenAI Service and use Azure OpenAI Studio to deploy and test models in that service.


Episode 800

A Celebration of Friends!

Episode 800, featuring guests from the last 100 interviews!


John Kotter believes in teaching through fables. His 2006 book "Our Iceberg is Melting" tells the story of a group of Antarctic penguins facing the crisis of the impending destruction of their iceberg home. A young penguin named Fred discovered large cracks below the water's surface and warned the leaders that water would seep into these cracks and freeze in winter, tearing the iceberg asunder. When he raised an alarm, many of his flock ignored him or minimized the risks he presented. Some resisted any action that would result in changing their habits.

Eventually, the others accepted Fred's warnings and began to take action. It did not happen accidentally. Fred convinced some of his neighbors of the dangers and got them to act. Eventually, the colony searched for, found, and moved to a new, safer home.

This fable serves as a metaphor for organizations facing the need to make changes to address risk. After telling the fable, Kotter spends a few pages summarizing the lessons learned by the penguins.

Kotter recommends the following:

  • Recognize the urgency of the situation
  • Organize a team to deal with the situation
  • Develop a strategy
  • Communicate. Get others to buy in
  • Empower others to act
  • Create short-term goals and successes
  • Create a new culture

The fable helps the reader remember Kotter's advice about dealing with change. He simplifies the story to make it easier to remember.

This book may have a political message since global warming initiated the iceberg crisis, which many in Fred's colony denied - a problem that scientists confront today with climate deniers. However, the primary message is a lesson on how to deal with any crisis.


Francis Phelan was not always a bum. As a young man, he was an excellent athlete who played professional baseball for the Washington Senators. He lost some fingers in a knife fight, which cost him his baseball career. And when his infant son Gerald died after Francis accidentally dropped him, Francis ran away to live on the streets.

William Kennedy's 1983 novel "Ironweed" picks up Phelan in middle age when he returns to his hometown of Albany. He drinks, sleeps in alleys and fields, comforts his sick sometimes-girlfriend Helen, and tries to find what little work is available during the Great Depression of the 1930s. The ghosts of people who have died in his life continue to haunt Francis. Francis is responsible for some of the deaths.

Kennedy's novel explores poverty and mental health issues that often accompany homelessness. Phelan's fall is a tragic one, but not an isolated story.

The narrative is often nonlinear, with the author switching between the present and the memories of Francis and other characters. Phelan's visions of dead people sometimes make distinguishing between reality and fantasy difficult.

But Kennedy's writing makes the effort worthwhile.

Others have forgiven Francis for his sins, but Francis struggles to forgive himself.


Episode 799

Chris Nicholas on Enterprise Acceleration of AI

Chris Nicholas talks about how enterprises can use the power of AI to build useful solutions, what are examples of good use cases, and


April 2024 Gratitudes

Comments [0]

5/5
Today I am grateful to Joe for driving me from Denver to Estes Park this morning.

5/4
Today I am grateful for dinner last night with my new pickleball friends

5/3
Today I am grateful:
- to catch up with Kevin yesterday while he was in Chicago
- to the organizers of #VSLive for an excellent conference this week.

5/2
Today I am grateful to hang out with the VSLive speakers yesterday afternoon

5/1
Today I am grateful:
- to attend VSLive yesterday and deliver two presentations
- for drinks last night on the Chicago River with Alvin and Sam.

4/30
Today I am grateful for:
- a Mix & Mingle with VS Live speakers and attendees last night
- taking Tim for his first visit to the Billy Goat Tavern

4/29
Today I am grateful to put the cushions back on my deck chairs this weekend.

4/28
Today I am grateful for lunch yesterday with Amanda and Megan

4/27
Today I am grateful to play pickleball with strangers yesterday.

4/26
Today I am grateful for a fresh haircut.

4/25
Today I am grateful that I have been able to keep up the practice of posting a daily gratitude for 11 years.

4/24
Today I am grateful to recycle the electronics that have been sitting next to my front door for weeks.

4/23
Today I am grateful for lunch with Tobias yesterday

4/22
Today I am grateful for a new CPAP Mini that will be easier to pack when I travel.

4/21
Today I am grateful to receive replacement parts and repair my broken iRobot Roomba.

4/20
Today I am grateful to attend and present at the Global Azure event yesterday.

4/19
Today I am grateful for dinner last night with Jay.

4/18
Today I am grateful to go out with the Chicago Java User Group organizers after last night's meetup.

4/17
Today I am grateful:
- to attend the annual STEM Challenge Showcase yesterday
- to deliver a presentation on Responsible AI at AI Camp last night

4/16
Today I am grateful for a long conversation with John for the first time in a long time.

4/15
Today I am grateful to spend the weekend in Michigan with my family, including my brother visiting from Australia.

4/14
Today I am grateful to attend an extra-innings baseball game yesterday at Comerica Park.

4/13
Today I am grateful for dinner last night in St. Clair Shores with Dan and Debbie

4/12
Today I am grateful for another year mentoring Chicago high school students on their science projects.

4/11
Today I am grateful to book my travel next month to Colorado, Sweden, Finland, and Estonia

4/10
Today I am grateful to complete and file my taxes.

4/9
Today I am grateful to view a partial solar eclipse yesterday

4/8
Today I am grateful for two pickleball games this weekend.


Emily Bronte's classic novel "Wuthering Heights" is a tale of misfortune, anger, revenge, and despair.

Mr. Ernshaw owned Wuthering Heights - an estate on the moors of northern England. He returned from a trip to Liverpool with the young orphan Heathcliff, which disrupted life at home. Ernshaw's daughter Katherine befriended Heathcliff, so she and her father were able to protect the foundling from the cruelty of her brother Hindley, who was jealous of further sharing his father's affections. But things grew much worse after Ernshaw died. Hindley took over the estate and began making life miserable for Heathcliff. By this time, teenage Katherine and Heathcliff had fallen in love, but she could no longer protect him alone. Heathcliff felt utterly abandoned when Katherine became engaged to the wealthy, arrogant Edgar Linton. Disappointed and angry, Heathcliff escaped to earn his fortune; he returned years later, seeking revenge on those who wronged him.

Bronte's book resonates because of the characters she created. She published her novel in 1847, and the story takes place in the late eighteenth and early twentieth centuries, but it is relevant today. Many of us behave irrationally when confronted with overwhelming tragedy - sometimes hurting ourselves in our efforts to harm others.

"Wuthering Heights" is a complex story - a dysfunctional love story with significant character flaws among the major players. Heathcliff is the most tragic character. He is bitter about the abuse he suffered in his youth. As an adult, he responds by abusing all around him - not just those who caused him pain. He lost his soulmate twice - first to another man, then to death. In his bitter agony, he begs Katherine's ghost to shun Heaven and haunt him forever. The visions he sees may be her spirit or the delusions of a tormented mind.


If the book has a weakness, it is Bronte's use of a narrator within a narrator - a common practice in Gothic fiction. Heathcliff's tenant begins telling the story and then relates the history of the family tragedy as told to him by the housekeeper, Nellie. The tenant adds little to this story. A narration exclusively by Nelly would be more straightforward.

But this is a minor complaint overshadowed by an epic story that reveals the souls of a set of complex characters.


GCast 174:

Using M365 Copilot with Microsoft Teams

Learn how to use M365 Copilot to quickly get information about a Microsoft Teams meeting.


Episode 798

John Burns on Platform Engineering

DevOps solves a lot of problems, but it requires a lot of work. John Burns describes Platform Engineering, which is built on top of DevOps practices and increase developer productivity. Platform Engineering assists with common tasks and patterns and simplifies operations.

Links:

https://www.meetup.com/Chicago-Kotlin/
https://github.com/JLLeitschuh/ktlint-gradle
https://wakingrufus.github.io/platform-engineering-lightning/


How does one respond when one loses almost everything as a child?

Danny was an infant, and Maeve was five when their mother, Elna, left. Their father, Cyril, fired their nanny when she accidentally hit Danny with a spoon. When Cyril died intestate years later, his second wife Andrea claimed their home - a suburban Philadelphia Mansion known as "The Dutch House" - and drove away her two stepchildren.

Ann Patchett's 2019 novel "The Dutch House" tells their story, as narrated by Danny.

Maeve was diabetic, but she was an adult and strong enough to raise Danny, protecting her younger brother. The two became inseparable throughout their lives - spiritually, if not always physically. Stripped of their home, their only inheritance was an educational trust fund to be shared by Danny and Andrea's two children. Danny and Maeve sought revenge by spending all the trust on Danny's education. He enrolled in the most expensive prep school, college, and medical school despite having no intention of ever practicing medicine.

Although it exists in the background, The Dutch House remains a significant character in this story. The house looms in their memory, representing everything the children lost. For years, Danny and Maeve drive out of their way to see and sit in front of their childhood home.

Patchett brings us into Danny's head but also allows us a peek into the lives of Maeve, Celeste, Andrea, and Elna. Elna ran from her family to serve the poor because she could not accept her husband's sudden wealth and his desire to live in an opulent mansion. The selfishness of abandoning her children is balanced by her desire to help the underprivileged.

"The Dutch House" is a modern fairy tale, complete with a wicked stepmother. Like many fairy tales, there are logical gaps (Why did a savvy businessman like Cyril never draw up a will?), but the character development more than makes up for these flaws.

The story is about loss and guilt and forgiveness. But it is mostly about letting go of the past.


John Updike introduced the world to Harry "Rabbit" Angstrom in his 1960 novel "Rabbit, Run."

The character resonated enough with Updike and his readers that he decided to revisit Harry eleven years later with "Rabbit Redux."

At 36, Harry finds himself without direction. He feels little connection with his son Nelson; he finds it difficult to relate to his dying mother; his marriage lacks passion; his dead-end job provides no satisfaction; and the tumultuous events of the late 1960s anger and confuse conservative Harry. Why must young people protest the war in Vietnam? Don't they realize how necessary it is?

His wife Janice's affair fails to move him, prompting her to move in with her lover.

Not long after Janice's departure, two people move in with Harry and Nelson: radical Black drug dealer Skeeter and 18-year-old runaway Jill.

Like its predecessor, "Rabbit Redux" takes us on a crisis-filled time in the life of everyman Rabbit. As in "Run," "Redux" ends with an inevitable tragedy. And, like the earlier book, this one draws the reader into the immediacy of events by telling its story entirely in the present tense.

"Redux" earned Updike his first of two Pulitzer Prizes. The novel's power comes from the author's ability to make the reader sympathize with an inherently unlikeable character. Rabbit's poor decisions and character flaws lead to his downfall. He is morally ambiguous - a middle-aged man taking drugs from Skeeter and sex from Jull as an escape from his mundane life.

Yet we still feel for him and for those around him.


<< Older Posts