Introduction

Experts expect Cybercrime to cost companies $9.5 trillion in 2024. This anti-economy is larger than the Gross Deposit Product of every country besides the United States and China.

Microsoft has always taken security seriously, but staying ahead of hackers is a significant challenge. Microsoft Corporate Vice President and Security Fellow John Lambert once said: "Defenders think in lists; attackers think in graphs," indicating that hackers tend to be more sophisticated than those they attack.

Microsoft faces constant attack threats as a large software, hardware, services, and cloud company. The United States Department of Defense is the only organization targeted more than Microsoft.

After some partially successful attacks, Microsoft leadership decided to re-engineer their approach to security. The result was the Secure Future Initiative (SFI), which was introduced in late 2023 and expanded in mid-2024. It focused on three broad categories: Culture, governance, and accountability; Highest urgency and expansion of scope; and New operating model and processes.

Culture, governance, and accountability

This category included hiring new Igor Tsyganskiy, Chief Information Security Officer (CISO), and regular reports on security threats, responses, and updates to the Senior Leadership Team and the Board of Directors. Microsoft's senior leadership team now has plans and milestones correlating to their compensation. Other employees are also affected, as the company has included Security as a core priority in every role at all levels.

Highest urgency and expansion of scope

This Fiscal Year, the Microsoft leadership team is emphasizing that security is the number one priority of every employee. Projects, applications, and services often involve trade-offs between priorities (e.g., new features and bug fixes or between speed and reliability). The message to employees is: If a trade-off exists between security and something else, security takes precedence. Every employee in every division of the company received this message.

New operating model and processes

Microsoft introduced six security priority categories, known as the SFI Pillars. A Lead for each pillar drives the execution of that pillar across departments.

Security Principles

Microsoft's approach emphasizes the following security principles: Secure by Design, Secure by Default, and Secure Operations. I describe these principles below:

Secure by Design

Microsoft builds Security into every product and service they ship. The Common Weakness Enumeration (CWE) is a list of security issues that Microsoft uses to determine and correct potential flaws.

Secure by Default

Many products and services have options to increase security. These options are now turned on by default. You may turn them off at your own risk.

Secure Operations

Microsoft provides monitoring tools to help users determine if their services and software are under attack or at risk of attack, allowing them to react quickly. Additionally, Microsoft has 34,000 engineers focused on security and has removed 730,000 applications that do not meet SFI standards.

SFI Pillars

The Secure Future Initiative consists of six major security priorities, as described below. Some pillars refer to commitments from Microsoft leadership; some are specific changes to processes and software.

Protect Identities and Secrets

This pillar ensures that all services and applications support protection tools, such as Multi-Factor Authentication, open identity standards, and system-managed credentials. It also involves encouraging the use of these tools and requiring internal employees to utilize them. System Managed Identities are more complex than passwords but are inherently more secure, and they remove the need for human intervention in rotating passwords.

Protect Tenants and Isolate Production Systems

Microsoft actively removed unused tenants and legacy systems, reducing the risk of exposing systems with insufficient protection. In addition, they have applied to existing systems, solid practices, such as least privelege access and denying access by unsecured devices.

Protect Networks

This pillar involves improved isolation of networks. Microsoft production environments are now each isolated from one another, and this isolation is implemented by default in networks created by customers. These defaults help prevent a threat actor from moving laterally within a system.

Protect Engineering Systems

The source code of all Microsoft products is secured, applying least privelege access to all users. Microsoft uses automated scanning tools and the Code Analysis Query language CodeQL to analyze source code and automatically detect potential vulnerabilities.

The testing and deployment of code to all environments is automated, making these processes repeatable and secure. The idea is to treat Testing, Development, and Demo environments with the same rigor as Production environments.

Monitor and Detect Threats

Monitoring and real-time threat analysis has been improved within Azure, making it easier to troubleshoot issues. Microsoft has implemented policies to keep security logs within a central data lake for at least two years, making it easier to detect threats more quickly.

Accelerate Response and Remediation

Using the tools and practices described above, Microsoft has committed to reducing the response time when mitigating critical security issues and resolving vulnerabilities. Perhaps more importantly, they committed to increasing the transparency of the vulnerabilities when discovered.

Conclusion

Some of these recommendations came from a report issued by the Cyber Safety Review Board (CSRB) of the US Department of Homeland Security. Others are an evolution of what was already happening or a response to recent issues uncovered internally.

One goal is to drive a culture change, allowing every employee to prioritize security in everything they do. Security is a team sport involving everyone in the software development lifecycle. Turning on security features by default and adding multiple layers of defense make it easier to fall into the pit of success. Improved, more secure internal systems and better education are at the heart of these efforts.

Together, these activities will increase cybersecurity, decrease the risk of threats, and anticipate and respond to future cyberattacks.


Episode 814

Ben Kotvis on Modernizing Enterprise Applications

Insight Principal Architect Ben Kotvis describes the process of migrating and modernizing legacy applications, including the factors to consider and the challenges in migrating. He covers, greenfield applications, brownfield applications, and lift-and-shift deployments.


