Episode 817

Justine Cocchi on Building Applications using Azure Cosmos DB

Justine Cocchi is a PM on the Azure CosmosDB team. She describes CosmosDB, its features, how it handles reliability and scalability, and how to integrate it into your applications.


WillieNelson2024How often do we see three legendary performers on the same bill? We saw precisely that Saturday evening at Tinley Park's Credit Union Amphitheatre. Willie Nelson, Bob Dylan, and John Mellencamp each played a set to a sold-out audience. The three performed as part of the Outlaw Music Festival, which is traveling across the United States.

My evening began with John Mellencamp (blues/soul band Southern Avenue played a set before we arrived). The 71-year-old singer/songwriter was the youngest of the three headliners. Unsurprisingly, his was also the most energetic performance. He packed many of his hits into an hour set, including a solo acoustic version of "Jack and Diane," in which he mocked the audience (they skipped the second verse and went straight to the chorus) and himself ("I'm going to sing the second verse, even though it sucks.")

BobDylan2024Bob Dylan followed with a set in which he decided to forego his guitar and play the piano, accompanied by an excellent ensemble of musicians. I saw Dylan perform seventeen years ago in Ypsilanti, MI, at a show where he seemed to ignore the audience. On this night, he did acknowledge the audience occasionally despite displaying his known shyness. Bob Dylan's strength has always been his songwriting, but he also mixed in covers by Chuck Berry, The Fleetwoods, and the Grateful Dead.

Willie Nelson headlined the evening. The audience's excitement was palpable when he walked slowly onto the stage. At 93 years, Nelson chooses to sit during his show, and his vocal range is less than it once was. Willie's guitar contained the scars of years of experience - not unlike his body. His hands are gnarled, and numerous wrinkles crease his face. But his joy in performing was apparent, and his guitar solos still impressed. Nelson took his time, singing each song with care. If he skipped some of the high notes, he showed emotion in his singing. His guitarist took the lead on two songs, and I wondered if this was Willie's son Lukas with eyeglasses and his long hair cut short or it may have been Waylon Payne. I could see a resemblance to each, but no one introduced the band to confirm this. On "Will the Circle Be Unbroken," Southern Avenue returned to the stage to sing backup.

JohnMellencamp2024I find it amazing that Nobel laureate Bob Dylan was the warmup act, but that is what one gets when Willie Nelson headlines. Even more impressive was that John Mellencamp, who possesses countless awards, platinum albums, and top 10 singles, was the warmup act to the warmup act.

Four hours of music left us exhausted and satisfied. We enjoyed every act, and I finally saw the iconic Willie Nelson in concert!


Wallace Stegner's 1970 novel "Angle of Repose" tells a story within a story.

After losing his leg, suffering through a debilitating disease, and divorcing his wife, retired history professor Lyman Ward decides to research and write about the life of his grandmother - nineteenth-century author Susan Burling Ward. Mrs. Ward suffered through a difficult marriage and financial issues as she and her husband moved across the frontiers of the western United States and Mexico.

Susan and her husband Oliver are both good people, but Oliver trusts too much, and others take advantage of him. This trait repeatedly leads to financial failures, which strains the couple's relationship.

Stegner alternates between the present-day troubles of author/narrator Lyman and the struggles of the female protagonist about whom he writes. The result is two engaging stories of people trying to maintain control of their lives. Each finds temporary escape in their writing, but it is not enough.

Lyman learns about himself by studying his grandmother.

Stegner based the character of Susan Ward on the real-life Mary Hallock Foote. He included many of Foote's letters in the book, attributing them to Susan.

The title refers to the angle at which dirt and stones settle when they fall down a slope. This may describe the canals on which the engineer Oliver worked. Stegner repeats the phrase multiple times in the book and uses this as a metaphor for the couple's relationship:

"What interests me in all these papers is not Susan Burling Ward the novelist and illustrator, and not Oliver Ward the engineer, and not the West they spend their lives in. What really interests me is how two such unlike particles clung together, and under what strains, rolling downhill into their future until they reached the angle of repose where I knew them."

Although the story lacks action, it makes up for it with the development of the characters and the parallels between grandmother and grandson nearly a century apart.


GCast 182:

