J. Robert Oppenheimer led the Manhattan Project, which developed the Atomic Bomb that the US Military dropped on the cities of Hiroshima and Nagasaki at the end of World War II. The Japanese surrendered less than a week later. This project alone would have cemented Oppenheimer's place in history. But his story is far more complex.

Kai Bird and Martin J. Sherwin's 2005 biography "American Prometheus: The Triumph and Tragedy of J Robert Oppenheimer" tells this story. The book follows Oppenheimer's life, from his privileged upbringing to his rise to become one of the world's most celebrated physicists to the attacks by the FBI, which led to his downfall.

Robert Oppenheimer was a brilliant student at Harvard, excelling in every course he took. He traveled to Europe after graduation to study under Max Born and many of the most famous scientists of the day, where he picked up the nickname "Oppy." He was an awkward student but became a charismatic socialite a few years later when he founded the theoretical physics program at the University of California in Berkeley. Based on his academic reputation, the US Government asked him to lead the Manhattan Project, charged with creating an atomic bomb before Hitler's Germany could do so. His success in developing the bomb (or "the gadget," as his team often called it) brought him fame following the war.

However, with increased Cold War tensions between the United States and the Soviet Union, the US Government began questioning Oppenheimer's loyalty.

While at Berkely, Oppenheimer made no secret of his leftist political leanings. Although he never joined the Communist Party, he befriended many Communists, including his brother Frank and wife Kitty. In those days, he attended meetings of organizations sympathetic to Soviet Communism. But, like many American Communists of the time, Robert became disenchanted with Soviet Communism after Stalin signed a non-aggression pact with Hitler's Germany in 1939. Although Oppy went on to express loyalty to the US and helped create a weapon to use in the war, the CIA used his pre-war associations to revoke his security clearance during the Cold War. It did not help that Oppenheimer differed publicly with the government's stance on nuclear weapon proliferation and the development of the H-Bomb. This was a time in American history when Senator Joseph McCarthy rose to power by stoking the fear of Communism in the public. An incident in which a friend asked Oppenheimer to reveal nuclear secrets to the Soviets compounded his troubles. Oppenheimer refused but misreported the incident to authorities - a mistake that would prove costly during his postwar interrogation.

Much of "American Prometheus" tells of Robert's fight to retain his reputation while the FBI and the McCarthyites tried to tear him down. The book's climax focuses on the postwar hearing designed to revoke Robert's security clearance.

Bird and Sherwin do an excellent job of relating the events that formed Oppenheimer's opinions and character and highlighting key points in his life. Oppy had his flaws but likely did not deserve the politically motivated attacks brought on by those in power after the war.

This book won the 2006 Pulitzer Prize for Biography or Autobiography, and Christopher Nolan adapted it into the 2023 film "Oppenheimer." Oppenheimer's story is one of triumph and tragedy, and "Oppenheimer" chronicles his rise and fall.

Some stories are best told indirectly. Elizabeth Strout's 2008 novel "Olive Kitteridge" tells the story of the title character primarily through the eyes of others. The book consists of thirteen short stories, most of which take place in the small fictional town of Crosby, Maine. Olive appears in almost every tale but is seldom the main character and sometimes makes only a fleeting appearance.

Olive is abrasive, impatient, self-absorbed, and disillusioned. She sees herself as a victim and blames others for her misery. In contrast, the Crosby residents enjoy the company of her affable husband, Henry.

The stories are loosely connected and can be read independently - often restating facts made clear in earlier stories. But continuity runs through them all. Each story appears chronologically, and some contain flashbacks that reveal character motivations, and some flashbacks clarify earlier reports. The opening story hints at an affair between Olive and another teacher, who later dies in an automobile accident. In the eleventh story, we learn the details of this relationship.

"Olive Kitteridge" is a look inside the lives of those dwelling in a small town. We see their troubles, thoughts, and emotions. We see their relationships and their failed marriages. We see Olive as others see her and as she sees herself.

The stories contain sadness but also a bit of hope. And Olive begins to discover empathy as she ages. She is slightly less terrible in the last story than in the first.

The following sums up Olive's outlook:

"She didn't like to be alone. Even more, she didn't like being with people."

Episode 767

Chris Woodruff on Career and Life Advice from an Old Guy in Tech

Chris Woodruff has spent a few decades working in the technology industry. He discusses how to make yourself unique and advance your career by investing in human skills.

"Trust" by Hernan Diaz

Comments [0]

How do we know if what we hear is the truth?

In his 2023 novel "Trust," author Hernan Diaz explores this question by telling the same story from four different perspectives. On one level, it is about the ways that the powerful can manipulate money and markets. On a higher level, it is about how much we can rely on others to tell the truth.

"Trust" tells the story of Andrew Vellar and his wife Mildred. Andrew was a wealthy American businessman who became the richest man in the world - first by investing in the stock market during the economic boom of the 1920s; then by selling short just prior to the crash of 1929. Mildred was a quiet patron of the arts who focused on philanthropy. Andrew and Mildred possessed reserved personalities and their marriage was civil, but not passionate. The couple bore no children before Mildred died at a sanitarium in Switzerland. Everyone appears to agree on these facts. But many other "facts" are skewed, omitted, or falsified in the various versions.

The book begins with a novel by Harold Vanner about the life of Andrew and Mildred. He changes their names, but their identities are apparent to anyone who reads the newspapers. This telling suggests that Andrew is the cause of both the 1929 stock market crash and the death of Mildred, who lost her mind before she died.

Next, we read Andrew's unfinished autobiography, in which he persuades the reader that his financial dealings brought about the prosperity of the 1920s and softened the Depression following the 1929 crash. This version contradicts Vanner's tale but would please Ayn Rand.

Section three is told from the perspective of Ida Partenza, the ghostwriter who assisted Andrew with his autobiography. She points out the tycoon's desire to present a positive image of himself and his willingness to make up stories that support his views.

Finally, we read some of Mildred's journals, written during the final months of her life. The writing is clear, suggesting she never lost her mind; and she reveals that she suggested many of Andrew's investment strategies.

Slowly, Diaz peels away layers of the truth. But it is never clear what are facts and what is perception. Each narrator has their own biases. Vanner wants to sell books; Andrew hopes to clear his name; and Partenza is influenced by her upbringing (her father was an anarchist and a Marxist). Mildred's writing seems the most plausible, but we cannot know for sure if she is also an unreliable narrator. Each section calls into doubt the preceding chapter.

As consumers of media, we face the same dilemma. Different media outlets may report the same incident differently - sometimes by adding fabrications or editorial interpretations and sometimes by omitting relevant facts. All we can do is consider the source of the information and try to understand the biases of that source.

"Trust" is one story with four points of view, four voices, and four genres. The inconsistencies remind us that we are sometimes wise to have trust issues.

Chris Kattan 2023Many stand-up comics come prepared with lots of material and a highly polished delivery. Not Chris Kattan. The former Saturday Night Live regular stood on the City Winery stage Wednesday evening, told a few stories, chatted with the audience, and answered questions.

Kattan's show was less polished but more personal than most comics. The stories he told did not sound rehearsed but came across as spontaneous. He told of the first time he met Bill Murray, who picked him up (Chris is a petite guy) and walked away without saying a word. He told of introducing himself to Prince and how he could not understand what Prince was saying. He told a story of sliding off the back of a shirtless Dwayne "The Rock" Johnson during an SNL skit.

He slipped into his Mango personality - a popular recurring character from his SNL days and he opened with a dance to light show and music that recalled the cocky but incompetent pickup artist that was half of the "Roxbury Guys" that Kattan performed repeatedly with Will Ferrell. "If you came to see that, you can now leave," he quipped.

He also announced his engagement and pointed to his fiancé, who sat right behind me.

Occasionally, he engaged someone in the audience and started a conversation.

It was entertaining enough to hold my attention but unremarkable. When his prepared / unprepared material ended, he invited audience members to ask questions. At this point, he became personable, patient, and funny. Surprisingly, this was the best part of the show. The Q&A session contained the spontaneity of an improv show without the absurdity.

Chris Kattan struck me as the kind of person with whom I could have a cup of coffee and a long conversation. That role may suit him better than being a comic star.

Microsoft Outlook - like most email programs - manages junk mail for you. Junk mail can be unwanted messages or messages from unwelcome senders or email system or messages with "bad" content or headers.

I was frustrated because Microsoft Outlook kept sending my friend's emails into my junk mail folder. It sometimes took me days to see an email - much less respond. I knew that anything from my friend was probably not junk, but Outlook did not know this. Other friends reported the same thing sometimes happened to emails that I spent.

Outlook automatically takes care of identifying potential junk mail and moving it into a built-in "Junk" folder.

Outlook allows you to change the rules for identifying junk mail, but the solution is not intuitive.

Open Microsoft Outlook. On the "Home" ribbon, you will find the "Junk" button, as shown in Fig. 1.

Junk Button
Fig. 1

Click "Junk" button to expand the menu, as shown in Fig. 2 and select "Junk E-mail Options" to open the "Junk Email Options" dialog, as shown in Fig. 3.

Junk Mail Menu
Fig. 2

Junk Email Options Dialog
Fig. 3

The "Options" tab allows you to set how aggressive you want Outlook to be about identifying junk mail. Setting this to "Low" or "High" tells Outlook to use Machine Learning to identify junk mail. Outlook's algorithm ML will sometimes make mistakes. Setting it to "Low" may miss some junk mail. Stetting it to "High" may identify some legitimate mail as "Junk."

"No Automatic Filtering" and "Safe Lists" only options do not use Machine Learning. Rather, explicit rules determine where mail should go.

By default, Outlook moves junk mail into the "Junk email" folder, giving you the opportunity to review these items before deciding whether to delete them. But, you can opt to automatically delete any email identified as junk by checking the "Permanently delete suspected junk email" checkbox.

The "Safe Senders" tab (Fig. 4) allows you to add email addresses of people you trust.

Safe Senders Tab
Fig. 4

Emails received from these senders will not be considered junk mail, even if they contain a body or header that Outlook would otherwise identify them as junk.

The "Blocked Senders" tab (Fig. 5) is just the opposite of Safe Senders.

Blocked Senders Tab
Fig. 5

Emails received from these senders will always be considered junk mail, even if they contain a body or header that Outlook would otherwise identify them as not junk.

The "International" tab (Fig. 6) allows you to block emails from a top-level domain or containing specified character sets.

International Tab
Fig. 6

For example, if I am plagued with bogus email from Russia and I feel confident I will never receive any legitimate email from Russia, I can block all emails with with an address ending in ".ru".

Additionally, if I often get spam emails written in a Japanese character set and I do not know anyone who writes Japanese, I can choose to block all emails that contain the Japanese character set encoding.

How you configure your junk email settings is up to you and your comfort level. This article shows how to configure Junk Mail settings in Microsoft Outlook.

GCast 158:

Azure Application Insights Alerts

Learn about Azure Application Insights Alerts and how to create and manage them.

Episode 766

Mike Richter on Taking AI Apps to Production on Azure

Partner Solution Architect Mike Richter discusses deploying an AI application to production in Microsoft Azure.

The cast of The Innocence of SeductionLast year, I saw and loved Mark Pracht's "The Mark of Kane" at City Lit Theater in Lakeview. That play told the story of Bob Kane and Bill Finger's creation of the iconic Batman character and Kane's work to take all the credit. I enjoyed it enough that I did not hesitate when City Lit announced Pracht's play "The Innocence of Seduction" - the second in his promised "Four-Color Trilogy," which focuses on the history of comic books.