Many great novels tell a sweeping, epic story. In contrast, Eudora Welty's 1972 novel "The Optimist's Daughter" tells a simple story of a few people dealing with the death of someone close.

Laurel had already lost her husband and mother when she traveled from Chicago to New Orleans to care for her father, Judge Clint McKelva, following his surgery. When McKelva dies, Laurel and her father's second wife, Fay, return to the family's Mississippi home to prepare for the funeral. Fay is younger than Laurel and proves to be selfish and melodramatic. She seems to have married the man only for his money. As the old man's life slipped away, Fay complained: "I don't see why this had to happen to me." Fay's sense of entitlement and her anger contrast with Laurel's sweetness.

Scenes of the dying father, the mourners coming to pay their respects, and the conflict between Laurel and Fay are memorable for the emotion shown. Welty excels at writing dialogue that brings to life her characters.

This book triggered memories of my own life. I recall the death of each of my parents and how people who knew various parts of their lives remembered them differently. I remembered the death of my widowed sister and the aftermath, in which her second husband showed his true colors, which were not good. Laurel had to deal with similar issues as she grieved for her father.

"The Optimist's Daughter" is a short book with little action, but the author packs it with emotion. It is a story of a young woman's self-discovery as she deals with her grief. It is well worth the time it takes to read.


BackToTheFutureTheMusicalCast2024Sometimes, a story is a delight, even if you know exactly what is coming. This was the case with the Wednesday evening production of "Back to the Future: The Musical" at Chicago's Cadillac Palace Theatre.

The play stuck closely to the plot of the 1985 Robert Zemeckis movie, which I have seen multiple times. Still, the story, the actors, the dancing, the characters, and the music kept the audience engaged throughout the play's 3-hour run time.

Caden Brauch did an excellent job channeling Michael J. Fox's interpretation of Marty McFly, the boy who finds himself transported 30 years back in time to the week that his parents met and fell in love. Marty unintentionally disrupts their first meeting, and his high-school-age mother falls for Marty instead.
Similarly, Burke Swanon's performance as the nerdy George McFly was almost identical to Crispin Glover, who portrayed George on the big screen.

Don Stephenson puts a slightly different spin on his portrayal of Doc Brown, the mad scientist who invented the time machine and assists Marty in both the present and the past at different times in Doc's life. Stephenson eschews Christopher Lloyd's gravelly voice, sounding much younger than the film version; but he retains Doc's manic quirkiness.

Early in the show, Marty asks Doc where all the dancing girls came from. Doc responds with a straight face: I don't know. They appear every time I start singing.
Director John Rando brings it all together, weaving a fun tale of relationships, consequences, and science fiction. He brilliantly used a translucent screen between the actors and the audience to portray technical effects, such as flying and time travel, and natural effects, such as rain storms.