Using Azure AI Document Intelligence Studio Custom Classification Model

The Custom Classification Model allows you to automatically determine a document type. This video shows how to configure this model using Azure AI Document Intelligence Studio.


Episode 816

Bill Sempf on Trends in Application Security

Bill Sempf describes the security issues of which we need to be vigilant when building software.

Links:
https://owasp.org/www-project-proactive-controls/
https://owasp.org/
https://bsides.org/


August 2024 Gratitudes

Comments [0]

9/1
Today I am grateful to attend the Chicago Jazz Festival yesterday.

8/30
Today I am grateful that I survived a month in which I overcommitted.

8/29
Today I am grateful to mentor a successful Artificial Intelligence workshop this week and for all those who helped me prepare.

8/28
Today I am grateful that I won my appeal, and my Google Ads account is no longer suspended.

8/27
Today I am grateful to the friend who gifted me some new clothes last week.

8/26
Today I am grateful to see "The House of Ideas" at the City Lit Theatre yesterday.

8/25
Today I am grateful to talk with Mike this morning for the first time in forever.

8/24
Today I am grateful to see Terrance Simien in concert last night in Berwyn.

8/23
Today I am grateful to deliver a well-received presentation at the Cybersecurity Summit yesterday.

8/22
Today I am grateful for kind words from my manager this morning.

8/21
Today I am grateful to remove some dishonest people from my life.

8/20
Today I am grateful to see a Georgia O'Keefe exhibit at the Art Institute of Chicago yesterday.

8/19
Today I am grateful for breakfast with friends I first met 44 years ago.

8/18
Today I am grateful for:
- to celebrate at my son's wedding last night
- my new daughter-in-law

8/17
Today I am grateful for all the family and friends who have come to Chicago to celebrate my son's marriage.

8/16
Today I am grateful to deliver a presentation on Azure Monitoring and Application Insights to the Greater Lansing .NET User Group last night

8/15
Today I am grateful to see Back to the Future: The Musical last night.

8/14
Today I am grateful for an outdoor drink and music at Boat Drinks next to Burnham Harbor last night.

8/13
Today I am grateful to the bicycle shop owner who fixed my seat and did not charge me.

8/12
Today I am grateful
- to see the Chicago Air and Water Show this weekend
- to attend the Printer's Row Art Fair yesterday

8/11
Today I am grateful to attend my building's annual summer party yesterday.

8/10
Today I am grateful to see a jazz concert last night at Fred Anderson Park

8/9
Today I am grateful:
- to learn a lot at an AI workshop taught by Randy and Josh
- to attend the Record Row concert series at Willie Dixon's Blues Garden for the first time this summer

8/8
Today I am grateful to attend a Bush concert with Daniel last night.

8/7
Today I am grateful for a new tire on my car.

8/6
Today I am grateful to Manny, the tow truck driver, who got me to the tire repair place yesterday.

8/5
Today I am grateful for a walk around the Burnham Wildlife Corridor yesterday.


TheHouseOfIdeasCast2024As one who read comic books well into my adult life, I was excited to learn about Mark Pracht's "Four-Color Trilogy" - a series of three plays based on the history of comic books. Two years ago, I loved "The Mark of Kane" - the story of the 1939 creation of Batman by Bill Finger and Bob Kane, who took credit for many of Finger's ideas. Pracht followed this success a year later with "Seduction of the Innocence," telling of the censorship that nearly destroyed the comic industry in the 1950s. The final entry in the trilogy - "The House of Ideas" - is currently in preview and runs through October 6. I caught a preview performance on Sunday afternoon. All three shows premiered at the City Lit Theatre - an intimate venue in Chicago's Edgewater neighborhood.

"The House of Ideas" follows Stan Lee and Jack Kirby, whose collaboration helped revive the comic book superhero genre in the early 1960s. The duo created memorable characters, including The Fantastic Four, Iron Man, the Mighty Thor, and the Incredible Hulk. Lee was an editor at the company that would become Marvel Comics. Kirby was an artist already well-known as the co-creator of Captain America two decades earlier.