"Innocence" tells of the censorship of comic books in the 1950s, when US government officials were actively destroying careers and lives in the name of patriotism and decency. The play takes its title from Dr. Fredric Wertham's 1954 book "Seduction of the Innocence," which blamed juvenile delinquency on the comic book industry. According to Wertham, reading comic books caused children to become violent, rebellious, and amoral. Congress took note and turned public sentiment against comic book publishers. The issue resulted in establishing The Comics Code Authority (CCA), which approved only comics that met an arbitrary level of "decency." Because no distributors would accept comics without the code's seal, this meant the end of crime comics and horror comics. The move particularly affected William Gaines and EC Comics, which pioneered titles such as "Tales from the Crypt" and "Crime SuspenStories."

This play focuses on the rise and fall of EC and Gaines's struggle against the CCA and its demagogue leader, Judge Charles Murphy. Other real-life characters appear, such as gay, black artist Matt Baker (played by Brian Bradford) and female artist Janice Valleau (played by Megan Clarke); but it is Sean Harklerode as Gaines who steals the show. The neurotic and passionate publisher dominates every scene in which he appears. All these characters were real people affected by the events of their times. This production gave depth to those characters.

A creepy Wertham wandered in and out of scenes, casting judgment on the comic medium. Often, visuals from comic books appeared on an oversized television at the back of the set.

With 15 cast members and 22 characters, this is the largest production I have seen at City Lit. The cast nearly outnumbered the audience, which only numbered about 25 for this preview performance - small, even for this tiny theater on the second floor of a church. However, the sparse turnout did not dampen the performers' enthusiasm or the production's quality.

"The Innocence of Seduction" is filled with humor and tragedy. It deserves a larger audience.

Miles Roby grew up in Empire Falls, Maine. He has seen the place transition from a thriving textile and lumber center to a city trapped in economic despair. The factories closed years ago, and those who remain have false hope that the industries, employment, and prosperous economy will return. Miles's mother hoped he would escape when she sent him away to college, but he dropped out and returned to care for her in the weeks before she died. That was long ago, and Miles is still here.

Richard Russo's 2001 novel "Empire Falls" is mostly Miles's story. But it is also the story of a city weathered by adversity and of the people who remained.

The title refers to the location where most of the story takes place, but it may also refer to the fall of an empire. The city itself is a fallen empire, and so is its founding family - The Whitings. Dowager Francine Whiting is currently the family matriarch who still holds much of the town's depressed property. She owns almost everything in the city, which leads her to assume that she also owns its residents. Francine is one of the story's villains - manipulating those around her and making life difficult for Miles.

The town has many dark secrets. Terrible fathers raise sons who grow up to be terrible fathers and husbands, abusing their wives and instilling poor values in their children, perpetuating a cycle that has continued for generations.

Miles attempts to break this cycle, despite being surrounded by mediocrity. His father is an unkempt slacker whose greatest talent is getting others to pay for his drinks and his annual trip to Key West. Miles's wife Janine has left him and plans to marry arrogant, dishonest Walt Comeau, primarily because sex with Walt is so much better than with Miles. Miles's daughter Tick is artistic and has a good heart but suffers from the angst of trying to fit in with the popular kids at her high school - particularly her ex-boyfriend Zack Minty. Zack is a star football player and a bully who reserves his worst torments for Tick's extremely introverted friend John Voss. Zack's father, Jimmy, is Miles's other antagonist. Jimmy - Miles's former high school classmate - is currently a policeman, lacking in wit and integrity. He insists that he and Miles were once friends, but Miles wants nothing to do with him. Miles perseveres, trying his best to lead a decent life.

The book introduces a lot of characters and a lot of character backstories. But this is necessary because these characters drive the story more than the plot.

The plot tends to move slowly until an unexpectedly violent climax at the end.

Russo fills in gaps with decades-old flashbacks, revealing the history of the families and the town and answering questions raised previously. Francine's husband, Charles Whiting, rejected the ruthlessness of his family's business practices and considered escaping from a loveless marriage; but he was too weak to succeed at either. He temporarily fled to Mexico before returning to Empire Falls and taking his own life.

"Empire Falls" raises questions about how much control we have over our lives. Do we accept the fate handed to us, or do we work to forge our own path? Miles is different from most of his narrow-minded neighbors; but he suffers from the same frailty - he lacks the courage to leave a dying town and begin his life again. It is not until the violent incident at the end that he begins to examine his life options.

This book paints an unflattering picture of American backwaters. But Russo tells the story well, and it resonated with me.

Leigh Bardugo's "Crooked Kingdom" concludes the story begun in "Six of Crows," which expands on the universe she created in her "Shadow and Bone" trilogy.

"Six" ended on a cliffhanger. After Kaz Brekker and his crew broke a scientist out of a maximum security prison, evil gazillionaire Jan Van Eck reneged on his deal. Van Eck kidnaps Inja to coerce Kaz into delivering the scientist with the secret to the formula to control the mystical Grisha. Kaz sets out to rescue Inja with his remaining crew - a band of misfits, each possessing a unique talent. He also seeks revenge against those who have wronged him.

It sounds complicated because it is. Kaz is a brilliant strategist, but Van Eck keeps thwarting his well-laid plans, forcing Kez to adjust his plans, which causes Kaz to respond, and so on. It is a fun game of cat-and-mouse with many twists and turns.

I do not recommend reading this book except as a part of the duology. Bardugo introduces her characters with little explanation of who they are.

This is the strongest of the five books I have read in this series. Bardugo does an excellent job building a plot with multiple twists and turns. She keeps us guessing as the heroes and villains play a game of mental leapfrog. She creates the characters and the relationships between them, making the reader care about each of them. One by one, Bardugo tells the backstory of each main character introduced in "Six of Crows," revealing their motivation and providing a satisfying depth to each of them.

As a bonus, a few characters from the original trilogy also make an appearance.

"Crooked Kingdom" contains multiple adventures, multiple love stories, and multiple action sequences. It includes joy and danger and a single great tragedy. It is smart, and it is fun! It is a solid finish to this duology.

Transactable Containers Videos

Comments [0]

Episode 765

Juan Llovet de Casso on Microsoft Fabric

Architect Juan Llove de Casso discusses Microsoft Fabric a unified solution that allows enterprises to perform analytics using multiple tools and multiple sources of data.




August 2023 Gratitudes

Comments [0]

Today I am grateful to see the new Mission Impossible movie in a theater this weekend.

Today I am grateful that I almost always wake up before my alarm.

Today I am grateful for smart people who are willing to share their knowledge.

Today I am grateful I was finally able to renew my password manager subscription.

Today I am grateful for:
- an excellent concert last night featuring Lenny White, Buster Williams, and Cyrus Chestnut
- seeing the Immersive Mozart multimedia show

Today I am grateful to catch up with Kevin yesterday.

Today I am grateful for:
- an excellent concert at Jazz Showcase last night featuring the Charles McPherson Quartet
- a visit to the Printers Row Art Fair yesterday afternoon

Today I am grateful to finally sort through all those papers and mail on top of my kitchen table.

Today I am grateful for the corned beef at Manny's Deli

Today I am grateful to sip Drambuie at home on a quiet evening

Today I am grateful to see the "Art on the Mart" multimedia show last night outside the Merchandise Mart.

Today I am grateful for:
- Lunch with Barbara and Jack in San Juan Capistrano yesterday
- Seeing my first game at Petco Park with Scott last night

Today I am grateful for:
- Lunch with Tim in Carlsbad yesterday
- An exciting baseball game on my first visit to Angels Stadium last night

Today I am grateful for
- an afternoon with Madeleine in Beverly Grove
- my first visit to Dodger Stadium

Today I am grateful for:
- a visit to Disneyland with my son yesterday
- beers with Hattan last night

Today I am grateful for
- Breakfast with Andy yesterday
- a short vacation in southern California

Today I am grateful to see Goo Goo Dolls and A.O.R. in concert last night.

Today I am grateful to volunteer for the ChooseU Breaking Barriers program yesterday.

Today I am grateful to catch up with Esteban yesterday.

Today I am grateful I was able to repair my broken kitchen faucet yesterday.

Today I am grateful to attend the Thalia Hall Block Party yesterday in Pilsen

Today I am grateful to go kayaking on the Chicago River yesterday.

Today I am grateful my team has expanded to include all of North and South America, allowing me to work with more people from other countries.

Today I am grateful to Randy for coming to downtown Chicago yesterday and buying me dinner.

Today I am grateful to talk with Barry this morning for the first time in years.

Today I am grateful to take my son and his fiancé out to an excellent French restaurant last night to celebrate his birthday.

Today I am grateful:
- to see Don McLean in concert last night in St. Charles
- to talk with Jose yesterday for the first time in years

Today I am grateful to have Maisie and Zoe stay with me this weekend.

Don McLean1Don McLean has always loved early rock and roll. He showed this love Friday night at the Arcada Theatre in St. Charles. He showed it by performing the music of Elvis Presley, Roy Orbison, and Johnny Cash. He showed it by writing songs like the rockabilly bouncer "American Boys Invented Rock N' Roll." And he showed it in the lyrics of his biggest hit, "American Pie," which lamented the death of Buddy Holly, Ritchie Valens, and the Big Bopper and delivered a commentary on the music and musicians of the 1950s and 1960s.

This tour celebrated the fiftieth anniversary of the release of "American Pie" - the album and the single. McLean's set included only three songs from that album. He sang the haunting "Crossroads," accompanied only by the beautiful piano playing of Tony Migliore. He played my personal favourite, "Vincent," which I count among the most beautiful songs ever written. He closed the set with an extended rendition of "American Pie" and had no trouble encouraging the audience to sing along.

The concert was not long - less than 90 minutes - but it was entertaining. McLean sang and played guitar like he still enjoys it. He noted that some performers do not like to play their hits. "They should not be in show business," he insisted as he played his hits.

In between songs, McLean told stories and engaged the audience with self-deprecation. He admitted he could not hit the high notes when performing The Skyliners' "Since I Don't Have You," but he was not far off the peak range of his younger days. At 77, he still sounds great and still enjoys touring.

The evening contained a mix of originals and covers. We enjoyed a rousing version of Cash's "Folsom Prison Blues," a mournful rendition of Orbison's "Crying," and a rocking performance of Presley's "Little Sister."

I was 11 years old when someone in my family bought a 45RPM record of "American Pie." The song was so long it had to be split between the two sides. I memorized all the words, and we sang them on our car trips. In college, I bought a vinyl copy of the "American Pie" LP and played it until it wore out. But I had never seen Don McLean perform live until tonight. It took fifty years, and it was worth the wait.

Natasha Trethewey's "Native Guard" tells dark stories through beautiful poetry.

The title poem tells the story of a black soldier during the Civil War. His battalion - one of the first to include black Americans - was charged with guarding white Confederate prisoners. These were men who previously owned or would have owned black men.

"We know it is our duty now to keep
white men as prisoners - rebel soldiers,
would-be masters. We're all bondsmen here, each
to the other. Freedom has gotten them
captivity. For us a conscription
we have chosen - jailors to those who still
would have us as slaves. They are cautious, dreading
the sight of us."

Trethewey includes other poems about the history of the South, which she views with mixed emotions. She grew up in Mississippi and Atlanta, but her family was ostracized because her parents were of different races.