The music of Alan Silvestri (who composed the soundtrack of the Zemeckis film) and the lyrics of Glen Ballard (best known for co-writing and producing Alanis Morisette's "Jagged Little Pill" album) entertain and advance the story.

Besides the music, the show inserts some minor twists, including Uncle Huey, who is mentioned in the first act but makes an appearance near the end.
This show felt like a trip back to 1985. I enjoyed this week's performance so much that I will consider seeing it again. But not until I re-watch the movie trilogy.


Episode 813

Kevin Griffin on the Multithreaded Income Podcast

Kevin Griffin's podcast informs its listeners about the financial aspects of the IT industry. He talks with me about the podcast's goals, guests, topics, and history.

Links:
https://multithreadedincome.com/
https://podcast.multithreadedincome.com/
https://www.youtube.com/@MultithreadedIncome/videos


It has been over a year since I picked up one of Michael Bond's delightful Paddington stories. This week, I corrected this by reading the "Paddington Goes to Town" - the eighth book in the series.

For those who do not know, Paddington is an anthropomorphic bear from darkest Peru, adopted by the Brown family in London. He means well, but he has a knack for getting into and out of trouble.

Like its predecessors, this volume contains seven stories. The bear serves as a wedding usher but accidentally gets the bride's ring stuck on his paw; his grumpy neighbor, Mr. Curry, coerces Paddington into caddying for a golf contest; Paddington spends two stories in the hospital trying to visit Mr. Curry after his injury on the golf course; the silly bear searches for the perfect ornament to enhance the garden of his friend Mr. Gruber; he sets out singing carols, but ends up as a waiter at a private party; and he causes confusion when Londoners mistake him for a busker and drop money in his hat.

Paddington confuses himself and others because he takes everything literally and responds accordingly. He assumes his role as a wedding usher is to 'ush anyone who speaks. The hospital receptionist refers to a psychiatrist as a "head-shrinker," which makes little sense to the bear. He is confused by the phrase "Vladimir's beside himself." When asked if he has experience waiting, he misunderstands that the lady wants to know if he has ever waited on tables and describes the time he had to wait for a bus.

"Paddington Goes to Town" is another delightful collection from Michael Bond.


Bush2024Wednesday was an evening of grunge music at the Huntington Bank Pavillion on Chicago's Northerly Island. Headliners Bush invited three acts to open for them. A prior commitment prevented me from seeing Tim Montana, but Candlebox put on a very good show as the crowd trickled in. Jerry Cantrell followed, performing music from his solo album and his time as lead singer and lead guitarist of Alice in Chains. He closed his set with an excellent rendition of "Rooster" - his tribute to his veteran father.

With so many acts, Bush did not hit the stage until almost 9:30 PM. But they hit the ground running, opening with the intense "Everything Zen," followed by the frantic "Machine Head."

JerryCantrell2024This tour was labeled "The Greatest Hits Tour," so the band favored their singles over deep album tracks. The crowd loved it. Lead singer Gavin Rossdale danced around the stage during many of his songs, and the audience bounced with him. He slowed things down when the rest of the band left the stage, allowing him to perform "Swallowed" and "Glycerine" accompanied only by his guitar.

The group's encore set included a cover of the Beatles' "Come Together" and closed with Bush's hit "Comedown."

This venue, situated on a point of land ("Northerly Island" is not an island, strictly speaking), is a wonderful place to experience live music. After so many bands, I left exhausted but feeling good.


BeerCityCode2024-aA young woman approached me after I delivered my "You and Your Technical Community" presentation at Beer City Code Saturday in Grand Rapids, MI. In my talk, I shared how my involvement in the tech community enhanced my career and suggested how others could get involved. I hoped to inspire some of them to try public speaking, connect more with others, and volunteer at local events. This woman had recently moved to suburban Detroit and wanted to know how she could find opportunities to get involved locally. I was delighted to help her because I was thrilled that she heard the lessons I was trying to teach, and she was determined to act on those lessons.

I also delivered a presentation at BCC titled "Blood, Sweat, and Code Reviews," in which I described the process, benefits, and challenges of conducting effective code reviews and ways to address those challenges. I heard positive feedback from attendees of this talk as well.

Teaching and inspiring attendees is one of my motivations for attending conferences like this. But I also was able to learn. In addition to my two sessions, I listened to the following:

Debunking the Complexity of Continuous Deployment
Carlus Henry talked about the advantages and challenges of CI/CD and walked through the process of creating a reliable deployment process.

BeerCityCode2024-bAzure Managed Identities: Connect Without Connection Strings
AL Rodriguez (He capitalizes his entire first name all across social media) demystified identity management in Azure and simplified the concept of managed identities.

Getting Good (or Better) at Code Reviews
I wanted to see Rhia Dixon's presentation because one of my talks at this conference was on a similar topic. I will incorporate a few of her ideas into my presentation next time.

I was pleasantly surprised to learn that Microsoft sponsored this event. My employer used to financially support many code camps like this, but they have done so less frequently in the past few years.

I loved seeing old friends, meeting new people, and hearing positive feedback from attendees. I am grateful to J Tower and the other organizers for an excellent weekend!


Episode 812

Rob Bogue on Getting the most out of RAG with Copilot for M365

Rob Bogue defines Retrieval Augmented Generation - a way to enhance natural language searching, how Copilot for Microsoft 365 takes advantage of this pattern, and how to extend this capability.

Links:
https://thorprojects.com/2024/04/04/now-available-organizational-readiness-for-generative-ai-draft-white-paper/


July 2024 Gratitudes

Comments [0]

8/4
Today I am grateful to J and the other organizers of Beer City Code for an excellent event!

8/3
Today I am grateful for an evening in Grand Rapids, MI that included:
- a Diversity and Inclusion Mixer
- Dinner with old friends

8/2
Today I am grateful to Brian for inviting me to co-host the Partner Showcase show yesterday.

8/1
Today I am grateful to the man who chased after me to return my wallet that I dropped while riding my bike yesterday.

7/31
Today I am grateful that the pain from my accident last month is now gone.

7/30
Today I am grateful to witness a Bobby Witt Jr. grand slam last night at the White Sox - Royals game.

7/29
Today I am grateful
- to see Guster in concert last night
- to stumble upon the Chinatown Summer Fair yesterday.

7/28
Today I am grateful to see Thee Sacred Souls in concert last night in Skokie.

7/27
Today I am grateful to see Courtney Barnett and Bob Mould in concert last night in Skokie.

7/26
Today I am grateful to attend a recording of "Wait Wait Don't Tell Me" at the Studebaker Theatre last night.

7/25
Today I am grateful for new lawn chairs.

7/24
Today I am grateful for a BBQ dinner last night with Daniel, Paul, and Kelsey.

7/23
Today I am grateful for a bike ride with Daniel and Paul yesterday

7/22
Today I am grateful to play pickleball for the first time in weeks.

7/21
Today I am grateful to attend M365 Chicago Community Days yesterday

7/20
Today I am grateful:
- to Daniel for helping me assemble my new bed yesterday
- to attend a speaker dinner last night

7/19
Today I am grateful:
- to deliver the world premiere of an AI presentation last night at the Louisville .NET User Group
- to host the Chicago Java User Group last night

7/18
Today I am grateful to see Acoustic Alchemy in concert last night.

7/17
Today I am grateful for minimal storm damage in my neighborhood and no damage to my home.

7/16
Today I am grateful for a call from Meenakshi last night.

7/15
Today I am grateful to pass an exam yesterday and renew my Microsoft AI certification.

7/13
Today I am grateful for a new pickleball paddle.

7/12
Today I am grateful to see "Ain't Misbehavin'" last night on my first visit to the Drury Lane Theatre in Oakbrook Terrace.

7/11
Today I am grateful for a new mop.

7/10
Today I am grateful for a new work laptop.

7/9
Today I am grateful to pass 1,000 subscribers of #TechnologyAndFriends!

7/8
Today I am grateful to have lost sixty pounds in the last year.


Guster2024Guster lead singer Ryan Miller drew cheers from the audience at a Friday night concert in Skokie, IL, when he announced that he grew up in Skokie. He told the crowd that he visited his old house earlier in the day and that his grandfather had built the nearby temple. Miller looked out on the crowd and quipped that this was "a good-looking group of suburban Jews," which brought laughter from the crowd across the Illinois Science + Technology Park Field.

The concert was the final evening of the three-night Out of Space series presented by SPACE nightclub in Evanston.

Miller continued to reference this town throughout the show. At one point, he claimed that, before settling on the name "Guster," they considered naming the band "Skokie." They then played a song about "Skokie."

Although Miller weaved humor between the numbers, Guster is serious about their music. Their tight harmonies were evident tonight as they worked through over twenty songs. Each band member is a first-rate musician, and their arrangements brought smiles to faces. Percussionist Brian Rosenworcel was particularly impressive, moving between a traditional drum set and a large set of bongo drums that he played barehanded.

The crowd was in a frenzy, bouncing to catchy tunes and shouting along, as in the "4-3-2-1" chorus of "Barrel of a Gun." Miller continued to be the focus. At one point, he ran through the crowd with a lawn chair borrowed from an audience member before returning to the stage and lounging in the chair.

After ninety minutes of performing, Miller announced they would "fake an encore." They played two more songs, including Fleetwood Mac's "Dreams."

I loved the show, but I did some searching when I returned home, and I could find no evidence online that Ryan Miller ever lived in Skokie.


Episode 811

Greg Crist on Observability

Greg Crist is a solution architect for Elastic. He talks about how to implement observability in your applications to be more proactive in resolving issues. He dives into some of Elastic's observability tooling.

Links:
https://www.elastic.co/


Courtney BarnettStripped-down music is often the best music.

Courtney BarnettFriday evening kicked off three nights of "Out of Space" - an annual series of outdoor concerts presented by the SPACE music club in Evanston, IL. Typically, the organizers hold these concerts in Evanston (I have been to a few of them at Canal Shores Golf Course). They moved the shows to the Illinois Science and Technology Field in Skokie this year. It was a different venue but a similar atmosphere.

This opening night featured three artists, each bringing high energy with a small group - Squirrel Flower's quartet, Bob Mould's solo performance, and Courtney Barnett's trio. One does not need to fill a stage with people to fill a room with sound. Australian Courtney Barret headlined the event, but each artist contributed admirably to the evening.

Bob MouldI was unfamiliar with Courtney Barnett when I bought tickets to this concert. I really wanted to see the warmup act, Bob Mould. I have been a fan of Mould's work since I was a disc jockey at a student radio station at Michigan State University decades ago. Mould's band "Husker Du" was a regular on our playlist, which featured alternative rock music. My fandom continued with Mould's next band, "Sugar," and his later solo work. Mould did not disappoint on this night. He played for an hour, mixing tunes from throughout his four-decade career. Although he stood alone on stage, his frantic guitar work sounded as if he had a full band behind him.

Squirrel FlowerPreceding Bob Mould was a local artist who called herself Squirrel Flower. She played a mean guitar and led a four-piece band.

Courtney Barnett hit the stage right on time and played for over ninety minutes. Her rockers were full of energy, and her slow songs were full of emotion. She is known for her songs' clever lyrics, so it was no surprise that devoted fans in the crowd sang along. But she drew the loudest applause when she launched into a blistering guitar solo. Backed only by Bones Sloane on bass and Dave Mudie on drums, Barnett showed the energy one can create with a power trio. She played selections from her three studio albums. Highlights included "Avant Gardener," "Before You Gotta Go," and "On Script," a song originally recorded as a duet with Kurt Vile. She closed with "Nobody Really Cares If You Don't Go to the Party" - a terrific singalong song - before thanking the audience and walking off stage. Surprisingly, she did not return for an encore.

But, after three bands and nearly four hours of music, it was enough.


Mark Haddon's 2003 novel "The Curious Incident of the Dog in the Night-Time" is difficult to assign to a category. Although some see it as a story for youth, the strong language causes me to question whether this is a suitable book for children. Some view it as a mystery, but the clues presented are not as foolproof as a traditional detective story.
Christopher Boone, a bright 15-year-old boy in Swindon, England, narrates the book. The first-person narration gives us a look into Christopher's thought processing. Although Christopher possesses a remarkable mind, he has emotional issues that suggest he may be on the autism spectrum. He takes everything literally; he cannot stand to be touched; he is incapable of lying; and he obsesses over colors and prime numbers. In fact, the chapters of "Curious" are all prime numbers, rather than the traditional ordinal numbers. Additionally, his handicap prevents him from filtering excessive stimuli or applying intuition. But he possesses a photographic memory and a gift for using logic and reason in every situation.
Christopher has lived alone with his volatile father, Ed, since Ed came home two years ago and informed him that the boy's mother died of a heart attack in hospital.
One day, Christopher discovers the body of his neighbor's dog, Wellington, stabbed to death by a gardening fork. Christopher sets out to find the killer. When Ed learns that Christopher has been bothering the neighbors, he insists that the boy stop meddling in other people's business.
As the story progresses, we learn more about Christopher, his family, and some of the lies told to Christopher and the reader.
As someone recently hurt by the lies of someone close, this story resonated strongly. Like Christopher, I trust people until they demonstrate they do not deserve that trust. Like Christopher, the pain feels like a betrayal when people break that trust.
This book is filled with anxiety and frustration and heartache and humor and hope - much like life.


GCast 180:

Using M365 Copilot with Microsoft Outlook Emails

Learn how to use Copilot for Microsoft 365 with Microsoft Outlook to better create, summarize, and manage your emails.


M365ChicagoCommunityDays-1While waiting for the opening keynote at the M365 Community Days, the man beside me turned and said, "Hi." "Do I know you," I asked. "You look familiar." We had worked together fifteen years ago, and he was a fan of my show. These are the interactions one has at community events like this one held Saturday in downtown Chicago. I miss the days when we had many technical community events from which to choose, so I was happy to assist the volunteers in hosting the M365 Community Days in Chicago on July 20.

This event grew out of SharePoint Saturday - a conference held worldwide before the pandemic. Dozens of attendees decided to forego a beautiful Saturday in Chicago and spend the day indoors. Speakers arrived from all over the world, including Singapore, Alaska, England, and India - many of them at their own expense.000

Adam Hecktman kicked off the day with a talk titled "AI for Good," which highlighted ways that Artificial Intelligence is making the world a better place.

Ashish Rana gave a presentation titled "Build and Extend AI-powered Copilots with Copilot Studio," giving an overview of Copilot Studio. I heard a lot of useful information, but I hoped to see a demo.

In his session "How to Fake Being an AI Expert: An Evil Consultant's Guide to AI," Hugo Bernier pretended to be his evil twin, Oguh Reinreb, who gave bad advice about implementing and using AI. He did so to highlight the best ways of using this technology.

M365ChicagoCommunityDays-2Heather Cook closed with her keynote presentation, "Delivering Business Value, Trust and User Satisfaction in the Era of AI." She talked about how AI is changing the world and how to use AI to your advantage. She invited Tammy McMiller, co-founder and CEO of Plan Heal, a startup that uses AI to predict health risks, onto the stage. Tammy told us about her company and how Microsoft for startups is helping them. She demoed a chatbot her company developed to collect relevant symptoms from a patient.

With Fourteen tracks, I worried that the crowd would be spread so thin that some sessions might attract no attendees, but this was not the case. I enjoyed learning something new and interacting with folks in the tech community.

Just like the old days.


Episode 810

Magnus Martensson on the Cloud for the Public Sector

Magnus Martensson discusses challenges specific to governments and the public sector when building cloud solutions, as well as some cloud solutions built for the public sector.


Anthony Doerr's 2014 novel "All the Light We Cannot See" takes place in Europe during World War II, but it is less about the war and more about the toll the war takes on young lives. The book follows Marie-Laure LeBlanc, a blind girl who flees to Saint-Malo when the Nazis invade Paris; and Werner Pfennig, a teen boy conscripted into the German army. The narrative alternates between the lives of the two teenagers until their paths briefly cross near the end of the book.

The youths react to the war in different countries and in different circumstances - Marie-Laure as a French refugee and Werner as a German soldier. They connect only because Werner's superiors assign him to find a diamond that Marie-Laure's father hides.

Doerr makes us believe the characters and feel their fears and frustrations. His style is pleasant and flowing. Here are a few examples:

"Time is a slippery thing: lose hold of it once, and its string might sail out of your hands forever."

"His voice is low and soft, a piece of silk you might keep in a drawer and pull out only on rare occasions, just to feel it between your fingers."

"Every hour, she thinks, someone for whom the war was memory falls out of the world."

The reader sees the war through the eyes of the innocents caught up in its violence and tragedy. It is a story of despair and resilience and survival.

It is beautiful and gut-wrenching.


Twenty-four years after the publication of her successful book "Housekeeping," Marilynne Robinson followed up with 2004's "Gilead." This second novel would go on to win the  Pulitzer Prize for Fiction and the National Book Critics Circle Award.

76-year-old John Ames knows he is dying after a lifetime as a preacher in the fictional town of Gilead, Iowa. Knowing his days are numbered and knowing that his 7-year-old son will have limited memories of him, he writes a letter to his son. Part of the letter describes events during the days it takes him to write it, and part of it is a reflection on Ames's life and the lives of his father and grandfather, who were also preachers.

This is a thought-provoking novel. Robinson, via Ames, discusses theology, forgiveness, family relationships, racism, war, pacifism, and the different ways people practice and preach their beliefs. The novel contrasts Ames's pacificist father with his grandfather, who assisted John Brown's violent abolitionist methods before the Civil War.

Much of it revolves around the narrator's faith - how he lives his life relative to his belief and his role as a minister in the community.

"Gilead" is light on plot, but it captivates the reader with the thoughtful, optimistic musings of its narrator.


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.


It is not often that a writer elevates trees to the status of characters in a novel. But Richard Powers does precisely that in his 2018 book "Overstory." Along with the world's trees, Powers takes us through the lives of eight human characters:

- Nicholas Hoel. An Iowa farmer whose family has for generations lived in the shadow of one of North America's last remaining chestnut trees
- Mimi Ma. Her father planted a mulberry tree before taking his own life
- Adam Appich. His parents planted a maple tree in his honor.
- Ray Brinkman and Dorothy Cazaly. A couple who date and marry.
- Douglas Pavlicek. A banyan tree saves his life when it cushions his fall after his plane is shot down. He dedicates his life to planting seedlings.
- Neelay Mehta. A fall from a tree paralyzed him as a young boy. He creates a popular video game.
- Patricia Westerford. The scientific community ridicules her for publishing a paper suggesting that trees can communicate with one another.
- Olivia Vandergriff. Visions during a near-death experience convince her to travel to California and attempt to save the Redwoods.

Each of these people comes to appreciate the value trees have to the planet's ecology and the danger men pose to the ecosystem's delicate balance.

Just like a tree rises from roots to trunk to crown before releasing its seeds for the next generation, Powers divides the book into four sections: "Roots," "Trunk," "Crown," and "Seeds."

"Roots" introduces the main characters. It reads like a collection of independent short stories.

In "Trunk," the characters come together, joining forces to fight against clear-cut logging that is eliminating the world's old-growth forests at an alarming rate. One protest goes horribly wrong, causing a death and sending them all into hiding.

"Crown" sees each of them trying to rebuild their lives, fearful that the authorities will catch up with them.

The book concludes with "Seeds," which reveals the ultimate fate of each character.

The activists rally to protect what they perceive as the injustice of lumber companies stripping the land. They stand up for the rights of trees. When peaceful demonstrations prove ineffective, they resort to more radical methods, which leads to a death, which plunges their lives into chaos.

The author does an excellent job of weaving together seemingly unrelated lives, describing how they came to care about the plight of trees and uniting them in a common cause. He also raises issues about our approach to Earth's natural resources. Given the speeches transcribed in the book, Powers appears to favor the protestors' philosophies. However, he also cautions against extreme behavior in pursuing a noble goal. These behaviors can have disastrous consequences.

Powers's prose is consistently excellent. He treats the reader to sentences like "What you make from a tree should be at least as miraculous as what you cut down." and "This is not our world with trees in it. It's a world of trees, where humans have just arrived." When he writes of a character telling an audience about trees, Powers writes:

"She could tell them about a simple machine needing no fuel and little maintenance, one that steadily sequesters carbon, enriches the soil, cools the ground, scrubs the air, scales easily to any size. A tech that copies itself and even drops food for free. A device so beautiful it's the stuff of poems. If forests were patentable, she'd get an ovation."

"The Overstory" is a dark, powerful novel of environmentalism and human struggle.


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.


In the late nineteenth century, the US Government drove the Osage Indians out of Kansas onto seemingly worthless land in Oklahoma. The discovery of oil beneath this land, the Osages made the Osage among the wealthiest people in the world.

Soon after the oil discovery, many in the tribe were murdered. Powerful white men decided that Native Americans were not entitled to the money and sought to seize it for themselves. This "reign of terror" continued for years, led by cattleman William King Hale, helped by his nephews Ernest and Byron Burkhart. Ernest married an Osage woman Mollie Kyle. All of Mollie's immediate family died soon after the wedding – by poison, gunshot, and a home explosion.

Even before the murders, the Native Americans were already the victims of systemic racism. To prevent Indians from controlling their own finances, the government frequently appointed white "guardians," who purchased items for them - often reselling them to the Indian at wildly inflated prices. Merchants frequently increased prices dramatically when selling to Indians.

Investigators of the murderers disappeared or were found dead. Eventually, the FBI (then known as the "Bureau of Investigation") resolved the case, charging and convicting William Hale and Ernest Burkhart.

David Grann's 2017 book "Killers of the Flower Moon" chronicles the murders and the ensuing investigation.

One can be forgiven for thinking this book is a murder mystery. Most of it reads like a suspense novel, highlighting character personalities and relating conversations.

In the final chapters, Grann pivots and describes his investigation decades after the murder, revealing that the death count was probably much higher than recorded in the official statistics.

This chapter of American history is largely forgotten. Grann's book and Martin Scorsese's film adaptation remind us all how far greedy men will go to exploit others. It is a lesson we should never forget.


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


"Rabbit at Rest" is the fourth and final book in John Updike's excellent tetralogy chronicling the life of Harry "Rabbit" Angstrom.
Rabbit is 56 years old, overweight, and suffering from heart problems. He is retired and lives half of each year in Florida, where he spends much of his time playing golf. His son Nelson now runs the family car dealership.

But Nelson has developed a cocaine habit and is stealing from the dealership to pay off his exorbitant debt to his drug dealers.

The reader cannot help but feel for Rabbit. Much of what happens to him is out of his control. But his shallowness and innate selfishness remain and prevent us from embracing him. Rabbit has always been self-absorbed, but he takes it to a new level in this volume. His married neighbor Thelma is in love with Rabbit, which leads to a years-long affair. Rabbit, of course, feels no emotional connection to Thelma but gladly accepts her sex. Late in the book, Rabbit betrays those close to him. When confronted, he runs away and blames everyone but himself. The passage below reveals how self-centered he is.

"This is the worst thing you've ever done, ever, ever," Janice tells him. "The absolute worst. That time you ran away, and then Peggy, my best friend, and that poor hippie girl, and Thelma—don't think for one moment I didn't know about Thelma—but now you've done something truly unforgivable."

"Really?" The word comes out with an unintended hopeful lilt.

"I will never forgive you. Never," Janice says, returning to a dead-level tone.

"Don't say that," he begs. "It was just a crazy moment that didn't hurt anybody. Whajou put me and her in the same house at night for? Whajou think I was, dead already?"

Updike wrote one final novella ("Rabbit Remembered") in this series, but that story takes place after Angstrom's death, so "Rest" concludes
Harry's life story. This book is a fitting conclusion to a lifelong ride.


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.


Sarah McLachlin in ChicagoThirty years ago, Sarah McLachlan released her third studio album - "Fumbling Toward Ecstasy." It was her most successful album to date, although "Surfacing" would surpass its popularity a few years later.

McLachlan launched a North American tour to celebrate the "Fumbling" anniversary. I saw her Chicago stop Tuesday evening at the Huntington Bank Pavilion on Northerly Island.

The show was so popular that the entrance line stretched out to Solidarity Drive and well down the block.

It was worth the wait.

McLachlan began her show with songs from throughout her long career, including hits like "Adia" and "I Will Remember You." Although she sang a few upbeat songs, Sarah is at her best when she brings down the pace, singing love songs, melancholy ballads, or haunting ethereal music on which she built her career. In between, she told stories of her daughters, her father, and her friends. She acknowledged that "Adia" was about her feelings when she knew she had hurt a close friend with whom she later reconciled.

She also used the opportunity to promote her non-profit: a music school for underprivileged youth. A dollar of each ticket sold went to the students.

Her tour band was solid, but even the instrumental focus remained on McLachlan this night. Many of her songs that night began and ended with Sarah on a piano solo., On some songs, she accompanied herself without the rest of her band.

After ten songs, the Canadian artist changed costumes and performed every track from "Fumbling Toward Ecstasy" in the same order as appears on the album. She gave a moving interpretation of this very personal album. Sarah and the audience each have a connection to these songs and this period, and the performer allowed us to share that connection.

She said a brief "goodbye" after performing the final and title track but returned within minutes for a two-song encore.

For her encore, she came on stage alone and played "Gravity," a new song that will appear on an upcoming album. It was just her, a piano, and a spotlight. Her bandmates came on stage for the second and final encore song, but they did not touch their instruments - instead, supplying backing vocals on her hit song "Angel."

McLachlan's reminiscences were not energetic, as some concerts tend to be. But her emotion brought a different energy to the venue and her fans.


Six The Musical Cast 2024Sometimes, musical theater feels more like a concert than a play. This is the case with "Six: The Musical."

In the show, we hear the stories of the six wives of Henry VIII, who ruled England from 1491 to 1547.

Most of Henry's marriages ended tragically. His marriage to his first wife, Catherine of Aragon, lasted 24 years until he annulled that marriage upon falling in love with Anne Boleyn. Three years later, an English court convicted Anne of treason and adultery. She was beheaded within days. Shortly after Anne's execution, Henry married Jane Seymour. Jane died delivering Henry's only male child - the future King Edward VI. Henry next married Anna of Cleves but quickly tired of her and annulled the marriage to wed Katherine Howard. The marriage to Katherine ended when Henry executed her for adultery less than two years later. Catherine Parr - Henry's last wife - outlived him when he died at the age of fifty-five.

In the "Six" musical, each wife takes turns singing about the difficulties of being married to the king. With a funky rock band performing behind them, they agree that the wife with the most tragic story will be the band's new singer. Each wife appeals to the audience during each song, announcing that she is clearly the winner.

Henry mistreated his wives with varying degrees of awfulness. He seemed to have loved Jane Seymour for giving him a male heir and appears to have treated Catherine Parr well before he passed away. But he beheaded two of his wives and annulled two of his marriages.

The six women of the cast (Kristina Leopold, Cassie Silva, Kelly Denice Taylor, Danielle Mendoza, Alize Cruz, and Adriana Scalice) are outstanding, belting out tunes like a pride of divas. The all-female band (keyboard, guitar, bass, and drums) backing them are also top notch. Bright costumes and energetic choreography add to the spectacle.

"Six: The Musical" is not a long show (barely eighty minutes), but it packs a lot of fun into a short period of time.


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.


The de León family of Junot Diaz's 2007 novel "The Brief Wondrous Life of Oscar Wao" suffers from a fukú curse that brings violence into their lives. The book primarily focuses on Oscar de León, an overweight and unhappy boy born in New Jersey to Dominican Republic immigrants. His mother, Beli, emotionally abuses Oscar and his sister, Lola.

Through flashbacks, we learn that Beli fled the Dominican Republic after she was nearly killed for having an affair with the husband of the President's sister. We also learn of Beli's father, Abelard, who defied the President Rafael Trujillo by hiding his (other) beautiful daughter from Trujillo's lustful advances. For this crime, Abelard was arrested on false charges and sentenced to eighteen years in prison, while most of his family died mysteriously.

Oscar grows up obsessed with science fiction and fantasy stories and dreams of becoming a writer. His odd hobby, lack of intelligence, and poor appearance make him unpopular with his classmates and with girls. When he moves to the Dominican Republic as a young adult, he befriends a prostitute, but her jealous policeman boyfriend and his goons terrorize, kidnap, and beat Oscar.

Diaz sets the story against the backdrop of the corrupt Trujillo regime, which ruled the Dominican Republic through intimidation and violence for decades.

I enjoyed Diaz's slow reveal of the family history and how the curse affected multiple generations. I enjoyed the characters and the events that triggered their behavior. And I appreciated Oscar's dilemma, as I sometimes felt alone and isolated in my childhood, retreating to a world of comics and science fiction stories.

You may find barriers to reading this book. Because Oscar is obsessed with comics, science fiction, and fantasy, the narration contains numerous references to Lord of the Rings, Dune, Watchmen, and other nerdish works. If you are unfamiliar with these materials, you will miss the metaphors. He also frequently mixes Spanish words and phrases among the mostly English text. Although the reader can often figure out the meaning from the context, I kept a Spanish-English nearby as I read the book. Finally, Diaz inserts frequent footnotes, asking the reader to pause and read more details or background before continuing with the story.

"Wao" won the Pulitzer Prize for Fiction for its moving story and depiction of Dominican culture. It is not for everyone, but it is worth taking a chance to read.


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.


Edith Wharton's novel "The Age of Innocence" takes the reader into a love triangle in late nineteenth-century New York high society.

Newland Archer and May Welland each come from wealthy families of New York's social elite. Their engagement made complete sense. The two are happy in their traditional roles until Newland meets and falls in love with May's cousin, Ellen Olenska, the estranged wife of a European Count. Ellen is everything May is not. While May embraces the constraints and expectations of society and her role in it, Ellen is honest and bohemian and worries very little about what others think.

Wharton takes us through years in the lives of our protagonists, struggling to do the right thing and stay true to themselves. Newland, May, and Ellen want to be honorable. They each have a different perspective on life, and "honor" is often defined by the world in which they live - a world that is frequently hypocritical. Wharton's wit shines when describing the pretentiousness of the wealthy elite, as in the following passage about an opera:

"She sang, of course, 'M'ama!' and not 'he loves me,' since an unalterable and unquestioned law of the musical world required that the German text of French operas sung by Swedish artists should be translated into Italian for the clearer understanding of English-speaking audiences."

or the conformity that society imposes on them, as in the following:

"In reality they all lived in a kind of hieroglyphic world, where the real thing was never said or done or even thought, but only represented by a set of arbitrary signs."

The author builds three fascinating characters who each deal with their lot differently.

Archer is weak and conflicted, never knowing whether he desires the stability of May or the excitement of Ellen.

May was innocent and understanding prior to her marriage but manipulative afterward. She knows her husband's weaknesses but also recognizes his sacrifices.

Ellen lives her life as she sees fit but confirms when she recognizes that rebellion would hurt those around her. "I can't love you unless I give you up," she tells Archer.

The final chapter moves ahead a generation and highlights the changes in society's expectations as the nineteenth century moves into the twentieth.

"The Age of Innocence" is a story of societal structure, patterns, and expectations and how they often conflict with our desires. It articulates the emotion and frustration of trying to serve two masters.


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.


<< Older Posts | Newer Posts >>