Bryan Breau and Brian Plocharczyk excel as Lee and Kirby, respectively. Breau plays up Lee's optimism and showmanship, while Plocharczyk brings out Kirby's hard edges, honed by the artist's upbringing on the Lower East Side of New York City. As the 1960s turn into the 70s, Breau dons a wig and mustache to reflect Lee's tendency to adopt the latest fashions, while Plocharczyk's Kirby maintains the same haircut and attitude throughout the show.

Rivalry and a desire to achieve credit they feel is owed them strain the pair's relationship. Still, each respects his partner, and the actors do an excellent job transmitting these conflicting emotions to the audience.

Former City Lit Artistic Director Terry McCabe returned to direct this play, which featured low-resolution projections of old comic book covers and period photos, enhancing the mood of each scene.

Mark Pracht's trilogy ended with a bang. One can only hope he decides to turn it into a tetralogy.


Episode 815

Prasanna Pendse on Getting AI into Production

Prasanna Pendse is the Global Director fofr AI Strategy at Thoughtworks. He discusses how his customers are using AI effectively, some of the challenges of getting from an AI Proof-of-Concept to deploying an enterprise application, and how we can overcome those challenges.


TerranceSimien2024How much joy does zydeco music bring?

Terrance Simien never stopped smiling throughout his 2-hour performance Friday evening at Fitzgerald's nightclub in Berwyn.

Simien began the evening with a few short songs before announcing that it was time to get real with some zydeco music. He took out his accordion while his bandmate strapped on a washboard, and the tempo picked up. The audience responded, moving from their seats to the dance floor.

Simien was born into an old Louisiana Creole family and began playing zydeco music at an early age. Five decades and two Grammy Awards later, he is still loving it. On this night, he paused only occasionally to highlight his backing band - drums, keyboards, bass guitar, saxophone, and trumpet - or to show off his Grammy trophy or toss beads into the crowd. All six instrumentalists were excellent, but the bass player and saxophone player particularly impressed.

He interspersed with his compositions cover songs, such as Bob Dylan's "I Shall Be Released," Bob Marley's "No Woman, No Cry," Stephen Stills's "Love the One You're With" (he told us that one was for the hippies in the audience), and a soulful version of Professor Longhair's "Big Chief."

At one point, half the band left the stage and snaked through the audience, playing their instruments. It felt like a New Orleans festival.

For an encore, the band pleased with "Amazing Grace," followed by "Shout" and a medley of "Down by the Riverside," "Amen," and "This Little Light of Mine."

By the end of the evening, everyone was smiling.

Photos


Ignatius Reilly is eccentric, arrogant, judgmental, overweight, dishonest, and lazy. But he is also intelligent and funny. At 30 years old, he still lives with his alcoholic mother, even though each holds the other in contempt. John Kennedy Toole's "A Confederacy of Dunces" tells Ignatius's story.

Toole tells the story with humor in his narration and dialogue.

He populates this story with bizarre characters, such as:

- Myrna Minkoff: A college friend of Ignatius. The two exchange letters in which they berate one another.
- Angelo Mancuso: A policeman who is punished for not finding and arresting enough people for vice offenses.
- Gus Levy: The owner of Levy Pants, where Ignatius briefly works. His wife henpecks him for not growing his father's business.

Reilly's world is filled with self-inflicted chaos. He is clever enough to blame the world for his misfortune, but he continues to get himself in trouble. When an angry customer complains that Reilly's employer shipped low-quality pants, Reilly sends him an insulting letter with Mr. Levy's forged signature at the bottom. While employed as a hot dog vendor, Riley eats nearly every dog in his cart, then tells his boss that he was robbed and beaten. Reilly frequently goes to the movies, mostly to shout his critique at the screen.

According to Ignatius: "Apparently, I lack some particular perversion which today's employer is seeking."

A book rarely comes to light so long after its completion. Toole killed himself in 1969, presumably due to his lack of success in finding someone to appreciate his work. "Confederacy" went unpublished until 1980, eleven years after the author's death. The book's popularity rose quickly, winning the 1981 Pulitzer Prize.

Although unknown during Toole's life, this novel is worth a read for its humor and outrageous philosophy.



GCast 181:

Using the .NET SDK to Create and Manage .NET projects

Learn how to use the .NET SDK to create, build, and run .NET projects from the command line.


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.


<< Older Posts