She includes poems about her own family - in particular about the death of her mother, who was murdered by her second husband when Natasha was a teenager.

The collection is a chronicle of what it is like to be black in the American South. Despite being a white man in Chicago, every poem resonated with me.

GCast 157:

Using the Application Insights .NET SDK

Learn how to write .NET code to interact with Azure Application Insights.


Developer Velocity (DV) is a broad term that describes how we can increase efficiency for developers building software solutions. It involves using the right tools to write software, implementing automated processes for continuous integration and deployment, properly monitoring our software, providing feedback loops, and any method or tool that removes friction for the development team.

Increasing Developer Velocity means reducing the time to write, debug, test, deploy, and update software. Developer Velocity tends to increase as developers become more agile and innovative.

The term is a bit misleading, as "Developer Velocity" success depends on many people in the organization besides developers. Everyone in the development process can contribute to Developer Velocity.

Many factors go into increasing DV. Hiring and retaining high-quality people, using the right tools, and fostering the right team culture are just a few factors. When we consider each of these, we need to focus on removing barriers, allowing the team to focus on moving forward without getting bogged down by needless friction.


McKinsey describes an "Inner Loop" (activities that directly build and test software) and an "Outer Loop" (supporting activities and non-functional requirements, such as security, deployments, and integrating with other systems). We should seek to automate as much of the outer loop as possible and focus our time and mental activities on the inner loop. The human brain works best on inner loop tasks, but we can use tooling to assist us with this process.

Using Generative AI tools can significantly increase velocity. A study by McKinsey revealed a velocity increase of up to 45%, depending on the complexity of the code involved. GitHub Copilot, GitHub Copilot Chat (currently in preview), and ChatGPT can generate code from human language descriptions. That code is not always perfect, but it is a starting point.

Other AI tools, such as Cognitive Services and OpenAI may allow your applications to take advantage of Artificial Intelligence without the time and effort required to build your own models.

Deploying to a public cloud platform eliminates the need to purchase and maintain an internal data center.

Low-Code/No-Code tools such as Microsoft Power Platform can reduce the time it takes to develop forms, workflows, and other software services and applications.

Azure DevOps, GitHub, and other Application Lifecycle Management (ALM) tools allow you to automate running tests, integrate updates into the existing software system, and deploy code. Automation makes these tasks more repeatable and requires less manual intervention, which tends to reduce errors. An automated Continuous Integration / Continuous Deployment (CI/CD) system is invaluable in maintaining velocity.

Implementing feature flags can save customization time because it allows users and administrators to turn features on and off through configuration without writing custom code.

When onboarding a new developer, it takes time to set up a new computer. Tools like Visual Studio Codespaces and Microsoft Dev Box can reduce that time.

Consider incorporating Open Source Software (OSS) into your applications rather than writing your own components. Many OSS projects exist that may exactly meet your needs and can save you the time of developing them yourself. Many users have already tested popular OSS projects. These projects have the added advantage that contributors add new features and bug fixes, of which you can take advantage.


Automated testing can catch many problems earlier in a product's development lifecycle. The Shift-left approach states that issues are less expensive to resolve the sooner they are discovered. Important types of testing are:

  • Unit testing
  • Integration Testing
  • Acceptance Testing
  • Performance Testing
  • Chaos Testing


Building security into every step of your development process saves time in the long run. Adding security at the end without planning can be expensive, time-consuming, and ineffective. Static Application Security Tests (SAST) involves reviewing the source code for security vulnerabilities. Dynamic Application Security Tests (DAST) involves testing the application externally for security flaws. Automated scanning of source control repositories can detect secrets, such as passwords or connection strings erroneously checked into the repository.

Feedback and Monitoring

A fundamental premise of many agile methodologies is fast feedback. Reducing the time to receive feedback from users and acting on that feedback also increases Developer Velocity.

Feedback can come from users, or you can acquire it via application monitoring and alerting. A comprehensive monitoring strategy will let you know when errors occur or when problems are imminent. Using Azure Monitor and Application Insights, you can configure alerts that notify you when a system's behavior or performance falls outside an acceptable range.

For more information, see the articles and videos I created covering Azure Monitoring.

People and Culture

Team culture can have a significant impact on velocity.

In their article Developer Velocity: How Software Excellence Fuels Business Performance, McKinsey reports "Organizations that enable software teams to experiment, fail, and learn in a safe environment see consistently better results."

Creating a culture like this encourages innovation and helps to retain top workers. Your chances of improving velocity increase with better people.

Using modern tools, as described above, also helps your organization retain talent, as most talented developers would rather spend their time building functional software than maintaining system "plumbing." Providing developers with the right tools not only increases their productivity but can also increase their job satisfaction, leading to longer retention.

Measuring Velocity

McKinsey created the Developer Velocity Index to measure this velocity at the system, team, and individual levels. DORA Metrics, created by the Google Cloud's DevOps Research and Assessment team, can also manage the efficiencies of the software creation process. These metrics can help you understand your goals and where to improve. Regardless of how you approach or measure your velocity, it is crucial to identify the bottlenecks in your development process and seek ways to improve them.

When getting started, Microsoft provides a DV Assessment, which takes about 20 minutes to complete and asks about your organization's architecture, engineering practices, and tooling. Based on your responses, this tool returns a set of scores by category and a set of recommendations.


Developer Velocity is all about rolling out high-quality features and fixes to your users as quickly as possible. Achieving this goal takes a combination of people, tools, and processes; but it leads to higher business performance.

Microsoft Tools

Here are some useful tools from Microsoft:

Downloading Facebook Data

Comments [0]

I have posted information to Facebook for years. I do not know what the law says on the topic, but I believe all that information belongs to me.

I may wish to download my data in order to transfer it to another platform, to search through a subset of the information more easily, or to preserve it before deleting my account. 

Each month, I download all my Facebook posts to easily find my daily gratitude posts, which I post here on the first Sunday of each month.

Facebook allows me to download any or all that information to my local computer, but it is not obvious how to do this.

Here are the steps to download your information from Facebook.

Log into your Facebook account, as shown in Fig. 1

Facebook Home

Fig. 1

From the buttons at the top-right of the page (Fig. 2), click the [Account] button. This will probably have either your profile photo or your initials. 

Top Right Buttons

Fig. 2

Clicking the [Account] button expands the "Account" menu, as shown in Fig. 3.

Account Menu

Fig. 3

From the "Account" menu, select "Settings & privacy" to display the "Settings & privacy" menu, as shown in Fig. 4.

Settings And Privacy Menu

Fig. 4

From the "Settings & privacy" menu, select "Settings" to display the "Settings" page, as shown in Fig. 5.

Settings Page

Fig. 5

At the "Settings" page, click [Download profile information] (Fig. 6) to display the "Downloads" page, as shown in Fig. 7

Download Profile Information Link

Fig. 6

Downloads Page

Fig. 7

Fig. 8 shows the options you may specify for the file you download. You can select the Format, media quality, and date range.

Select File Options

Fig. 8

At the "Format" dropdown, select the format in which you want to receive your data. The options are "HTML" and "JSON".

At the "Media quality", select the quality ("High", "Medium", or "Low") of the images, videos, and audio files you download. Of course, high-quality images are much larger than low-quality images.

At the "Date range" dropdown, select the range of data you wish to download. The dropdown offers a few built-in suggestions, such as "All time", "Last week" and "Last year", but you can select "Custom" and enter your own date range.

Fig. 9 shows the options to select which information you want to download. 

Select Information To Download

Fig. 9

Anything you check will be included in your download (and will increase the file size). You can individually check and uncheck boxes or toggle them all by clicking the "Select all" or "Unselect all" link. For my monthly download, I only want to view posts, so I click "Unselect all"; then check the "Posts" checkbox.

When you have finished entering all your criteria click the [Request a download] button (Fig. 10) at the bottom of the "Downloads" page.

Request A Download Button

Fig. 10

The download does not happen instantly. You will quickly receive a message indicating that someone requested a download of your Facebook information. When Facebook has finished processing your data, you will receive another email, like the one shown in Fig. 11, indicating that your downloaded data is ready.

File Ready Email

Fig. 11

Click the "Available Files" link in this email to open a browser with the "Available files" tab of the "Downloads" page displayed, as shown in Fig. 12.

Available Files Tab

Fig. 12

The files are listed in descending order by date created, so the file you recently requested should be at the top. Click the [Download] button next to your file. You will be prompted to enter your Facebook password (even if you are already logged in), as shown in Fig. 13. This is an extra security measure in case someone accesses your email. 

Re-Enter Password Dialog

Fig. 13

Enter your password and click the [Confirm] button.

The "Download file" confirmation prompt displays, as shown in Fig. 14.

Download File Confirmation

Fig. 14

Click the [Confirm] button to begin downloading your file. This will download a ZIP file containing the information you requested. Extract this file to a new location. Fig. 15 shows the extracted HTML files.

Downloaded Extracted Files

Fig. 15

For an HTML download, you can open index.html in a web browser and navigate it, as you would the Facebook web page. For a JSON file, you may wish to interact with it programmatically or import it into another service or application.

Fig. 16 shows the Index.html file rendered in a browser.

Index In Browser

Fig. 16

In this article, I showed you how to request a download of your Facebook data.

Episode 764

J. Tower on Migrating Legacy ASP.NET Applications

J Tower discusses some of the tools and methods used to migrate ASP.NET applications to .NET Core, including the Visual Studio Upgrade Assistant and YARP (aka "Yet Another Reverse Proxy").






Louise Erdrich's 2002 novel "The Night Watchman" explores life among the Chippewa Indians on the Turtle Mountain Reservation in northern North Dakota in the 1950s.

The story follows the lives of many people living on the reservation.

Patrice is an intelligent, attractive teenage Chippewa girl. Her alcoholic father is mostly absent, and her sister Velma is missing after moving to the Twin Cities and giving birth to a son.

Thomas Wazhask is The Night Watchman of the story's title. He serves as the tribal leader during the day and holds a night job at a local factory. His lack of sleep causes him to hallucinate. Some of his hallucinations appear prophetic - visions of the lost Velma and conversations with Roderick, a boy who died when disciplined while they were at boarding school years earlier.

At the time of the story, Senator Arthur V. Watkins introduces House Concurrent Resolution 108 bill, which proposes to force Native Americans off the reservation and strip them of their ability to govern themselves. If enacted, this resolution would break every treaty made with every tribe in the United States.

Patrice sets out to find her missing sister while Thomas organizes a defense against the Congressional Bill.

The story concerns the lives and trials of those on the reservation. The point of view shifts between the characters, and we learn of their loves and jobs and their struggles with money, and their relationships - all the things that make them real in the readers' eyes. This realness makes the cold logic of Watkins all the more harsh.

Erdrich slowly uncovers layers of the story by recalling past events, then revealing details of those events later. She never reveals some things, such as whether the ghost or Chippewa magic or Thomas's visions are real.

Erdrich does an excellent job of bringing these characters to life and forcing the reader to feel for them, even if we have no experience living as second-class citizens or living in poverty, or fighting the might of the US Government. She incorporates the impending threat of the Termination as a way of disrupting the lives of the tribespeople.

The author based the novel on actual events. Thomas is a fictionalized version of the author's grandfather, and she patterned many of the characters after his contemporaries. The Congressional Resolution was real, as was Senator Watkins.

"The Night Watchman" is a coming-of-age story that explores family, gender, poverty, sex, and how governments affected the lives of Native Americans. It contrasts life on a reservation, where the people strive to maintain their traditional ways, with the coldness of the cities, where their tradition stands no chance.

Joshua Cohen wrote his 2021 novel "The Netanyahus" after a conversation with literary critic and university professor Harold Bloom. Bloom told Cohen of the time he interviewed Benzion Netanyahu for a professorship at Cornell. Cohen took the story, filled in some gaps with his imagination, replaced Bloom's with a fictional character named "Ruben Blum," replaced Cornell with the fictional Corbin College, and the rest is history. Or at least historical fiction.

The Netanyahu of the novel is loud and arrogant and condescending and rude and demands respect. But he is also thoughtful and intelligent when lecturing to an audience or describing his philosophy. He arrives at the Blum home with his wife and three children, and the five of them bring chaos with which the unassuming Blum cannot deal.

The book is more about Blum, who is awkward and trying to establish his life and academic career. His daughter and wife resent him; his parents and in-laws criticize everything from his home decor to his decision to move out of New York; and the faculty at Corbin College patronizes him with microaggressions as the only Jewish person on staff.

Cohen's writings are reminiscent of Vladimir Nabokov and Philip Roth. Like Nabokov, he places his characters in absurd situations and portrays dark humor in their attempts to navigate those situations. Cohen's characters echo Roth's, as his Jewish immigrants alternately assimilate into American society and loudly retain their European heritage. In one scene, Blum's mother-in-law chastises Blum while her husband struggles loudly with his gastrointestinal issues behind a bathroom door. This scene could have been written by Roth.

Cohen tells his story with humor and intelligence. I do not know how much is true, but I know that I enjoyed it.

California Dreaming 2023

Comments [0]

IMG_3980Disneyland in the rain, rescheduled baseball games, a Pacific hurricane, friends and family, and a wedding I did not attend. That was my California trip.

In my quest to attend a home game at the current stadium of every Major League team, I had long planned to visit southern California during a week when the Padres, Angels, and Dodgers were at home. I chose this past weekend because of the teams' schedules and because I could travel with my son Nick, who was attending a wedding in Anaheim.

I planned to see the San Diego Padres on Thursday, the LA Dodgers on Saturday, and the LA Angels on Sunday. The weather had other plans.

Day 1

IMG_3990Waking up at 3:30 AM is challenging but necessary to catch a 7 AM flight. After landing at John Wayne Airport in Orange County and picking up my luggage and rental car, I drove south to Laguna Hills to visit my cousin Barbara and her husband, Jack. The three of us ate lunch at El Adobe - a delicious Mexican restaurant in San Juan Capistrano that was a favourite of former President Richard Nixon. It was the same place I met Barbara when my son Tim and I visited in 2017.

After lunch, I drove down to San Diego, where I checked into a hotel in a building built as a bank almost 100 years ago. One can still see the vaults in the basement.

I met Scott at a downtown bar, and we attended a Padres - Diamondbacks game at Petco Park. It was my first visit to Petco and my first time seeing Scott in person in years. He hired me at Microsoft 10 years ago, then took a new role and moved to the West Coast a year later. I had almost no contact until he hired me again to his team last year.

Day 2

IMG_4013I drove up to Carlsbad Friday morning and met my friend Tim for lunch at (another) Mexican restaurant. We spent a leisurely time catching up and talking about his new role as CTO of an AI startup.

Nick's plan was scheduled to land at 8 PM Friday, so I drove to our hotel in Anaheim, expecting to relax for a few hours before picking him up at the airport. The weather altered my plans.

IMG_4029Hurricane Hilary hit the west coast of Mexico and began to move up the coast. Predictions called for a hurricane or severe tropical storm to strike the Los Angeles area on Saturday and Sunday. Locals expected the worst storm in a century. In anticipation of the tempest, the Angels moved their Sunday game to Saturday afternoon, which disrupted my schedule. I had promised Nick I would take him to the baseball game on Sunday. Now, there was no Sunday game, and the wedding conflicted with Saturday's game, so he could not attend. I decided to go to Angels Stadium Friday evening instead. I had to leave at the top of the seventh inning to drive to the airport. I witnessed a second-inning grand slam by Shohei Ohtani, but I missed the Angels turning a triple play in the bottom of the ninth. The Tampa Bay Rays won in 10 innings.

Day 3

iIMG_4065Saturday, Nick and I ate breakfast together before going our separate ways. He was invited to the afternoon wedding of his high school friend, while I had promised to help my friend's daughter. Madeleine recently moved to Los Angeles, and I offered to take her to lunch. She asked me to help change the battery in her car's key fob while I was here. It turned out to be more complicated than that. After driving to buy a new battery, we discovered the problem was a dead car battery, not the key fob. Neither her car nor my rental car had jumper cables, so we had to leave again to buy a pair. I was able to jump-start the vehicle, and we went to dinner at a nearby restaurant. When we returned, the car would not start again. So, I jumped it again and asked her to run it for 20 minutes before turning it off, then try again in the morning. This worked, and the car is now in good shape.

Sadly, the delay cost me so much time that I did not arrive at Dodgers Stadium until the bottom of the sixth inning. The Dodgers defeated the Marlin - the only home team victory I witnessed this week - and I left my seat less than an hour after arriving. Traffic flow at this stadium is so bad that it took me twice as long to exit the parking lot as I spent watching the game. With the needle approaching "E," I worried I would run out of gas in the middle of the exit lane.

Day 4

IMG_4071The bad weather and the canceled game disrupted our schedule, so Nick and I wondered what to do all day Sunday. The other wedding guests departed in the morning, so Nick and I visited Disneyland. It was Nick's first time at the park and my first visit since I was four. The constant rain diminished the experience, but the poor weather also discouraged others from attending, which minimized crowds and wait times on rides. We spent over five hours at the park. Some highlights were Rise of the Resistance, Smugglers Run, Indiana Jones, and Pirates of the Caribbean.

In the evening, we met my friend Hattan at a local brewery to sample different beers before heading to the hotel and falling asleep almost instantly.

Day 5

IMG_4103I arranged to meet my co-worker Andy for breakfast on Monday. Andy and I have worked together for over a year but never met in person, so it was a treat.

The dire weather predictions turned out to be incorrect. Monday was a beautiful day with sunshine and a few fluffy clouds - precisely what one pictures when envisioning the southern California climate. Nick and I wandered through a quaint neighborhood in Orange, CA. From the many cafes, we chose a Thai restaurant located off an alleyway near the center of town. After lunch, we walked around Chapman University - a small but pretty campus a few blocks away. Nick is a regular listener to a podcast hosted by one of the Chapman assistant basketball coaches. We walked around the gym, but no one seemed to be working that day.

Our flight home was thankfully uneventful. The best part was that the flight attendant allowed Nick to move up from his discounted seat to an empty row in Economy Plus to sit next to me.

Final Thoughts

I returned to work Tuesday morning. I have renewed energy from a few days off but still have jet lag and sleep debt. The trip was a great success. I visited some friends and family I had not seen for a long time; I made a rare visit to Disneyland; I made significant progress on my baseball stadium bucket list (only two stadiums remain); and I spent quality time with my son.

I was fortunate that the weather cooperated, that friends were available to meet, and that I could adjust my schedule to changing situations. I packed a lot into five days.

GCast 156:

Configuring Azure Monitoring for App Services, Functions, and VMs

Learn how to configure Azure App Services, Azure Functions, and Azure Virtual Machines to send data to Azure Application Insights.

O.A.R. in concert 2023I am still tired after staying up late on a weeknight to see the Goo Goo Dolls perform at a sold-out Huntington Bank Pavilion last night. If you have not been to this Pavilion, know it is a wonderful venue next to Lake Michigan on Northerly Island in downtown Chicago. The breeze from the water on a hot summer night is the perfect accompaniment to good music. And the concert delivered plenty of good music.

O.A.R. opened the show with a 90-minute set worthy of any headliner. Before the show, I had not listened to much of their music, but I am now a fan. Their brand of melodic power pop was perfect for fans of the Goo Goo Dolls, who headlined the evening's show.

Goo Goo Dolls in concert 2023I know The Goo Goo Dolls for their combination of rockers, ballads, and anthems, and they played them all this evening. Lead singer/guitarist John Rzeznik is the heart of this band. His voice, energy, and songwriting make the Goo Goo Dolls what they are, and he showed it this evening. Rzeznik has impressive range and stage presence, which allows him to hold the audience without much dialogue between songs. Bassist Robby Takac sang lead on some songs. They were fine, and his enthusiasm elevated the material, but he could not match Rzeznik's voice and song choice. Rzeznik and Takac form the heart of the Dolls and have been with the band since its inception in the late 1980s. Their current touring lineup brought energy to the show that delighted the audience.

Near the end of the set, Rzeznik invited O.A.R. lead singer Marc Roberge back onstage to perform with him a cover of Tom Petty's "I Won't Back Down," which O.A.R. and the Goo Goo Dolls recently released as a single.

The show ended without an encore, the band choosing to extend their set instead without walking offstage. They finished strongly with their big hit, "Iris," as the audience sang along to the chorus.

I was home late and woke up early, and it was worth it!

Machine Learning (ML) concepts can be challenging when you are beginning your journey. The iterative processes and pattern matching involved in creating ML models is less intuitive than the step-by-step instructions executed in sequence or loops that most of us learn as part of our computer science education.

Fortunately, there exist services that help abstract away some of this complexity.

One suite of tools is Azure Machine Learning Studio.

AML Studio allows you to create and manage data, ML models, pipelines, notebooks, Compute resources, and other services integral to machine learning. AML Studio provides a graphical interface for many of these services. Using these tools can accelerate the development of your ML services and can help you to learn some of the concepts.

Before you can start using Azure Machine Learning Studio, you must first create a Machine Learning Workspace. Here are the steps.

Log into the Azure Portal and click the [Create a resource] button (Fig. 1) and search for "Machine Learning", as shown in Fig. 2.

Create A Resource Button

Fig. 1

Search For Machine Learning

Fig. 2

On the "Azure Machine Learning" card, expand the [Create] menu and click [Azure Machine Learning], as shown in Fig. 3.

Azure Machine Learning Card

Fig. 3

The "Create Azure Machine Learning" dialog displays with the "Basics" tab selected, as shown in Fig. 4.

Create AML Workspace Dialog Basics Tab

Fig. 4

This dialog allows you to configure and create an Azure Machine Learning (AML) Workspace.

At the "Subscription" field, select the Azure subscription in which you want to store this AML Workspace. Many of you will have only one subscription.

At the "Resource group" field, select the resource group in which you want to store the Workspace, or click "Create new" to create a new resource group, as shown in Fig 5.

Create New Resource Group Dialog

Fig. 5

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

At the "Region" dropdown, select the region into which you wish to deploy the Workspace.

At the "Storage account" field, select the storage account in which you want to save configuration information about this Workspace, or click "Create new" to open the "Create new storage account" dialog and create a new storage account, as shown in Fig. 6.

Create New Storage Account Dialog

Fig. 6

At the "Key vault" field, select the Key Vault in which you want to store keys and secrets for this Workspace, or click "Create new" to open the "Create new key vault" dialog and create a new Key Vault, as shown in Fig. 7.

Create Key Vault Dialog

Fig. 7

At the "Application insights" field, select the Application Insights account in which to save logs for this Workspace, or click "Create new" to open the "Create new application insights" dialog and create a new Application Insights service, as shown in Fig. 8.

Create App Insights Dialog

Fig. 8

At the "Container registry" field, select the Azure Container Registry in which to create container information related to this Workspace, or click "Create new" to open the "Create new container registry" dialog and create a new Azure Container Registry, as shown in Fig. 9.

Container Registry Dialog

Fig. 9

Information on the "Basics" tab is required. Information on the other tabs ("Networking", "Encryption", "Identity", and "Tags") is optional, as the system sets reasonable defaults for the fields on these tabs. However, you can change the settings on these tabs to suit your needs.

On the "Networking" tab (Fig. 10), you can set how open the is the Workspace to the public Internet.

Create AML Workspace Dialog Networking Tab

Fig. 10

All data stored in ML Workspace is encrypted. On the "Encryption" tab (Fig. 11), you can encrypt using a key provided by Microsoft or use your own key.

Create AML Workspace Dialog Encryption Tab

Fig. 11

On the "Identity" tab (Fig. 12), you can specify the identities used to access data in the Workspace.

Create AML Workspace Dialog Identity Tab

Fig. 12

On the "Tags" tab (Fig. 13), you can add name/value pairs to the Workspace. This does not affect the functionality of the Workspace but may be useful for reporting - particularly if you are a large organization with many workspaces and want to filter or sort your reports.

Create AML Workspace Dialog Tags Tab

Fig. 13

The "Review + create" tab (Fig. 14) lists your choices on the other tabs and displays any errors or missing information.

Create AML Workspace Dialog Review And Create Tab

Fig. 14

You must correct these errors before you may create a Workspace. When you are satisfied with your responses, click the [Create] button to create the Azure Machine Learning Workspace.

After a few seconds, the Azure Machine Learning workspace displays, as shown in Fig. 15.

Azure Machine Learning Workspace Overview Blade

Fig. 15

Click the [Launch studio] button (Fig. 16) to open a new tab, displaying the Machine Learning Studio Home page, as shown in Fig. 17.

Launch Studio Button

Fig. 16

Machine Learning Studio Home Page

Fig. 17

From here, you can connect to data, create Compute services, create Machine Learning solutions, and perform other activities.

In this article, you learned about Azure Machine Learning Studio and how to create an Azure Machine Learning Workspace. In future articles, I will describe how to create some of the services within this Workspace.

Episode 763

Peter Laudati on What the Hack

Cloud Solution Architect Peter Laudati is the co-creator of What-the-Hack. This workshop style teaches technology by allowing students to work through challenges, rather than providing step-by-step instructions. He discusses the history and goals of the program.


"Freakonomics" by Steven D. Levitt and Stephen J. Dubner was such a hit that it inspired a blog, a podcast, and a sequel, which they chose to name "SuperFreakonomics."

Like the original book, "SuperFreakonomics" explores unusual questions and odd correlations and applies the logic of an economist to suggest possible answers.

Some of the topics have little to do with economics.

They discuss the infamous 1964 New York Times story that reported a woman murdered in front of thirty-eight witnesses, none of whom called the police. They show that the passive bystander report was inaccurate and suggest reasons why the police might spread this story.

The authors describe a company in Washington state and its unique approaches to tackling the problems of global warming and devastating hurricanes. One solution involves spraying sulfur particles into the upper atmosphere would deflect sunlight enough to cool the Earth, as it did after some large volcanic eruptions.

They argue that it is safer to drive drunk than to walk drunk (at least for the drunk person), as walking drunk results in fewer deaths per mile.

They interview prostitutes and explore the financial numbers and the risks of the profession. According to the book's data, a Chicago police officer is more likely to have sex with a prostitute than arrest her.

They devote a chapter to the study of altruism, trying to determine if humans are altruistic by nature. Each study presented seems to contradict the one before suggesting alternately that people act in  their own best interest and that they want to help others when they are able. Because economics is mostly about how people respond to incentives (monetary and otherwise), this chapter sought the incentive that motivated people in each study.

Mostly, the book has fun with data and stories about people attacking problems by looking at them in unique ways.

It is not a scholarly treatise, and its conclusions are not dogmatic. But it is an entertaining book that will challenge conventional wisdom and spark thinking and conversation.

Most scientists who study the topic agree that Earth's climate is changing and that human activity significantly impacts the direction and rate of that change.

Bill Gates's 2021 book "How to Avoid a Climate Disaster" addresses this issue. Gates sets the ambitious goal of eliminating greenhouse gases by 2050. This goal means more than just stopping emissions but also includes cleaning up the pollutants already released into the atmosphere.

In Gates's view, much of the solution lies in technological advances, such as creating more efficient machinery for meeting our needs, cleaning up the carbon in the air, or improving the manufacturing processes of our products. We should invest in alternatives to carbon-based fuels, such as coal, used to generate electricity. Biofuels, nuclear power, wind power, and solar power are all viable alternatives with varying short-term costs.

He also recommends policy changes: for example, more government investment in clean energy research and development. Governments can set regulations and incentives and be purchasers of green technologies.

The key is a combination of technologies, policies, and market structure. Gates writes, "...markets, policy, and technology have to work in complementary ways."

The behavioral change will come about either through economic pressure or regulation. Many solutions today have a "Green Tax" - the relative cost of implementing a financial solution relative to the current solution. Often that tax/cost is 2-3 times as high as what we are doing now, which is a significant disincentive for consumers or companies to go green. Governments can enact legislation, but legislation that increases short-term monetary cost is never popular and is challenging to pass.

I like that Gates explained the causes of climate change in clear language. This is not a scientific paper, but an education for the common man.

I like that Gates did not hide his financial interest in the technologies he advocates. He divested himself of fossil fuel investments and is now financially supporting alternative fuels.

I like that Gates acknowledges the complexity of the issue. When considering a product's carbon emissions, we must consider the entire lifecycle of the product. Electric cars and solar panels emit far less carbon into the atmosphere, but they still use carbon in their manufacturing process, which needs to be part of the equation.

Legislation is also tricky when multiple countries are involved. Does it help the world if the United States reduces emissions but other countries do not? And is it fair to penalize poorer, less-developed countries that have not yet reaped the benefits of the industrial revolution that led to many of these pollutants?

Most of the proposed solutions in this book are directed at governments and corporations. But there are ways that individuals can have an impact on climate change. By writing and calling their government representatives and demanding action, we can help influence their legislative priorities. By purchasing green products, such as an energy-efficient thermostat or an electric car, we can reduce emissions and move the market to encourage more investment in green products. By reducing our meat and dairy consumption, we can reduce the demand for methane-producing cattle.

Ultimately, it is in our self-interest to address these issues now before they become a disaster.

Richard Ford has written for decades about his alter ego Frank Bascombe. He told Bascombe's story in "The Sportswriter, "Independence Day," and "The Lay of the Land." Each story follows a similar structure. Ford eschews a formal plot for a stream-of-consciousness narrative that follows Frank through a holiday weekend, often narrating a series of loosely-connected events and culminating in a chaos-filled climax.

In "Let Me Be Frank With You," Ford finally acknowledges this looseness. He presents the book as four short stories connected only by the central character - Frank Bascombe.

Here is a summary of each story.

I'm Here

Frank visits the owner of his former house after a devastating storm destroyed the domicile. Although he sold the house years ago, the new owner makes him feel guilty about transferring this financial loss.

Everything Could Be Worse

A woman knocks on Frank's door and reveals a dark secret about his house and its past.

The New Normal

Frank visits his ex-wife, who was recently diagnosed with Parkinson's and moved into an elderly home. Their relationship is civil, but she lets him know how his inadequacies.

Deaths of Others

Frank reluctantly visits an old acquaintance who is now dying. The friend confesses a betrayal committed years earlier.

Like the previous Bascombe novels, this one takes place around a holiday. In this case, the holiday is Christmas; but little is made of it until the final story.

Frank is 68 years old, retired, and financially secure. He has been remarried for years and has a cordial relationship with his ex-wife. His children have moved away and are reasonably successful. Despite all these successes, he feels the angst of everyday life and pushes down his regrets about the past. In each story, someone reveals a truth, and Frank must grapple with something beyond his control.

As always, Ford allows us to feel for Bascombe by inviting us inside his mind. He appears natural to the reader because his thoughts are reasonable, if not always rational.

The entertaining and thoughtful stories present a plausible progression of Frank's character as he ages.

The writings of economist Steven D. Levitt and journalist Stephen J. Dubner read more like a take on sociology than an academic treatise on economics. Due to their unconventional approach, the authors chose the title "Freakonomics" for their book, indicating that it draws from the field of economics but often strays from that discipline or tackles questions that other economists do not. Levitt is an economist at the prestigious University of Chicago. Dubner is a journalist who met Levitt when he wrote an article about him for the New York Times Magazine. Presumably, the ideas in "Freakonomics" are Levitt's, while Dubner is responsible for the wordsmithing. Regardless, it is an entertaining and informative read.

The book seeks to challenge conventional wisdom on a range of topics. It begins by asking seemingly nonsensical questions, such as "What do schoolteachers and sumo wrestlers have in common?" and "Why do drug dealers still live with their moms?"

They answer these questions with numbers.

Schoolteachers and sumo wrestlers each have an incentive to cheat under certain circumstances. By studying data, the authors were able to identify those who most likely cheated, resulting in the firing of some Chicago teachers and the cancellation of at least one wrestling tournament. Beyond their analysis, they speculated why the cheating might occur. Economics is all about how people respond to incentives. Sometimes those incentives are monetary (schoolteachers may fudge students' standardized test results because they are graded on how well students perform on those tests, so higher test scores lead to better performance reviews); but some incentives are non-monetary. A sumo wrestler requires eight wins to remain at the sport's top level. A favored wrestler may throw a fight to a 7-win wrestler in the season's final match if he can expect his opponent to return the favor the following season.

Levitt and Dubner are quick to point out that their findings do not take morality into account. For example, when violent crime fell during the 1990s, many economists cited factors like increased police protection or the threat of the death penalty, or harsher prison sentences as primary causes of the decline. But the authors point out that the data do not support these correlations. Instead, they suggest that legalizing abortions following the 1973 landmark Roe vs. Wade Supreme Court Case was the most significant factor in reducing violent crime. They reasoned that low-income single teenage mothers were the most likely to take advantage of legalized abortions. Before 1973, children born to these mothers suffered numerous disadvantages, from growing up in high-crime areas to having a mother who did not want a child. A disproportionate number of these children eventually turned to a life of crime. Legal abortions prevented the births of many of these potential criminals in the 1970s, which led to lower crime rates in the 1990s. In contrast, Romanian dictator Nicolae Ceaușescu banned abortions in his country and encouraged women to have many babies to boost the country's population and influence. Years later, the revolution that toppled Ceaușescu's regime and executed him was largely led by the rebellious children born due to his policies.

Of course, this completely ignores the moral argument about abortions, one of America's most polarizing topics today. Still, this book does not take a stand on the ethical debate. It simply presents the numbers, recognizes correlations, and postulates reasons why these correlations exist.

Other conclusions that may surprise people are a swimming pool in a home is more dangerous than a gun in a home, and the risk of death is higher for a Chicago crack dealer than for an inmate on death row in Texas - far higher!

Other economists and journalists have picked apart many of the findings in Levitt's studies and pointed out flaws in his interpretations. But the book's goal is not to solve the world's problems. It is to help us approach those problems from a new angle.

"Freakonomics" does not provide a lot of answers. But it raised some interesting questions and inspired me to look at the world differently.

This year, many friends and even more acquaintances suddenly found themselves out of work. My employer laid off a lot of people in the past nine months (they called it "Reduction in Force" or "RIF"). I survived these layoffs, but I have been unemployed and know how stressful it can be - especially if you are supporting a family.

Here is some advice for those of you seeking work and those of you still employed.

A Guide For the Unemployed

Take stock of your current skills

Make a list of the things at which you excel. What have you done to demonstrate this excellence? Write down the successful projects you worked on and how you contributed to that success.

Decide what you want to do

It is sometimes difficult to see a bright spot when you just lost your job, but this is an excellent opportunity to find the job you really want. You are more likely to find that job if you know what it is. Think about your dream job. Articulate what you will do and write that down. You may have multiple dream jobs, and that is okay, but you will be more successful if you are more focused.

Update your resume and cover letter

Take a look at your resume. Of course, you will add your most recent job. But you should also look back at your descriptions of previous jobs. Can you improve the wording? Can you remove irrelevant content? If you have no desire to be a COBOL programmer, it may be time to strike that line from your resume. If you have a lot of professional experience, it may be time to remove the part-time McDonald's job you had in college.

This is also an excellent time to update your cover letter to potential employers. State your goals and why you are a good hire.

Ask someone to review these for you.

It is okay to have multiple versions of both your resume and your cover letter.


Do not be afraid to let others know you are looking. They have contacts who do not know you, and they can help you expand your search. Many people want to help but cannot unless they know you need help. Ask. Be specific about the kind of help you are seeking. See the section below for some ideas.

A Guide for the Survivors

If, like me, you are not directly affected by the layoffs, you may be able to help. This is true even if you are not a hiring manager and do not know anyone who is hiring.

Here are some ways you can help.

Write a LinkedIn recommendation

If you have worked with someone before, take the time to write about your experience. Be specific about the work you performed together, their contributions, and their strengths. LinkedIn is a great place to post this because it is public, and many potential employees read these.  Note that this is only appropriate if you have direct knowledge of a person. Your endorsement affects your reputation.s

Do NOT simply click the Endorsement buttons on LinkedIn. Those are useless.

Amplify job searches

Many of you have a broad network with many Facebook friends, LinkedIn connections, Twitter followers, and other social media contacts. A retweet or a repost of a friend's "Open to Work" message can get that message in front of new people, increasing the chances of a match.

Offer to review resumes

If you have experience hiring or looking for work, you likely have experience with resumes. You can use this knowledge to review your friend's resume. I have seen many bad resumes created by qualified people. A poorly-written resume decreases chances with an employer.

Keep a list

Keep a list of those you know who are looking for work, their skills, and the type of position they seek. Refer to this list when you learn of a job opening. Employers appreciate it when you send someone with the skills they are seeking.


As I mentioned above, I have experienced the frustration of prolonged unemployment. Years ago, I lost my job a month after my first son was born and a year after I bought my first house. The experience seemed devastating at the time, but I took the opportunity to change career paths.

I survived my company's recent layoffs, leaving me only with survivor's guilt.

I was able to help myself then, and I have been able to help others recently. You can too!

Artificial Intelligence (AI) can potentially revolutionize almost every aspect of our lives. We can use AI to develop self-driving cars, diagnose medical disorders, and better predict natural disasters. But these advances are not without risks. We need to consider the ethics of the systems we create. This becomes more true as these systems become more advanced and more powerful. The concept of "Responsible AI" seeks to address our concerns.

Responsible AI refers to designing, developing, and deploying artificial intelligence systems that prioritize ethical considerations and the well-being of users and society. It involves an ongoing commitment to address potential risks and ensure we use AI technologies in ways that align with societal values.

Principles of Responsible AI

Microsoft emphasizes the following principles of Responsible AI:

  • Fairness
  • Reliability and Safety
  • Privacy and Security
  • Inclusiveness
  • Transparency
  • Accountability


The system should strive to treat everyone fairly. Consider your system's impact on people of different ages, genders, and ethnicities. Are we discriminating against some groups? For example, are we more likely to return a higher credit risk simply because someone is a woman? We can address this by removing the bias from our input data. Biased input will create a biased model.

Reliability and Safety

An AI system should be reasonably accurate and should not present undue risks. Consider the possible errors in your output, the likelihood of those errors, and the impact if those errors should occur. Validate your data and your results. Some errors are inconvenient; others can be catastrophic. For example, if a self-driving car turns at the wrong time, it could result in the death of a pedestrian.

Privacy and Security

All Machine Learning Models use data as input, and some of that data may be private. Private data could be corporate information, such as financial reports, or personal information, such as names and addresses. In both cases, ensuring that you properly secure confidential data is essential. As you collect data, communicate how you will use it, and allow users to opt out of providing some information. Recognize what parts of your data are private and keep them secure using encryption, access restrictions, and auditing tools.


When building applications on top of AI, consider accessibility.


Reveal the data and algorithms on which you base your model. People have a right to know how your system came to the conclusions it did.


When designing an AI system, it is tempting to defer decisions to the system, deflecting responsibility away from ourselves. But those who develop an AI system are responsible for the decisions produced by that system.

Consider who is responsible for decisions based on your AI system.

Explainable AI

IBM has its take on this topic, which they refer to as Explainable AI. Explainable AI consists of the following principles:

  • Fairness and debiasing: Check for potential biases in your data
  • Model drift mitigation: Adjust models when results begin to drift from logical outcomes
  • Model risk management: Understand the risks of an incorrect outcome of your system
  • Lifecycle automation: Understand the dependencies of your models and automate their generation
  • Multicloud-ready: Promote trust.


I confess that I do not understand many aspects of AI. But we have a duty to think responsibly when we deploy any system built on AI models. This article summarizes some of those responsibilities.

Episode 762

Ashley Janelle on User ExperienceAshley Janelle on User Experience

Ashley Janelle is a User Experience (UX) Designer at Amazon. She discusses the principles of UX, how UX differs from UI, and how to get started in the UX field.


Minda Harts and friends in ChicagoMinda Harts saw a gap in the sea of self-help books. None were directed at or written by working black women. She decided to write her own. "The Memo" is Harts's advice for professional women of color.

Ms. Harts's style is informal and conversational. As a result, her writing is less concise than you may be used to in a professional book. She peppers her writing with references to hip-hop lyrics, video games, and popular TV shows and movies. I am neither a gamer nor an avid TV watcher, but I enjoy good music and movies. So some of the references were unfamiliar to me. But her points remain solid.

I like the fact that she neither denies the existence of systemic racism nor uses it as an excuse to fail. Instead, her message is: Here are obstacles women of color face in today's workforce; here are some strategies to succeed.

The target audience is black women, and Hart spends much of the text recounting the racism and microaggressions she encountered in her career. But she also provides career advice that is useful to us all.

Network. Attend social events outside work, with your co-workers, and within your industry. A good network opens doors, even if you find it uncomfortable talking with strangers.

Advocate for yourself. Do not be afraid to call attention to your excellent work.

Negotiate your salary. Learn your position's going rate and ask what you are worth.

Invest in your education. Make yourself valuable to your current employer or your next employer.

One chapter is directed toward white people - especially white women. Harts laments that so many speak of "women" without including women of color who have been left behind by the gains in recent years. She calls on white women to use their voices to advance and seek representation for all women.
Although I am not the target audience, I found much valuable advice within "The Memo."

Chestnut, Williams, and White 2023I came to the Lighthouse Art Space in Chicago's Gold Coast to see Lenny White. I have been a fan of White's music since his days with the influential electric jazz fusion band Return to Forever. But tonight, there was no electric jazz and no fusion, and White - although excellent - was not the most impressive musician on the stage. Buster Williams on contrabass and pianist Cyrus Chestnut joined drummer White in a group that billed itself as "The Legendary Trio." Together, they filled the sold-out room with acoustic jazz for nearly two hours.

This was my first visit to Lighthouse - a venue known for its Immersive Van Gogh exhibit - a multimedia tribute to the artist. Tonight's set opened with thirty minutes of the "Immersive Mozart" exhibit, in which animated images floated across the four walls, accompanied by the composer's music.

When the Trio took the stage, the projections changed to static images of paintings by Frida Kala, Claude Monet, Vincent Van Gogh, and others. White joked that they were performing inside a painting, playing a soundtrack for the artwork.

White and Williams were excellent, but Cyrus Chestnut stole the show. His mastery of the keyboards was nothing short of phenomenal. Chestnut carried the melody while the other two supported with their rhythm. They opened with a Jimmy Van Heusen ballad - "It Could Happen to You," and followed with "Faith Amongst the Unknown" - a haunting Chestnut original. They played bouncing blues and melancholy jazz and even their own arrangement of a Chopin nocturne.

I was thrilled to attend a meet-and-greet following the show, where I expressed my appreciation for the evening's performance. I discovered the music of Return to Forever during my university days, but I never saw them in concert. After this week, I have seen all the members (White, bassist Stanley Clarke, guitarist Al Dimeola, and the late keyboardist Chick Corea) perform live.

It was an evening to remember.


Artificial Intelligence receives a lot of coverage in the scientific and popular press these days. You may have heard terms like "Machine Learning," "Deep Learning," "Transfer Learning," and "Generative AI" and wonder what they mean and what is the difference between each of them. Although not identical, all these concepts are related.

This article will discuss these terms, their definitions, and their relation.

Artificial Intelligence

Artificial Intelligence ("AI") is a broad term for getting computers to think like humans. This concept is at the top of all the others.

Machine Learning

Machine Learning ("ML") is a subset of Artificial Intelligence that describes algorithms that examine a set of data, group that data, and create a model that allows the computer to make predictions based on that model. It uses mathematics and statics in its work.

There are two basic types of Machine Learning: Supervised Machine Learning and Unsupervised Machine Learning.

With both ML types, each data point contains known attributes called "features" that can be used to make predictions. These will be the inputs that we will pass into a model.

In Supervised Machine Learning, each data point has labels in addition to features. A label is an attribute that we want the model to predict. It is the output when we use our model. The algorithm seeks to find the relationship between the features and the labels and builds a model that allows us to predict the value of one or more labels given a set of features. For example, we may have data containing online advertising features (date posted, site on which it appears, time of day, size of the ad, etc.) along with click-through rates, which would be our feature. After building a model from this data, we can predict a click-through rate based on an ad we plan to place.

In Unsupervised Machine Learning, the data has features, but no labels, so the algorithm focuses on clustering together data points with similar features. An example might be grouping images of cats into different breeds. After building a model from this image data, we can provide a new picture of a cat and ask which breed it most closely resembles.

In both Supervised and Unsupervised Learning, a Data Scientist can choose from various algorithms to build their model.

Deep Learning

Deep Learning is a subset of Machine Learning designed to solve complex problems. With deep learning, we still provide data on which to build a model; but our algorithm contains multiple layers. The output of one layer is the input of the next layer. Because of the complexity of these problems and the requirement for multiple layers, Deep Learning requires more computing power and processing time. For complex problems, Supervised and Unsupervised Machine Learning may use Deep Learning.

Transfer Learning is related to Deep Learning. With Transfer Learning, we take advantage of other Deep Learning algorithms and reuse the output of Layers we already executed as input for one or more of our Deep Learning layers. Transfer Learning reduces the amount of computing resources and time required.

Natural Language Processing

Artificial Intelligence allows computers to understand human languages, such as English, Spanish, or Arabic. By building a model based on human communications, AI systems can understand a statement or question presented in various ways, along with the context of that text. Tools like ChatGPT use Large Language Models (LLMs) to build a model that allows users to interact similar to how humans communicate. Natural Language Processing often uses Machine Learning to build its models.

Intelligent Search

Computers have long had the ability to search text data. One big challenge is determining the context of a search, particularly when a word or phrase has multiple meanings. Artificial Intelligence can infer that context from when and where the search initiates. When writing a paper about England, the term "Bath" is more likely to refer to the city in Somerset, UK than a tub where people cleanse themselves. Search engines like Google and Bing use AI to attempt to determine the context of a search, but tools like Azure Cognitive Search allow you to index your internal data intelligently. Intelligent Search often uses Machine Learning to build its models.

Generative AI

Generative AI is a type of Artificial Intelligence that focuses on creating content. Models built from existing data are used to generate new assets. This technology can be used to create images, text, or audio. Machine Learning or Deep Learning may be used to build the models to create these assets. OpenAI has developed two tools for creating OpenAI. ChatGPT generates text from input queries using a Large Language Model, while Dall-E generates images from an input description.

Fig. 1 shows the relationship between the concepts described above.

Fig. 1


In this article, I described some important concepts in Artificial Intelligence and how they relate to one another.

GCast 155:

Overview of Azure Monitor and Application Insights

Learn about Azure Monitor and Application Insights and how to plan an effective monitoring strategy for your application or service.

You can use the .NET Command Line Interface (CLI) to create, build and run a new ASP.NET application.

Navigate to the folder where you want to create your project.

Execute the following command:

dotnet new mvc -o of project>

This will create a folder with the same name as your project and will create inside that folder a project with that name and the .csproj extension. It will also create some subfolders and boilerplate code.

For example, if I issue the command:

dotnet new mvc -o mymvc

It will create a folder named "mymvc" and an ASP.NET MVC project inside that folder. By default, the project will have the same name as the folder. You can assign a different name using the "-n" argument, as in the following example:

dotnet new mvc -n myaspnetmvc -o mymvc

Navigate to this folder (cd mymvc) and view the contents (dir)

You will see something like the Fig. 1.

Files Created

Fig. 1

Fig. 2 shows the files in the Visual Studio Code Explorer with some of the folders expanded to reveal the files within.

Files Created in VSCode Explorer

Fig. 2

The new application is configured to use HTTPS, which requires a trusted certificate. This can be a problem when running the application locally. Fortunately, you can execute the following command to tell ASP.NET to trust the certificate on your local machine.

dotnet dev-certs https --trust

The first time you run the command, a confirmation dialogue displays. Click YES to confirm if prompted.

Execute the following command from the project folder to build the ASP.NET application.

dotnet build

Execute the following command from the project folder to run the ASP.NET application locally.

dotnet run

NOTE: The last command will also build the project if any code file has changed since the last build.

When you run an ASP.NET application locally, it displays the URL of the default page, as in Fig. 3.

Output of dotnet run Command

Fig. 3

In the example above, the application is at http://localhost:5076. You may open a browser and navigate to this URL or hold down the CTRL key and click the link. Fig. 4 shows the default page in a browser.

Default Page in Edge Browser

Fig. 4

To terminate the application, press CTRL+C in the command window.

In this article, you learned how to use the .NET Command Line Interface (CLI) to create, build and run a new ASP.NET application.


Episode 761

Craig Shoemaker on Online Course Creation

After many years of creating online courses, Craig Shoemaker is sharing his knowledge about what makes a good course and how to go about preparing to create one.


July 2023 Gratitudes

Comments [0]

Today I am grateful to relax inside on a stormy day.

Today I am grateful I was born in the United States.

Today I am grateful to watch unregulated fireworks from the safety of my balcony last night.

Today I am grateful to see Nik West in concert with Nick and his family.

Today I am grateful to plan and book my first vacation of the year.

Today I am grateful to see "Lucy and Charlie's Honeymoon" on my first visit to Lookingglass Theatre last night.

Today I am grateful to see a production of Shakespeare's Cymbeline at a local park last night.

Today I am grateful to attend the Square Roots festival in Lincoln Square yesterday.

Today I am grateful for coffee with Lwin yesterday.

Today I am grateful to close a bunch of tasks from last Fiscal Year.

Today I am grateful to deliver a presentation last night at the Azure Cleveland user group.

Today I am grateful to see Puddles Pity Party in concert last night.

Today I am grateful for a new pair of eyeglasses.

Today I am grateful to pass through so many block parties, farmers markets, and festivals on my ride yesterday.

Today I am grateful to see Iris Dement in concert last night.

Today I am grateful for a conversation with Christine yesterday.

Today I am grateful for all the excellent guests I have interviewed and scheduled for #TechnologyAndFriends the past few weeks.

Today I am grateful to catch up with Jennifer yesterday.

Today I am grateful to begin my first vacation of 2023!

Today I am grateful:
- to meet some of my teammates for the first time yesterday
- to attend the Dodgers-Rangers game last night on my first visit to Globe Life Field

Today I am grateful for:
- Lunch with Jason yesterday
- My first visit to the Dallas Museum of Art
- A Minor League Baseball game in Frisco, TX last night

Today I am grateful for:
- a visit to the George W. Bush Presidential Library and Museum
- a walk around the campus of Southern Methodist University

Today I am grateful to see an exciting baseball game on my first visit to Minute Maid Park last night.

Today I am grateful for lunch with Donovan and Chelsea yesterday.

Today I am grateful to discover two beautiful parks of which I was unaware just 2 miles from my home.

Today I am grateful to attend the Microsoft Inspire partner event in Chicago yesterday.

Today I am grateful to sit on my balcony last night, sipping Frangelico, and watching thunderstorm.

Today I am grateful to see the Chicago Symphony Orchestra perform the music of Carole King, Carly Simon, and Joni Mitchell at Ravinia last night.

Today I am grateful for
- lunch at the Chicago Food Truck Festival
- a show at Second City last night

Today I am grateful for:
- a new espresso machine
- a call from Tiberiu yesterday

Today I am grateful to all who congratulated me yesterday, even though I did not deserve it.

Today I am grateful for a conversation with Matt yesterday

Today I am grateful to ride over to Grant Park and listen to Lollapalooza music from outside the gates last night.

Today I am grateful to put yesterday's medical procedure behind me.

Today I am grateful to enjoy Afghan food last night with Jill, John, and Sara

Leigh Bardugo achieved fame with her "Shadow and Bone" trilogy, which introduced a world loosely based on nineteenth-century Eastern Europe and Russia.

Bardugo followed up with "Six of Crows," – a story set in another part of the same world. The world consists of unstable governments on the verge of war and a world in which the Grishas are born with preternatural abilities. Many people fear the Grisha and some governments seek to control or exterminate them.

The anti-hero of the story is Kaz Bekker. He was an orphan who grew up in the tough ghetto of The Barrel. He survived by showing his toughness and convincing others to work for him. Ultra-rich merchant Jan Van Eck hires Kaz to break out a scientist from the world's most secure prison. This scientist invented jurda parem - a drug that enhances the mystical abilities of Grishas but leaves them weakened and addicted after just one or two doses. Nothing goes as planned, and Bekker's crew must improvise to save themselves and complete their mission.

Bekker and his five companions form the Six of Crows. The narrative's point of view shifts between them, giving the reader a look into their thoughts, reactions, and backstories.

Bardugo slowly reveals the past and motivation of each character, peeling away the layers of the story and introducing new twists.

If you enjoyed Bardugo's "Shadow and Bone" trilogy, you will enjoy this. The characters are new, but the universe is the same. It is an action story, a heist story, a love story, and a revenge story. The author achieves a balance as none of those concepts overshadow the others. I can see the author's writing and plotting getting stronger with each new book.

The characters are the strength of this story. They were each strong, intelligent, talented, and resourceful, yet each had their flaws. I like Bardugo's ability to create strong female characters.

This book is part one of a duology, so we are left with unresolved storylines, presumably concluded in "Crooked
Kingdom." I did not mind the cliffhanger, as I plan to pick up the sequel in the coming weeks.

The US Army assigned Major Victor Joppolo to administer the town of Adano, Italy after Allied forces drove out Mussolini's Fascists near the end of World War II.

The town needs many things: food, water, clean streets, affordable goods, safety, and a new bell for its tower. The Fascists removed the 700-year-old bell to melt it down for bullets, leaving the town without its most prized icon.

Joppolo does his best to treat the local citizens fairly and honestly, including trying to get a new bell. Despite bad behavior by many other American soldiers, he gradually wins the townspeople's hearts.

John Hersey's 1944 novel "A Bell for Adano" paints a plausible picture of life in a town suffering through war and occupation. He shows some of the absurdities of military bureaucracy, the selfishness of those clinging to power, the temptations of those in privilege, and the kindness of people trying to help others.

The novel focuses on the civilians affected by the war rather than the actions on the battlefield.

"A Bell for Adano" is a simple story told in a straightforward manner, as one would expect from a journalist like Hersey. And it is a touching story that warmed my heart. I grew to care about Adano and its people and to appreciate Major Joppolo. We need more men like him today.

GCast 154:

Creating an ASP.NET MVC Application from the Command Line

Learn how to create, run, and deploy an ASP.NET MVC Application using the CLI command line tool.


Application Insights is a set of tools within Azure Monitor that allow you to store metrics, telemetry data, and logs for future analysis.

But how long should you retain this data? There is a cost to storing it and managing that storage. We have options:

  1. Keep the data forever
  2. Keep the data for a predetermined time period; then, delete it
  3. Keep the data for a predetermined time period; then, move it to "cold storage" for long-term retention.

Application Insights supports each of these options. Archiving and retention of Application metrics is managed within the "Diagnostic settings" section.

Configuring Retention

To begin, log into the Azure Portal and navigate to the "Azure Monitor", as shown in Fig. 1.

Azure Monitor Overview Tab
Fig. 1

In the left menu, click the [Applications] button to display the "Applications" blade, as shown in Fig. 2.

Azure Monitor Applications Tab
Fig. 2

Select the Application for which you wish to configure archiving and retention. Application details will display with the application's "Overview" blade selected, as shown in Fig. 3

Application Insights Application Overview Tab
Fig. 3

Click the [Diagnostic setting] button of the "Monitoring" section of the left menu (Fig. 4) to display the "Diagnostic setting" blade, as shown in Fig. 5.

Diagnostic Settings Button
Fig. 4

Diagnostic Settings Blade
Fig. 5

Click the [Add diagnostic setting] button (Fig. 6) to display the "Diagnostic setting" dialog, as shown in Fig. 7.

Add Diagnostic Setting Button
Fig. 6

Diagnostic Setting Dialog
Fig. 7

At the "Diagnostic setting name" field, enter a name for this set of configuration settings.

The left side of this dialog lists different types of data that Azure Monitor captures. You can manage a set of data by checking the checkbox next to that item. Check the [allLogs] checkbox to checkbox to check everything under the Logs Categories section.

Fig. 8 shows several of the categories checked, along with the all the metrics.

Diagnostic Setting Dialog With Logs Selected
Fig. 8

On the right side of the "Diagnostic setting" dialog, you tell Azure what action to take on the checked metrics. This article concerns archiving and retention, so Fig. 9 shows additional prompts displayed when you check the "Archive to a storage account" checkbox.

Diagnostic Setting Dialog With Archive To Storage Account Selected
Fig. 9

Select the Azure subscription and storage account into which you wish to move the metric data after Azure deletes it from the Monitor database. The Storage account must be in the same region as the logs.

In addition, you can set the retention days, indicating how long a record will remain in the storage account before it is automatically deleted. Setting the retention to 0 indicates that the data will never be deleted automatically. Fig. 10 shows these settings.

Retention Settings
Fig. 10

Click the [Save] button (Fig. 11) to commit all the settings you have made in this dialog.

Save Button
Fig. 11


In this article, you learned how to configure retention for Azure Application Insights Logs and Metrics




Application Insights is a set of tools within Azure Monitor. These tools allow you to view the performance of your application or service quickly and to review detailed information to determine the causes of an incident. Using Application Insights, you can configure your applications to store metrics, telemetry data, and logs for future analysis.

A convenient way to present the collected data is using a Dashboard - a single screen that presents multiple views of one or more data sets. A Dashboard allows the user to quickly get a snapshot of important information.

Building a Dashboard

To begin, log into the Azure Portal and navigate to the "Azure Monitor", as shown in Fig. 1.

Monitor Overview Tab
Fig. 1

In the left menu, click the [Applications] button to display the "Applications" blade, as shown in Fig. 2.

Monitor Applications Tab
Fig. 2

Select the Application for which you wish to create a Dashboard. Application details will display with the application's "Overview" blade selected, as shown in Fig. 3

Application Insights Application Overview Tab
Fig. 3

A default Dashboard is created for this application. Click the [Application Dashboard] button (Fig. 4) to display this default Dashboard, as shown in Fig. 5.

Application Dashboard Button
Fig. 4

Application Dashboard
Fig. 5

You can accept this default Dashboard as-is, or you can edit it, or you can create a new one.

To create a new Dashboard, click the [Create] button (Fig. 6) to display the "Create a Dashboard" dialog, as shown in Fig. 7.

Create Button
Fig. 6

Create A Dashboard Dialog
Fig. 7

Select one of the templates displayed in this dialog to begin with a Dashboard containing some initial visualizations or select the "Custom" template to begin with an empty Dashboard. The "Create an Application Insights dashboard" dialog displays, as shown in Fig. 8.

Create An Application Insights Dashboard Dialog
Fig. 8

At the "Dashboard name" field, enter a descriptive name for this new Dashboard.

At the "Subscription" field, select the Azure Subscription into which this Dashboard will be stored. Many of you will have only one Azure subscription.

At the "Select resource" field, select the resource the Azure resource for which you wish to see visualizations.

Click the [Submit] button to create the Dashboard.

New Dashboard Based On App Insights Template
Fig. 9 shows a newly created dashboard for an Azure App Service.

Fig. 9

You can edit any Dashboard. With this (or any) Dashboard displayed, click the [Edit} button (Fig. 10) to place the Dashboard into Edit mode. In Edit mode, you can add new Tiles, delete existing Tiles, and drag a Tile to move it to a new location on the screen.

Edit Button
Fig. 10

To add a new Tile, click the [Add Tiles] button (Fig. 11), which displays the "Tile Gallery" dialog shown in Fig. 12.

Add Tiles Button
Fig. 11

Tile Gallery
Fig. 12

Select a desired Tile template in the "Tile Gallery" dialog and click the [Add} button to add this Tile to the bottom of the Dashboard.

To configure the Tile, click the [Context] button (Fig. 13) in the Tile's top-right corner to display the Context menu (Fig 14) and select "Configure Tile settings" to display the "Configure Tile settings" dialog, as shown in Fig. 15. (NOTE: The context menu button may not appear until you hover over it.)

Context Menu Button
Fig. 13

Tile Context Menu
Fig. 14

The "Configure Tile settings" dialog allows you to override the time span for this Tile (by default the past 24 hours, as inherited from the Dashboard") and set filter settings. Fig. 15 shows a sample "Configure Tile settings" dialog.

Configure Tile Settings Dialog
Fig. 15

Click the [Apply] button to save your configuration setting changes.

To remove a Tile, click the [Delete] button (Fig. 16) in the top right corner of the Tile. This button often will not display until you hover over it.

Delete Button
Fig. 16

To resize a Tile, hover over the bottom right corner until the cursor becomes a double-pointed arrow and drag to the desired size.

To move a Tile, hover over the Tile, until the cursor becomes a 4-pointed arrow and drag the Tile to the desired location.

At any time, you can click the [Preview] button (Fig. 17) to see what the Dashboard will look like when you save it.

Preview Button
Fig. 17

Click the [Save] button (Fig. 18) to save your changes to the Dashboard or click the [Cancel] button (Fig. 19) to discard your changes.

Save Button

Fig. 18

Cancel Button
Fig. 19


In this article, you learned how to create and modify an Azure Application Insights Dashboard.


Episode 760

Oren Eini on Building Projects that Endure

Oren Eini began creating RavenDB 15 years ago and the project is still going strong. He discusses some of the things he learned about maintaining a project over many years so that they will endure.

Richard Ford's "The Lay of the Land" takes place a decade after the weekend depicted in "Independence Day." Protagonist Frank Bascombe is now 55 and thinking about death almost all the time. Frank recently learned he has prostate cancer, which profoundly impacted his outlook.

Frank is experiencing what he calls his "Permanent Phase," in which he foolishly believes his life's major stressors and uncertainties are behind him. He is doing well financially. He owns his own real estate company and lives in a house on the beach. Throughout the week, Frank interacts with his ex-wife, his immature adult son, his conflicted lesbian daughter, his assimilated immigrant business partner, and a host of strangers and acquaintances. But most of his encounters are unpleasant, and some are hostile. The novel takes us through Thanksgiving week and follows Frank's actions and thoughts - almost minute by minute. The narration is written in the first person and is told in the present tense, except for some flashbacks. As a result, we get an account of all that happens during Frank's waking hours and his impressions of the events and the people involved. Frequently, pages of Frank's opinion follow a page of dialogue and action.

I have not decided whether I like Frank. He is polite to most people, but he disdains many of them. Regardless, he does not deserve many things that happen to him. He and his second wife Sally were happily married for years when Sally's husband Wally reappeared decades after he was declared legally dead. Sally decides to leave Frank and rejoin Wally in Scotland, where he has been living all this time.

Ford has a casual style that appeals to me and makes Frank's philosophy interesting and bearable. Frank is quirky and arrogant, but not unbearably so. He is a detached observer who may or may not be a reliable narrator. Some of his observations are insightful, and some are trivial. He compares everyone's looks to 1940s movie stars for no obvious reason.

This book contains both more action and more introspection than its predecessor. Like "Independence Day," this one relies far more on characters than a plot to advance the story. The book also presents a chaotic climax near the end as Frank witnesses a violent confrontation outside his home on Thanksgiving afternoon. It is more brutal than the climax of "Independence Day," but it serves a similar purpose by injecting sudden and unexpected action into the book.

Texas Rhapsody 2023

Comments [0]

Texas-1I had a free weekend with nothing to do. Everyone close to me planned to be out of town, and none needed me to tag along.

I decided I needed a vacation. 2023 was more than half over, and I had taken only two vacation days and had not left town for either of them. This was a mistake since my company recently switched to an unlimited vacation policy.

So, I booked a flight to Texas. My primary goal was to see a Rangers game in Arlington and an Astros game in Houston. After checking the schedule, I flew to Dallas Friday afternoon and booked a hotel in Arlington, then flew to Houston Monday morning before my flight home Tuesday evening.

Texas-2I drove straight from the DFW airport to Hard Eight BBQ - my favourite BBQ restaurant in the Dallas area, where I planned to meet some co-workers. My team is scattered across the US, and I joined this team over a year ago, but I have met very few of my teammates in person, thanks to the COVID pandemic and a limited travel budget. It was great to see Tommy, Pardeep, and Thomas for the first time after interacting with them virtually for thirteen months.

Texas-3I attended the Texas Rangers - Los Angeles Dodgers game at the new Globe Life Field on Friday evening. I aim to see a game in every Major League Baseball team's home stadium. I went to a Rangers home game a few years ago but decided I needed to return to experience their new stadium. Globe Life Field is beautiful, and the dome kept the temperatures manageable, despite the 100-degree outside temperature. The game was exciting for the first seven innings as each team traded runs and the lead, but the Dodgers blew the game open with six runs in the eighth and ninth innings, winning 11-5. The highlight came in the fifth inning when Dodgers rookie center fielder Jonny Deluca made spectacular catches on back-to-back Rangers at-bats. The old baseball stadium still stands across the street, where it serves as the home to the Arlington Renegades of the XFL, North Texas SC of MLS Next Pro, and the Dallas Jackals of Major League Rugby.

Texas-4I drove to downtown Dallas on Saturday morning and met my friend Jason for lunch. Jason and I worked together for years until he left Microsoft in 2019 to enter the startup world. One of my best Microsoft memories is of the time Jason and I drove to St. Louis years ago to visit our friend Bill, who was dying of pancreatic cancer. We surprised Bill with a demo of the HoloLens before its official release.

After lunch, I visited the Dallas Museum of Art, where I spent most of the afternoon. The museum features a variety of works, but I was most impressed with its European Impressionist collection. Although smaller than the Art Institute of Chicago, this museum rivals its northern counterpart in the quality of this genre.

Texas-5Saturday evening, I decided I needed more baseball; so I drove to Frisco, TX, north of Dallas, and attended a game between the Frisco Roughriders and the San Antonio Missions. They celebrated Hispanic diversity this night by temporarily renaming the teams Los Quesos de Frisco and the San Antonio Flying Chanclas. Minor League baseball is always fun, with seats close to the field and kid-friendly activities between innings. I witnessed a grand slam by Thomas Saggese of the Roughriders / Quesos - something I have only seen a few times in my life at a professional baseball game. The home team won 8-6.

Texas-6I slept in Sunday morning, then drove to the George W. Bush Presidential Library on the campus of Southern Methodist University, where I spent most of the afternoon. The country has mixed opinions about Bush's presidency, but this museum celebrated his positive achievements. His reaction to the events following the terrorist attacks on September 11, 2001, largely defined his legacy in the eyes of most Americans. Well-produced videos featured prominently in this museum, telling the story of Bush's life, character, and actions from the point of view of the former President and his family.

Texas-7After leaving the museum, I walked around the SMU campus for a while, taking in the sights. For an urban campus, it has some beautiful landscaping and open spaces. I could not spend much time walking around outside, as the temperatures approached 100 degrees Fahrenheit all weekend.

Texas-8My plan for Monday afternoon was to visit one or two museums in Houston. Sadly, a mechanical failure forced the cancellation of my morning flight, and I did not arrive in Houston until late afternoon. I missed the museum visits but arrived in time for an exciting Astros - Rangers game at Minute Maid Park. The Astros won on a walk-off RBI with one out in the ninth inning.

I met my friend Donovan and his wife, Chelsea, for lunch on Monday. Donovan recently retired from Microsoft, and the two spend their time traveling around North America, racing their Tesla and riding roller coasters. It was good to catch up with good Tex-Mex food and good company. As a bonus, Donovan brought a charger for my Kindle, so I was able to read on the flight home.

Texas-9As I write this, I am sitting in the terminal at the George H.W. Bush Airport in Houston, waiting to board my plane. I am exhausted but glad I came to Texas. I visited two museums, attended three baseball games, and met with old and new friends. It was well worth the trip.

<< Older Posts