What would happen if soldiers on the front line of a war refused to continue fighting?

William Faulkner's 1954 novel "A Fable" explores this possibility. In the middle of World War I, a French Corporal persuades his comrades to ignore their orders and stop fighting the Germans. The Germans notice and also cease hostilities. The truce spreads to the armies of other countries in the conflict, and the war is brought temporarily to a halt. The peace enrages commanders on both sides, who interpret the soldiers' actions as Mutiny. The opposing generals meet in secret to determine how to deal with this threat to their authority.

Like most Faulkner novels, this one is difficult to read. Long, involved sentences with parenthetical asides, most of which provide important background information and some of which reflect seemingly random musings of the author, challenge the reader's attention. Often followed by sentence fragments. The author declines to provide names for most of his characters forcing the reader to keep track of them by their titles - and sometimes not even that.

Unlike most Faulkner novels, he sets this one outside the fictional Mississippi county of Yoknapatawpha. The battlefields of eastern France provide a different flavor from most of his writing.

The Corporal exhibits numerous similarities to Jesus Christ. He begins by converting the twelve men in his squad, who spread the message to the rest of the army. He is betrayed by one of his followers. He is arrested, tried, and executed before the women in his life come to claim his body. The story takes place over a few days and parallels the Passion of the Christ.

Although this novel won the Pulitzer Prize for Fiction and the National Book Award, it has been largely forgotten. Critics hold many of Faulkner's earlier works in much higher regard.

The book's strength is its satire. It underscores the absurdity of war and the lengths those invested in combat will go to perpetuate it. I wonder if Joseph Heller drew some inspiration when he penned his classic anti-war farce "Catch-22." Heller's execution was superior, but Faulkner came first.

GCast 150:

Transactable Containers Labs, Lab 1, part 1: Creating and running containers locally

A walkthrough of Lab 1 of the Transactable Containers labs Learn how a Microsoft partner can create, package, and submit a Kubernetes application to the Azure marketplace

This video walks you through the first half of lab 1 in which you will create and run containers on your local machine.

Links: https://microsoft.github.io/Mastering-the-Marketplace/container/#hands-on-labs

Episode 752

Pete Rodriguez on a Career in Technology

Pete Rodriguez has spent almost 3 decades in technology. He discusses how to decide which part of tech you should work in, the value of switching jobs, and other factors to take into account throughout your career.

May 2023 Gratitudes

Comments [0]

Today I am grateful to celebrate Tim and Natale's engagement with lunch at Au Cheval yesterday

Today I am grateful to participate in a game show with my co-workers (even though I lost)

Today I am grateful for everything my father taught me.

Today I am grateful for a gift of a new travel mug.

Today I am grateful to drive my son and his wife to the airport today for their honeymoon.

Today I am grateful to purchase a bunch of tickets this week for upcoming concerts

Today I am grateful to see Wayne Newton and Tony Orlando in concert last night.

Today I am grateful to see the Cowboy Junkies in concert last night.

Today I am grateful for all the beautiful murals in Pilsen.

Today I am grateful to dog sit Maisie and Zoe this week.

Today I am grateful for the baristas at work yesterday.

Today I am grateful to my co-workers who wrote kind things about me.

Today I am grateful for coffee with Peter and Michael yesterday

Today I am grateful to attend Shannon's birthday party yesterday and meet some interesting people.

Today I am grateful for the puppies who kept me company this past week.

Today I am grateful for dinner and conversation with Mike last night.

Today I am grateful to attend the Microsoft Build conference, even if it is only virtually.

Today I am grateful for the taste of Bailey's Irish Cream.

Today I am grateful to see the final episode of "The Marvelous Mrs. Maisel" last night at the Regal Theater.

Today I am grateful
- to stumble upon a street fair in Pilsen while riding my bike yesterday
- to pick up my son and daughter-in-law at the airport as they return from their honeymoon

Today I am grateful for
- breakfast and a visit to the Art Institute of Chicago with Amanda and Megan
- Seeing "London Road" at Theatre Wit last night

Today I am grateful
- to attend Hyram's tombstone unveiling ceremony yesterday
- to all the men and women who gave their lives in defense of our country

Today I am grateful for a 3-day weekend

Today I am grateful to receive a bunch of texts from my family the past 2 days.

Today I am grateful for 1 year at this role and for the improvement over my last one.

Today I am grateful for a phone call with Steve yesterday.

Today I am grateful to talk with Dave for the first time in a long time.

Today I am grateful for breakfast with Shannon and her family yesterday.

LondonRoadI have never seen anything quite like "London Road."

The Shattered Globe Theatre group performs the Alecky Blythe / Adam Cork musical at Theatre Wit this month. The show has been so popular that the Theater has extended its run two extra weeks to June 11. I caught the Friday night performance.

"London Road" revolves around the community's reaction to a series of murders in the small city of Ipswich in eastern England. We never witness the murderer or the murders. The show focuses instead on the reactions of the townspeople. They live in fear for their safety; they follow the police hunt and the ensuing trial; they voice their opinions on the victims - all of whom were prostitutes. The play takes the form of a documentary set to music.

Blythe spent months interviewing Ipswich citizens about the crimes, and he used the text of those interviews as the lyrics of his songs. He retained the text verbatim, including filler words such as "like" and "um." But he set them to music, and his singers often repeated significant lines through multiple verses. The effect is often hypnotic, although some songs continue longer than necessary.

Because each member of the 11-person ensemble cast plays dozens of parts, the audience experiences no character development. Instead, the character of the town itself evolves throughout the ordeal of the attacks.

Actors quickly switch roles, and women often play the parts of men, sometimes making the play difficult to follow. But the performers pulled it off.  Their singing, speaking, and body movements conveyed the emotions of each line. The set was minimalist in the extreme. No props adorned the stage and the play was visually enhanced only by a set of video screens above the performers. Most of the urban scenes were shown upside down, rotating at the beginning and end to display a right-sided “London Road” street sign. The actors often retreated into a small chamber in each corner of the stage and the audience saw only a live video feed of their performance.

This was the first professional performance of "London Road" in North America. It will likely not be the last.

Episode 751

Mark Downie on DasBlog

Mark Downie describes the DasBlog blogging engine, its history, what makes it unique, and how it has changed over the years.


Leigh Bardugo's debut novel "Shadow and Bone" follows many popular tropes in young adult fantasy literature. It is a coming-of-age story about a young woman who discovers and attempts to master her magical power so that she can save the world. Most novels of this genre are set in a world inspired by medieval England or Western Europe, but this one takes place in a country reminiscent of czarist Russia. The nation of Revka features a royal family more concerned with the trappings of luxury than with the affairs of their country, a madman who wields power from behind the throne, and many characters and locations with Russian-sounding names.

Teenage orphan Alina travels through the Unsea with her best and only friend Mal. The Unsea is a once fertile land, now shrouded in darkness and populated by monsters due to a curse placed centuries ago. During a monster attack, Alina discovers that she possesses a power that allows her to emit blinding light. The powerful Grisha learn of Alina's power and take her in to train her. They tell her that this power can return the Unsea to its original form, uniting Revka and restoring access to the sea. The Darkling – leader of the Grisha - takes a particular interest in Alina.

Bardugo does a good job developing the characters and building her world. There are enough twists to keep the reader interested without complicating the story beyond comprehension. The book was successful enough to warrant two sequels, four more books set in the same world, and a Netflix series.

"Shadow and Bone" is filled with cliches (a love triangle; a mentor-turned-baddie; a pair of orphans who rise to their potential), but it is enjoyable.

I have already begun book 2 of the trilogy.

The title of Mark Manson's book "The Subtle Art of Not Giving a F*ck" is misleading. Manson does not suggest we should stop caring about everything. He says that we should choose the things about which we care.

Manson speaks in a sarcastic, casual tone peppered with profanity. It is entertaining initially, but the style wears down after a while. By Chapter 3, he sounds like a stand-up comic performing on open mic night at a bowling alley. Fortunately, he tones down this schtick in later chapters.

But his sometimes childish style does not discount his advice, which is often good. Among his suggestions:

  • Examine your own weaknesses and work to improve them. Accept failure and pain as necessary steps in improving yourself. The key to success is solving problems - not avoiding or denying them.
  • A sense of entitlement is an inhibitor to success.
  • Learn to set boundaries and commit to things you really care about.
  • Appreciate life and recognize that it is short and precious.

If this all sounds like common sense, you are correct. Manson's book is a collection of common-sense advice, told in a sometimes-witty manner, interspersed with anecdotes from his own life. It is a quick read with some good nuggets, one of my favourites of which is:

"To be happy we need something to solve. Happiness is therefore a form of action; it's an activity, not something that is passively bestowed upon you"

I don't give a lot of f*cks for this book, but I give a few.

Day 2 of Microsoft Build began with a keynote address.

The talk opened with a reiteration of yesterday's topic: Copilot. Copilot is a set of services that interact with Microsoft products, providing artificial intelligence and allowing users to interact by entering text in a natural language, such as English. The speaker reiterated that technology works across applications, calling it "ChatGPT for the enterprise." We saw a demo of a Copilot plugin that interacted with multiple applications, passing data between them. It understood the context of each application and the relationship between each. A user asked a question of Copilot from within Teams, and Copilot responded by interacting with Outlook, Microsoft Graph, and Jira. The following demo showed Copilot allowing a user to interact with Viva sales using natural English sentences, thanks to Copilot.

Once again, we heard about Windows Copilot, which will be accessed from the Windows taskbar and will allow you to use AI to tie together multiple applications. Windows Copilot will allow you to summarize documents, rewrite text, or adjust desktop settings - all from your Windows desktop. This product will be in preview in June and part of Windows by "the holidays," according to the keynote.

About half the day two keynote focused on Copilot, and much of it repeated information released the previous day.

However, Microsoft showed off a few new products in the second half of the keynote, including

  • Dev Home - a centralized dashboard where you can manage dev environments, packages, projects, and repositories. It is currently in preview.
  • Dev Drive - a way to create a separate drive on your computer with increased performance and security. This is a feature of Dev Home.
  • Dev Box - high-performance cloud-based workstations for developers.

Here are a few more announcements of interest:

  • Windows will allow you to end a task without opening Task Manager
  • The Terminal will support "TearOuts," allowing you to manage multiple command line sessions better.
  • A Windows Subsystem for Android was announced
  • The Windows store will use AI to suggest appropriate keywords when you publish your app.

I found Wednesday's keynote less engaging than Tuesday's. There were a few demos, but most were too short to gain information. Also, the Day 2 speakers were not at the high level of Satya Nadella, Scott Guthrie, and Seth Juarez, who are among the business's best.

As I said in my previous post, do not interpret this article as an announcement from Microsoft. I am stating my own opinions based on what I heard or misheard today.

GCast 149:

Having Fun with ChatGPT

Here are some fun and interesting things you can do with ChatGPT

I do not recall any Microsoft Build keynote that focused so much on a single topic as I saw this year.

The Day 1 keynote focused almost exclusively on Artificial Intelligence (AI) products, services, and innovations from Microsoft.

Here are the things that stood out to me during this 2+ hour presentation.

Satya began by revealing that Microsoft has 50 new announcements this week, and he would discuss five of them now. The five were:

  • Bring Bing to ChatGPT
  • Windows Copilot
  • Copilot stack
  • Azure AI Studio
  • Microsoft Fabric

He did not say so but suggested that these were the most significant announcements. He and others dove deeper into each of them throughout the keynote.

Microsoft has released and announced several products under the name "Copilot." Each product uses artificial intelligence to enhance a technology stack, such as GitHub, Teams, or Dynamics. These products provide a conversational interface to assist with common tasks within the application. The team devoted much of the keynote to improvements in these.

Each Copilot technology will have a consistent orchestration model, making it easier to do things like build plug-ins for multiple Copilot services

Satya announced Copilot for Windows. This technology adds a prompt to the Windows taskbar, allowing you to use AI to enhance many of your running applications.

GitHub Copilot has been around for a few years, but Scott Guthrie and Thomas Dohmke announced the private preview of Copilot X that adds a chat prompt to Visual Studio Code, allowing you to interact with AI using text. You can use natural language (such as English) to ask Copilot to explain, write, or improve code or to write unit tests.

Seth Juarez gave a demonstration of Prompt Flow - a tool that allows you to develop end-to-end AI systems using large language models. It will enable you to input your own model data and control each step's input, output, and validation.

Sara Bird showed off the Azure AI Content Safety Service that reviews input data and provides ratings based on categories of violence, self-harm, sexual, and hate speech. You can use this to filter out content you deem inappropriate. This tool can even be plugged into Prompt Flow.

For those concerned about privacy, Satya announced that each Azure OpenAI instance is isolated from other customers to improve privacy and increase trust.

Microsoft Fabric is now in public preview. Fabric is a service that integrates tools and data from multiple sources.

Here are a few other announcements of note

  • Azure data centers feature "Infiniband" cables, which no other cloud provider has. These allow for the highest network bandwidth available.
  • Microsoft plans to add 120 new data centers in 2023
  • Azure has added supercomputers to some data centers. These are designed for AI processing and model building.
  • Microsoft Azure will soon offer Nvidia Omniverse Cloud, which allows developers to design, build, and test industrial metaverse apps.

Guthrie concluded the keynote by reiterating Microsoft's commitment to being carbon negative by 2030. He added that Microsoft is committed to removing all carbon they have emitted since its 1975 founding by the year 2050 - something I had not yet heard.

The most exciting feature for me is Copilot X. I signed up for the preview and am waiting to hear if I got in.

A message repeated over and over: these tools are exciting, but the real excitement will be when developers use them to build something amazing!

Please note that this post is not an official announcement from Microsoft. These are the things I heard while listening to the keynote. It is entirely possible that I misheard or misinterpreted some information.

Episode 750

Tommy Falgout on the Azure Marketplace and Transactable Containers

Tommy Falgout describes the Microsoft Partnership program, how partners can publish applications into the Azure Marketplace, and the new Transactable Containers publish process.






CowboyJunkies-1Some bands were born to wear black.

Sunday evening at the Old Town School of Folk Music, Cowboy Junkies lead singer Margot Timmons joked several times that the band had no happy songs to perform - even on Mother's Day. "After all these years, you'd think we'd have something happy to sing about," she quipped to the audience's laughter.

The Junkies wore black and played sad songs for over two hours - including a fifteen-minute break. Margot was joined on stage by her brothers Peter (drums) and Michael (guitar), along with bassist Alan Anton and multi-instrumentalist Jeff Bird.

CowboyJunkies-2Set Number 1 mainly consisted of cover songs, including deep tracks from Neil Young ("Don't Let It Bring You Down"), The Rolling Stones ("No Expectations"), and David Bowie ("Five Years:), as well as the band's 1988 hit version of the Velvet Underground's "Sweet Jane." They closed the second set with "Blue Moon" and ended the encore set with a bluesy version of Patsy Cline's "Walkin' After Midnight."

The group's lineup has remained unchanged since the release of their first album in 1986. Even though the band's core consists of three siblings, this is a remarkable level of consistency. They sound as good as they did when I first discovered their music decades ago. Michael's guitar and Margot's singing combine in an ethereal mix that hypnotizes the audience. Peter’s drumming is subtler than most band – he favors brushes over drumsticks on most songs, which complements the haunting melodies perfectly. And Bird showed the ability to make a mandolin sound like an electric guitar on one song and like an oboe on the next.

This evening's show was the final concert of their current tour before they all returned to Toronto.

The songs were sad, but the audience went away happy.

I was about ten years old when my father took us to see Wayne Newton at the Kennedy Center for the Performing Arts in Washington, DC. At the time, I had no idea who Wayne Newton was, and many of the jokes he told went over my head. I believe I enjoyed the show, but I never expected to see Newton again.

Half a century later, I saw him perform again.

On Saturday night, Mr. Newton sang at the Hard Rock Casino in Gary, Indiana – a rare departure from his residency at the Flamingo in Las Vegas.

TonyOrlando2023It was not just Wayne Newton on the bill. His old friend Tony Orlando performed a set to kick off the evening.

Orlando rocketed to fame in the early 1970s as the leader of Tony Orlando and Dawn, who released a string of Number 1 hits and starred in a popular TV variety show. Tony has long since split with Dawn, but he began his set this night singing all his hit songs, including opening with his signature tune: "Tie a Yellow Ribbon Round the Old Oak Tree." His band followed these with a collection of hit songs from the 70s and 80s, originally performed by groups like Earth Wind & Fire, Paul Simon, and The Beatles.

WayneNewton2023Following a brief intermission, Wayne Newton took the stage backed by an orchestra - half of which consisted of local musicians. After decades of Las Vegas residency, he has refined his act to be the consummate showman. Most famous for his singing, Newton also played a variety of instruments, told jokes, and bantered with the crowd. Great stamina and a few cosmetic tweaks (His teeth are so white, they appear to glow) made him appear to defy his 81 years.

Wayne Newton is known for his interpretations of others' songs and he sang many of these tonight, including his biggest hits: "Danke Schoen" and "Daddy Don't You Walk So Fast." A highlight of the evening came when he played a video of the late Sammy Davis Jr. performing live 40 years ago while Wayne sang a duet on stage with the image of the deceased singer. Newton charmed the audience throughout, pointing and smiling at folks and even planting a kiss on two ladies in the front row.

Although Newton was the evening's final performer, the show billed the two as co-headliners. They share a similar career path - from chart success to lounge singer to entertainment icon. They also share a passion for supporting the US Military. In 2000, Wayne took over Bob Hope's role as chairman of the United Service Organizations Celebrity Circle, and the families of military personnel returning from overseas have adopted Tony's "Yellow Ribbon" as their theme song.

I don't often listen to Wayne Newton and Tony Orlando at home, but I have fond memories of their music from my youth. I am glad I had a chance to see them live. Maybe I will see them again in another 50 years.

Years ago, I sat in a theater in Columbus, OH, listening to Elizabeth share her story. She was coming out of a difficult time in her life. She coped with her life turmoil by maintaining a gratitude journal. Each day, Elizabeth would write something for which she was grateful. It was not easy at first, but it helped. And, as time passed, she found it easier to think of things for which she was grateful.

Months later, I was in Kalamazoo, MI, listening to Layla share a similar story about how expressing gratitude each day helped her focus on the positive things in her life. Her presentation's title was "Find Your Happy," and thinking of things for which she was grateful was one way to focus on the positive aspects of her life.

I was intrigued. I had recently experienced some significant setbacks in my life. A painful divorce, a difficult move, and a new job that involved a substantial pay cut wore down my stamina and often left me feeling helpless. When I heard Layla and Elizabeth, my life had already begun to improve, but I often found myself drowning in self-pity. I was an active participant on several social media platforms, and I looked back at the thoughts I shared in previous months. Reading them, I saw a negative person with a pessimistic outlook. This discovery surprised me, as it did not match my self-perception.

I resolved to change.

Inspired by Elizabeth and Layla, I adopted a new daily habit. Each morning, my first thought after waking was to find something in my life for which I was grateful. I decided to share this thought on Facebook and Twitter. I did this every day for a week. Then every day for a month. Then a month turned into a year.

It is now ten years later, and I have missed very few days of posting daily gratitude.

Some days, I find it challenging to think of something. But I always do, which tells me that the positive things in life are sometimes hidden, but they are always there.

There are a few things for which I am grateful every day, such as my sons, my health, a steady job, and a safe and comfortable place to live. I try not to repeat myself, and I try to focus on things that are relevant at the moment, such as something I did or experienced yesterday.

I do this primarily for myself. It is a daily reminder to focus on the positive things in my life.

But many people have told me that my posts inspire them. Just like Layla and Elizabeth continue to inspire me. And that makes me smile.

Episode 749

Keith Casey on ngrok and Webhooks

Keith Casey explains the ngrok reverse proxy tool, how it is useful for those creating and consuming APIs, and webhooks.fyi, which assists people using webhooks.




I have noticed that a movie can be successful if it has nothing more than a good beginning and a good ending. The beginning must be good enough that people do not walk out or switch channels early; the ending stays in the audience's mind long after they finish watching. If a movie has a strong beginning and end, people will remember it fondly, even if the middle 80% is crap.

Robert Jordan must have understood this principle when he applied it to his "Wheel of Time" series. Although Jordan did not survive to complete the series, his widow selected Brandon Sanderson to finish what Jordan began. Sanderson tied up many plot threads and added action to the story in the final three volumes. "A Memory of Light" is the finale of the 14-volume epic series.

After years of buildup, the forces of good - led by Rand al'Thor - and the forces of evil - led by The Dark One - finally clash in an epic war. The book - the entire series, in fact - climaxes in a chapter almost 200 pages long, titled "The Last Battle." This chapter switches context between the multiple fronts of the battle, fought by the myriad of characters introduced in the preceding volumes.

With the possible exception of volume 1, the books written by Sanderson are the strongest of the series, and "A Memory of Light" is the best of these three.

Jordan's strength was world-building. Sanderson's strength is storytelling. The two combine their powers in this Coda.

More than once, I came close to abandoning this series, but I soldiered on in anticipation of the finale. Fortunately, Sanderson brings a solid conclusion to a series that lost steam about halfway through as the action dragged and the plot moved at a glacial pace. It is safe to say that Sanderson saved this series for me.

It has been almost a year and a half since I began this journey. I feel a sense of accomplishment after conquering fourteen books and many thousands of pages.

The strong ending will stay in my mind long after I have finished reading.

IntoTheWoodsStephen Sondheim's "Into the Woods" mashes up many Brothers Grimm fairy tales. Broadway performers brought the show to life Friday evening at Chicago's Nederlander Theater.

The play interweaves the tales of the various legendary characters: A witch promises fertility to a childless couple if they can bring to her "the cow as white as milk, the cape as red as blood, the hair as yellow as corn, and the slipper as pure as gold" - a collection of artifacts that happen to correspond with artifacts from Jack & the Beanstalk, Little Red Riding Hood, Rapunzel, and Cinderella. All the characters face challenges during the quest, but Act 1 concludes with a happy ending to each storyline.

Sadly, things begin to deteriorate in Act 2. Instead of living happily ever after, the heroes confront everyday challenges, such as marital infidelity, the death of a loved one, deciding on a scapegoat, and battling a giant who descended from the sky to seek revenge for the death of her husband.

James Lapine's script provides enough humor and twists to keep us entertained for almost three hours while comforting us with the stories from our childhood.

Stephen Sondheim's music and lyrics are excellent, as always. The legendary composer and lyricist, who passed away in 2021, achieves a high mark - even by his own standards. His melodies are charming, and his lyrics are clever. In describing her aging cow, Jack's mother sings: "We've no time to sit and dither; While her withers wither with her."

The cast was superb. About half reprised roles they performed in a recent Broadway production. Gavin Creel and Jason Forbach particularly impressed as the two princes with their bright brightly-colored costumes and their exaggerated emotions. Kathy Geraghty stole the shown whenever she was on stage as a sassy Little Red Riding Hood, switching between skipping along happily to igniting into a tantrum. Unsurprisingly, real-life husband and wife Sebastian Arcelus and Stephanie J. Block showed great chemistry as the Baker and his Wife. Puppeteer Kennedy Kanagawa, who controlled Jack's sad but affectionate cow Milky White, did an excellent job portraying the emotions of the creature. He later returned with a friend, as they portrayed the female giant by marching giant shoes across the stage.

Tonight's cast was as enthusiastic as I have seen at a major theater production. The audience held their applause an extra few songs after each song and applauded each actor when they first appeared on stage. The enthusiasm may have been due to the abundance of children in the audience or the familiarity of the characters. Or it may have been a response to the excellent material and performances.

GCast 148:

Working with ChatGPT

An overview of ChatGPT, how you can use it to work more effectively, and a discussion on the ethics of using the results.

Episode 748

Chris Woodruff on HTTP

A lot of tools abstract away the complexities of HTTP. But Chris Woodruff believes it is essential for developers to understand HTTP when writing web APIs. He breaks down the fundamentals of this technology for us in this video.

May 2023 Gratitudes

Comments [0]

Today I am grateful to see Emmaline in concert last night

Today I am grateful that my son called me from Paris, France yesterday morning.

Today I am grateful to take a day off when I am feeling unwell.

Today I am grateful for lunch with Juan yesterday.

Today I am grateful that I feel safe

Today I am grateful I made it 40 days without alcohol or meat

Today I am grateful for my son's engagement to a wonderful young woman.

Today I am grateful to spend Easter with my family in Michigan

Today I am grateful that my sister received her lab results this morning and she is now cancer-free!

Today I am grateful for no bad news from my dermatologist yesterday

Today I am grateful to spend time this week with Randy

Today I am grateful that I survived the recent round of layoffs at my company.

Today I am grateful to see "A Soldier's Play" last night.

Today I am grateful to see the musical "Jagged Little Pill" last night.

Today I am grateful to finish preparing my taxes.

Today I am grateful to unexpectedly run into many old friends at the Microsoft office last night.

Today I am grateful for the taste of ice cream

Today I am grateful to those who lift me up when I am down.

Today I am grateful to virtually attend the 20th Anniversary celebration of #GLUGNET last night with Joe, Sam, and Carl.

Today I am grateful to the bike shop that repaired my wheel yesterday and did not charge me.

Today I am grateful to attend an engagement party for my son and my future daughter-in-law and to meet my future in-laws.

Today I am grateful for new shoes

Today I am grateful for a conversation with Shahed yesterday.

Today I am grateful for 10 years of daily gratitude

Today I am grateful to see "Last Night and the Night Before" at the Steppenwolf Theatre last night.

Today I am grateful:
- to attend the ISTC STEM Showcase yesterday and see my students show off the project they built
- to see a presentation by high-level Microsoft executives in Chicago yesterday
- to attend a private Microsoft reception last night

Today I am grateful
- to participate in a Career Panel for Hispanic high school students
- for a barbeque picnic with the class I helped mentor this year

Today I am grateful:
- to interview high school students yesterday in Chicago for the Hidden Genius program
- to see Graham Nash in concert last night

Today I am grateful for dinner with my siblings last night in Michigan

Today I am grateful to attend my nephew Dylan's lacrosse game last night.

Today I am grateful for a few days in Michigan visiting family

Today I am grateful for Inbox Zero

Today I am grateful to Zerto for a free ticket to see Guardians of the Galaxy 3 last night.

Today I am grateful to see "Into the Woods" at the Nederlander Theatre last night.

Today I am grateful that the predicted rain held off today.

GrahamNash2023Graham Nash has recorded six solo albums over the past fifty years. Many good tunes and a few minor hits came from these albums. He could have filled his set Friday night at the Old Town School of Folk Music with songs from those albums. He could have used the show to promote his latest recordings. But, early in the show, he pointed out that he would need to remove some of the old songs if he added new songs.

He looked out across the crowd and their hair of silver and blue, and he concluded what they came to hear. They came for his old hits - particularly those he recorded with some combination of Stephen Stills, Neil Young, and the recently deceased David Crosby. Nash was a founding member of three groups that involved these men: Crosby Stills & Nash, Crosby Stills Nash & Young, and Crosby & Nash. The groups achieved their greatest success in the 1970s, thanks mainly to their excellent vocal harmonies. Still and Young did not appear on stage in Chicago, but guitarist Todd Caldwell and keyboardist Shane Fontayne joined Nash on stage and filled in admirably.

Nash opened with CSN's 1982 hit "Wasted on the Way." He followed this with "Bus Stop," a hit for the Hollies, another band founded by Nash.

Between songs, the singer told stories of his career: the time he entered a talent show opposite John Lennon and Paul McCartney and won (which may have been because John and Paul missed the judging, which took place after the last bus back to Liverpool); the time Joni Mitchell inspired him to write a song when she bought a vase and placed flowers in it while he lit a fire; and the time a drug dealer bet him $500 he could not write "a song before you go," which he did and titled it "Just a Song Before I Go." Graham claimed that a relative of the dealer wrote him a check for $500 and slipped it to him years later.

The stories may or may not be true, but that mattered little to the audience, which found them entertaining.

Nash paid tribute to his late friend David Crosby, singing "To the Last Whale," "Critical Mass," and "Wind on the Water" - songs that the two recorded as a duet years ago. "We all expected David to go much sooner than he did," quipped Graham.

After two sets, the band performed an encore that concluded with "Teach Your Children," which brought the crowd to its feet to sing along, providing a beautiful ending to a beautiful show.

I have lost track of how many years I have been doing this. I think this is the fifth year mentoring Chicago high school students as part of the Illinois STEM Challenge, but it could be the sixth.

This year was different from the previous two. I was able to work directly with the students rather than remotely via messages and video chats.

The COVID pandemic hit the United States in 2020, interrupting the school year's end and forcing the cancellation of the student showcase. In 2021, every Chicago public school held classes virtually, so this program was 100% virtual. 2022 was a hybrid model, but I could only attend in person a few times, thanks to a demanding day job. But this year, I worked in person with the students for almost four months, helping them form and develop ideas on how to use technology to make the world more sustainable.

During the four-month program, each team of 3-6 students designed a project around the theme of sustainability.

After months of work, the four teams presented their ideas to the class and the mentors. The projects included:

  • Adding sustainability information to garment receipts to provide better transparency to consumers
  • Self-driving robots that can speed up the loading and unloading of trucks, reducing emissions
  • Water-powered vehicles, reducing the consumption of non-renewable carbon fuels
  • A browser plug-in for Bing that displayed a sustainability score whenever it listed a company and allowed users to earn points for supporting sustainable companies

The other mentors and I selected Team 8 to represent their school at the ISTC Showcase. We chose the Bing plug-in based on an excellent demo they created. We then helped the team to refine their presentation and their speaking skills.

On April 27, Team 8 presented their project to a larger audience at the Showcase in Chicago's West Loop neighborhood. It was their best delivery yet, which impressed those who saw it.

I am already looking forward to next year!

Episode 747

Eldert Grootenboer on Azure Service Bus

Eldert Grootenboer describes Azure Service Bus, its uses, how to work with it, and how it differs from other Azure queuing technologies. He also reveals a couple of upcoming features.


Nine years ago, I accepted a job in Chicago and I moved here a few months later. I still feel that I am exploring this and discovering new things to see and do.

When friends and family visit, they often ask me for suggestions on what to do. I compiled this list for them and for anyone else considering visiting the Windy City.

It is not intended to be an exhaustive list. Rather, these are the things that I enjoy about the city.


Chicago has some world class museums. The most famous are:

I recommend buying tickets in advance on a summer weekend to avoid the lines.

There are also a bunch of small museums, such as the National Museum of Mexican Art, the Museum of Contemporary Art, the Chicago Architecture Center, the National Hellenic Museum, and a bunch of historically preserved homes.

Frank Lloyd Wright’s studio is in Oak Park, just west of Chicago and he designed many buildings in the area.


  • Baseball: There are 2 Major League teams: The White Sox and the Cubs. There are some Minor League baseball teams in the Chicago area, but they are not downtown
  • Soccer: Chicago Fire
  • American football: Bears

Most of the local colleges have sports teams. Check their web sites if you are interested.


Chicago has many excellent music venues and just about every band stops here on their tours. I prefer the smaller clubs. My favourites are:

Free Touristy Stuff

Here are a few popular tourist spots near downtown. All offer free admission, but you will need to pay for parking.

  • Grant Park
  • Millennium Park
  • Navy Pier
  • Lake Michigan
  • Lincoln Park Zoo
  • Chicago Riverwalk

Paid Touristy Stuff

  • Observation deck at Willis/Sears Tower and at John Hancock Building
  • Canoe and kayak rentals
  • Cruises of Lake Michigan


I spend a lot of time exploring the city on my bike. Chicago is more bike-friendly than most US cities with plenty of bike lanes (but also plenty of traffic, so wear a helmet and be attentive!) You can bring your own bike or rent one. Divvy is a company that rents bikes by the hour, day, or year. I can suggest a few routes.

Architecture Tours

There are a few companies that offer boat tours along the river all day long.

You can also book a walking tour or a Segway tour.

If you want to see the city from the water without the cost of a tour, you can take a water taxi


Chicago is a very international city and it is reflected in the cuisine. You can find Mexican, Middle Eastern, Chinese, Japanese, Indian, German, and Italian restaurants in the city. But you can also find food types that are rare in many other American cities, from places like Eastern Europe, Central Asia, and the Phiippines. 

Chicago is famous for a few specific foods: 

- Steaks. Due to its history as a meat packing center, the city boasts many excellent steak houses.

- Chicago-style hot dogs. A wiener topped with an assortment of unusual decorations.

- Chicago-style pizza. Some people claim this is more like a casserole than a pizza, but it boasts a lot of toppings. Try tavern-style pizza for another treat that is popular in Chicago.

- Italian Beef. Thinly-sliced roast beef on a hoagy roll, topped with hot or mild peppers.


Northwestern University (just north of Chicago), the University of Chicago, and DePaul University all have nice campuses that are worth visiting; but there are many other universities in the city.


Enjoy your visit to my adopted home town. Let me know if you think I should add to this list.

LastNightAndTheNightBeforeMonique and her daughter Sam show up unannounced at the New York home of Monique's sister Rachel and her partner Nadima. Monique tells them they came because her husband Reggie ran off with another woman after the local factory in southern Georgia closed.

Their arrival disrupts the couple's home, but not as much as when they learn that most of what Monique has told them is false.

We learn the truth of what happens in flashbacks that reveal the relationship between Monique, Sam, and Reggie, why they separated, and why Monique ran. Each flashback reveals an unexpected twist that keeps the audience alert. We do not learn who or what Reggie is burying in the opening scene until well into the second act.

The Steppenwolf Theatre staged a gripping production of Donnetta Lavinia Grays's play "Last Night and the Night Before," directed by Valerie Curtis-Newton. What begins as a character study evolves into a mystery and a thought-provoking story about family responsibility, drug addiction, guilt, and loyalty.

With only five actors in the show, each one fills a different role with different personalities and faults. Ayanna Bria Bakari, Sydney Charles, Jessica Dean Turner, and Namir Smallwood shined as Monique, Rachel, Nadima, and Reggie, respectively. But Aliyana Nicole stole the show as innocent, intelligent, and precocious Sam. She would escape her troubled life by reciting the nursery rhymes, songs, and hand games her father taught her.

If I had one complaint about the show, the dialogue between the actor and the audience was sometimes lost. It may have been the acoustics, the sound system, the actors' projection, or Monique's southern drawl, but I missed parts of the conversation and needed to fill them in via the context surrounding them.

This drawback was not enough to lessen the emotional impact of the show. This play will stay with me for some time.

Bruce Jackson has been a lawyer at Microsoft for the past two decades, which happens to be the same company that employs me. But his time at the tech giant is a small part of his autobiography - "Never Far from Home: My Journey from Brooklyn to Hip Hop, Microsoft, and the Law." Instead, Jackson takes us on a trip through his life growing up in the New York City projects, attending Hofstra University and Georgetown Law School, and running a successful entertainment legal business before joining Microsoft.

His life is a success story in which he escaped the cycle of poverty common among many raised in a single-parent home in the inner city.

He points to a strong work ethic that helped him succeed, whereas many from his background did not. Still, he also acknowledges the advantages he had that many of his childhood neighbors lacked - not the least of which was a supportive extended family. With few opportunities in the lower-income black neighborhoods of Manhattan and Brooklyn, many of his friends turned to drugs and ended up dead or in jail. Few were able to overcome the systemic racism that stood in their path.

After law school, the author worked in the entertainment industry, representing many of the top hip-hop artists in America, such as LL Cool J, Heavy D, and Busta Rhymes. He founded one of the country's most successful black-owned entertainment law firms. From there, he accepted a job as an attorney at Microsoft, rising in the ranks and using his position to promote diversity and inclusion within the company.

Jackson immediately grabs the reader with a story of when police pulled him over and jailed him overnight because of an unpaid parking ticket. He tells of the time he was arrested at age ten when a policeman chased him through a subway tunnel because he vaguely looked like a crime suspect. He recounts another arrest and another night in jail years later - this time because he did not have physical proof that his car was insured. Such encounters underscore the differences between my life and Mr. Jackson's. It is almost unthinkable that police would choose to incarcerate a white man like me on such trivial charges. But they were suspicious of a black man in an expensive car playing hip-hop music.

Few people of color existed in almost every environment into which he arrived. Jackson found few people who looked like him when he started at law school, in the business side of the entertainment industry, and in the corporate high-tech world. Conscious and unconscious barriers existed both professionally and socially. He worked to change things - providing opportunities for qualified minorities within his organization and within the broader industry. Jackson is now the associate general counsel for Microsoft. But the legal department looks very different than it did when he began over 20 years ago.

When faced with an obstacle like institutional racism, you can approach that obstacle in multiple ways. You can use it as an excuse to remain where you are, or you can figure out how to get past it. Jackson chose the latter approach. But he did not stop there. After he found himself in a position of influence, he used his position to change the system.

Jackson is the lead character in this rags-to-riches story. His professional success shows we can rise above our circumstances through hard work. But we need to acknowledge that the playing field is not level. Jackson succeeded with an almost obsessive work ethic - one that cost him multiple personal relationships. The system includes barriers for African Americans that white people in this country often do not acknowledge or even notice. It is up to all of us to recognize this and address the issue.

GCast 147:

Creating and Deploying an Azure Spring App

Learn how to create an Azure Spring App and deploy a Java Spring application to this app.

Twenty years ago, I lost an argument, and it changed my life.

While talking with my co-worker Dan, I expressed relief that my current client did not require me to send a weekly status report. I saw status reports as a waste of valuable time better spent writing the software I was hired to build.

Dan told me that he always sends a status report, whether or not the customer requested it. We debated, I lost, and I have been sending regular status reports to my managers and customers ever since.

The Format

When I created my first Status Report, I thought of how we ran our Daily Standup Meetings. Those tend to be concise because each team member lists only what they worked on yesterday, what they planned to work on today, and any issues they were having. This sounded like a good starting point for my document. 

I created a Status Report template and organized it like the Standup Meetings. The main sections are:

  • Highlights
  • Last Week
  • Next Week
  • Upcoming
  • Issues

The "Highlights" and "Upcoming" sections are optional.

Highlights (optional)

Some weeks, I want to call attention to something exceptional I did. I have worked in organizations where my manager calls out a few highlights from his team each week and reports those to their manager. Adding this section makes it more likely that they will include my activity. It also makes clear the impact I am having. I omit this section if I have nothing significant to report this week.

Last Week

In this section, I list the things I accomplished this week.

Some of them are significant milestones, and sometimes I report that I reached out to someone to start a dialogue on a project.

Most of the time, I order these by importance. However, I work with various partners in my current role, so I have a section for each partner.

Next Week

Here I list the tasks I plan to accomplish next week. These can include scheduled meetings, milestones I expect to complete, and projects I plan to begin working on.

Upcoming (optional)

If I schedule something significant beyond next week, I will add this section and list it here. For example, I may plan to speak at a conference next month. I omit this section if I have nothing to report.


In this section, I call out risks and potential blockers: anything that may prevent me from accomplishing my goals on time. My manager may be able to remove these blockers, but only if he is aware of them. If not, I am at least making them aware of risks so we can plan for contingencies.

Examples include:

  • We are waiting for another team to complete a necessary part of our project
  • We do not have enough time and/or people to meet an aggressive schedule
  • I will be on vacation and unavailable the last week of the month
  • Customers have reported a large number of bugs. We should take the time to fix them.

Advantages of a Status Report

Here are the advantages of preparing and sending a regular status report to your customer/manager.

Communicate what you accomplished

A regular status report is your chance to brag to the boss about what you did this past week. In particular, the "Highlights" section at the top calls attention to things I am particularly proud of. But it also lets him know I have been busy this past week.

Communicate your plans for the coming weeks

List what you plan to work on next week. The main advantage is to verify that your activities align with your manager's or customer's goals. If your manager wants you to work on x, but you are working on y, you want to know sooner rather than later, so you can correct your course without wasting too much time. In agile software development, we often talk about the benefits of a fast feedback loop. That same principle helps us in our career.

Document your accomplishments for later reference

I have worked at many companies where I needed to list my accomplishments at the end of the year. Remembering what you worked on nine months ago can be a daunting task. A weekly status report serves as a record to which you can refer and refresh your memory.

Raise Issues

A status report is an excellent place to document issues, potential problems, blockers, and anything that might negatively affect an outcome.

In my experience, people often forget verbal communication. But having a consistent place where you report issues facilitates communication.

It also protects you from the occasional unscrupulous manager who insists you never reported an issue.


This article listed the advantages of preparing and sending a regular status report to your customer and/or manager. I no longer remember which of these came from Dan and which ones I discovered over the past two decades. But this practice has been good for my career.

Ryan Booz on PostgreSQL

Comments [0]

Episode 746

Ryan Booz on PostgreSQL

Ryan Booz is an advocate for RedGate focusing on PostgreSQL. As a former SQL Server developer, he describes some of the major differences between the two databases.

The cast of Jagged Little PillHow do you string a single artist's many songs into a coherent musical theater production?

In the case of Alanis Morisette's 1995 album "Jagged Little Pill," the answer is that you throw everything into the story. This play includes subplots about bisexuality, interracial adoption, obsessive parenting, opioid addiction, and rape. 

The production at Chicago's Nederlander Theater was an excellent interpretation of Morisette's music, tying it with a story interweaving a family's turmoil during a stressful period.

Most of the music came from Morisette's 1996 album "Jagged Little Pill," with a few songs from other albums and two new songs written for the show. Ms. Morisette's music tends to be heavy and angry, which suits this show's dark themes. Yet, the arrangers chose to lighten the original music, softening the arrangements with strings and sometimes slowing it down, reducing the original's ire.

Heidi Blickenstaff stole the show as MJ Healy, an opioid-addicted mother proud of her Harvard-bound son Nick, frustrated by her radical lesbian adopted daughter Frankie, and disconnected from her workaholic husband Steve. 

Writer Diablo Cody interjected plenty of humor into the work. One of my favorite parts happened when Frankie read/sang her poem "Ironic" to the class, and one of her classmates provided the feedback: "None of those things are ironic." This line drew one of the biggest laughs from the audience.

The story comes to a head at a high school party when Steve witnesses one of his friends sexually assault another friend while she is passed out drunk.

The music connects the scenes and often emphasizes a mood rather than moving the story forward. The same could be said for the numerous dancers who fill the stage to entertain rather than to add to the story.

"Jagged Little Pill" is a thoughtful story filled with emotion and good music. And it was damn entertaining!

The cast of A Soldier's Play I rarely see anything other than a musical at Chicago's CIBC Theatre. "A Soldier's Play" featured songs and dances - primarily blues and stomping, but it is a serious drama – not a musical.

"A Soldier's Play" takes place on a segregated army base in Louisiana during World War II. Sargent Vernon Walters was a career military man who resented any negroes he believed acted without dignity. He particularly despised C.J. Memphis, a simple, good-natured private everyone liked. One night, someone shot to death Sgt. Walters as we staggered drunkenly back to the base. Captain Richard Davenport arrived from Washington, DC to investigate. His presence disrupted the camp, as no one had ever seen a black officer before Capt. Davenport.

David meets the cast of A Soldier's Play Flashbacks tell the story through Davenport's interviews with those on the base. We see the colored soldiers, their relationship with their commanders, and the events leading up to the murder. "Soldier" does a masterful job of peeling back the layers of life in the Jim Crow South. All manners of racism confront the black enlisted men - from condescending white officers to the local Klan to microaggressions to explicit use of the "N" word. It made the audience feel uncomfortable in ways we should be uncomfortable.

Norm Lewis was excellent as Davenport, the stoic outsider lawyer, and Eugene Lee as Walters appeared to channel Adolph Caesar's performance in the 1984 film adaptation - "A Soldier's Story." Among the ensemble of enlisted men, Sheldon Brown stood out as the likable C.J. Memphis.

Kenny Leon's direction kept the sets simple and the lighting harsh and focused on the characters.

"A Soldier's Play" runs for only two weeks in Chicago but deserves a longer run. It made me think as few plays have.


The Problem

For years, I have been using DropBox to sync files between my various computers, including my work computer.

Last week, a popup appeared on my work computer informing me of a problem (Fig. 1)


Data Loss Prevention warning popup

Fig. 1

The message is titled "Data Loss Prevention." According to the message, I was sending files containing sensitive information to a third-party server (DropBox). This was absurd because

  1. I have been using DropBox in the same way for over ten years
  2. I do not use DropBox for work files - only for personal files.
  3. The files I store in Dropbox contain no sensitive information. Examples include a list of movies I've watched or want to watch, concerts I plan to attend, and half-written blog posts.

I tried clicking the [Dismiss] button. I tried clicking the [Allow] button and selecting each option under "Business justification." Nothing worked. The popup continued to appear at least every few minutes.

The Solution

After several days of investigating, I discovered this is a security feature of Office 365, so it only affects Office files (.docx, .xlsx, .pptx, etc.) The other files listed are the invisible binary "cache" files that DropBox uses internally to sync.

On the Home ribbon of each Office application is a [Sensitivity] button (Fig. 2)

Office document Sensitivity button

Fig. 2

The application enables this button only if Office 365 is installed on the current computer.

With a document open, expand this button, as shown in Fig. 3, and select the appropriate sensitivity for the current document.

Office document Sensitivity button with menu expanded

Fig. 3

In my case, every document was set to "General" sensitivity. For documents that contain no sensitive information, I selected "Non-Business." This setting displays in the status bar at the bottom of the screen. After saving the document, changes no longer trigger the popup warning. If I find a work-related document in my DropBox folder, I will move it to another folder; but this is unlikely to happen, as I went through that exercise years ago.

I review this setting every time I update a Microsoft Office document in my DropBox folder.


This solution is not ideal. My home computer does not use Office 365, so I can only change the Sensitivity setting from my work computer - an extra step, but one I need only do once for each changed file.

I have not found a way to flag all documents in a directory as "Non-Business," so I need to do this for each document I modify. It is annoying, but the "Non-Business" setting remains with the document once I change it.


When you create an Azure subscription, Azure will charge an hourly fee for any services in that subscription. Someone pays that fee - sometimes it is Microsoft and sometimes it is you.

Microsoft offers subscriptions that are free to you. For example, a student may create a subscription with $100 credit to spend; and anyone may sign up for a 30-day trial, which provides $200 credit. It is worth checking if your employer provides you an MSDN subscription, which includes an Azure account and some credits to spend.

This article is not about any of those. In this article, I will explain how to create an Azure subscription in which you pay for all the services you use. Although this will charge your credit card, this has the advantage that there is no limit to the amount of services you can consume. A Pay-As-You-Go account makes sense if you have a business and are using AZure as part of that business. Most recently, I went through this process when I registered as a Microsoft partner.


To create a new Subscription, log into the Azure Portal. If you do not yet have an account associated with Microsoft, you may create one.

In the portal, search for "Subscriptions," as shown in Fig. 1.

Find Subscription

Fig. 1

Select "Subscriptions" to open the "Subscriptions" blade, as shown in Fig. 2.

Subscriptions Blade

Fig. 2

Click the [Add] button to begin adding a new subscription. The portal will prompt for a type of subscription, as shown in Fig. 3.

Select Subscription

Fig. 3

Click the [Select offer] button under "Pay-As-You-Go". The "Your profile" dialog displays, as shown in Fig. 4.

Your Profile

Fig. 4

Enter your name, email address, phone number, and mailing address.

Check the "customer agreement" checkbox. You may optionally check the checkbox allowing Microsoft to share your information with other partners.

Click the [Next] button to display the "Payment information" dialog, as shown in Fig. 5.


Fig. 5

Enter information for a valid credit card and click the [Continue] button.

The Quickstart Center page displays, as shown in Fig. 6.

Quickstart Center

Fig. 6

You can begin using Azure from here or you can return to https://portal.azure.com and create resources.


In this article, I showed you how to create a new Azure Subscription using the Pay-As-You-Go model.


Microsoft is a large company with plenty of people and products. But you may be surprised to know they do not do everything on their own. The company works with many partners around the world to provide value to their customers.

Becoming a Microsoft partner can be profitable. A report by the International Data Center (IDC) determined that partners earn more revenue than Microsoft when they partner together:

"IDC has established that for every $1 of Microsoft revenue, partners derive a multiple 
in their own business based on their activities or revenue share of those activities. 
A key insight in expanding economic value and pathways to growth is that 
services-led partners make $7.63, and software-led partners make $10.11."

Source: https://assetsprod.microsoft.com/en-us/idc-report-microsoft-ecosystem-value.pdf

Also, for some partnership types, Microsoft can bill your customers for the Azure they consume, freeing you from this responsibility. 

Microsoft Partners can do the following:

  • Build custom solutions using Microsoft products and services
  • Create and sell a commercial product or service using Microsoft products and services
  • Create and sell an Add-in for a Microsoft product
  • Use your expertise with Microsoft products and services to serve as a consultant or contractor to your customers
  • Resell Microsoft products and services
  • Build hardware that integrates with Microsoft products and services
  • Develop and sell consumer applications that run on Xbox or Windows

As a Microsoft partner, you can choose to do any or all of the things listed above.

Before you Begin

Before you register as a partner, you should have an idea what you want to do and how you want to make money. View the list above and decide which items describe your business.

You will also need a business email address. A business email address is defined as one that is not provided by an email hosting company, such as one ending in outlook.com, gmail.com, or yahoo.com. It does not have to be associated with a registered corporation, but it should belong to you or your company. I own the domain davidgiard.com, so I used an email with this domain name.

Signing Up

To register as a Microsoft partner, navigate to https://partner.microsoft.com. The home page will look similar to Fig. 1.

Partner Site

Fig. 1

Click the [Become a partner] button (Fig. 2) to display the "How would you like to partner with Microsoft?" dialog, as shown in Fig. 3.

Become a Partner Button

Fig. 2

How Would You Like To Partner

Fig. 3

Select all the checkboxes that apply to your business; then, click the [Next] button to display the "Get started" dialog, as shown in Fig. 4.

Get Started

Fig. 4

Enter your business email address, as described above and click the [Continue] button. The "Create a new Azure Active Directory" dialog displays, as shown in Fig. 5.

Create New AAD

Fig. 5

At the "Country/region" dropdown, select the country in which your business is located.

At the "Organization name" field, enter a name for your company.

At the "Address line 1" and "Address line 2" fields, enter the street address of your business. Only the first address line is required.

At the "City" field, enter the city in which your business is located.

At the "State/province" field, enter the state or province in which your business is located.

At the "ZIP/Postal Code" field, enter the postal code where your business is located.

At the "Primary contact phone" field, enter your phone number.

At the "First Name" field, enter your first name.

At the "Last Name" field, enter your last name.

At the "User name" field, enter a unique user name. You will use this to log into the partner center and Azure portal.

At the "Password" field and "Confirm password" fields, enter a password. You will use this to log into the partner center and Azure portal.

At the "Primary domain name" field, enter a unique name to identify your Azure tenant.

At the "Alternate email address" field, enter another email that Microsoft can use to contact you. This one can be a personal email from gmail.com, outlook.com, yahoo.com, or something similar.

Click the [Continue] button to submit this form. If you completed all the required information, you will receive an email similar to the one in Fig. 6, asking you to verify your email address.


Fig. 6

Click the "Verify email address" link in this message. A web page should open in your browser, indicating that your email was successfully verified, as shown in Fig. 7.

Email Verified

Fig. 7


Congratulations! You are now a Microsoft partner and you can start earning money!

If you do not yet have an Azure account associated with this email address, one will be created for you. You will need to configure billing for that account. I will cover that in the next article.

ChatGPT is a large language model trained by OpenAI capable of engaging in natural language conversations with humans on a wide range of topics.

In a recent article, I talked about how to use ChatGPT to make your work easier and more productive.

In this article, I will describe some ways to have fun with ChatGPT.

Creative Writing

You can use ChatGPT to generate creative written content, to spark ideas, or to expand on your ideas.

Here are some suggestions.


What is a good metaphor for a movie that starts poorly but has a good ending


A good metaphor for a movie that starts poorly but has a good ending could be a "diamond in the rough." Like a diamond that has to be polished to reveal its full beauty, a movie that starts poorly may need time to develop and unfold before its true potential is realized. Just as a diamond has a rough exterior that can be deceptive, a movie may have a slow or unremarkable start that doesn't do justice to its eventual payoff.



Once upon a time, an Enterprise Architect was asked to write code that would solve the problem of world hunger.


Once upon a time, an Enterprise Architect was asked to write code that would solve the problem of world hunger. The architect was thrilled to take on such a monumental challenge and set to work immediately.

After weeks of research and coding, the architect came up with a program that would distribute food and resources to the most impoverished regions of the world. The code was complex and required a vast network of sensors and data analysis tools to monitor and track food supplies, but the architect was confident that it would work.

The program was launched with much fanfare, and the architect watched eagerly as the data started pouring in. However, as time went on, the architect began to notice some troubling trends. Despite the best efforts of the program, hunger rates were still rising in some areas, and food supplies were not reaching some of the neediest communities.

The architect was devastated. He had put so much time and effort into the project, and yet it seemed that it was not having the intended impact. The architect realized that there was much more to solving the problem of world hunger than just writing code. There were complex social, economic, and political factors at play that could not be addressed with technology alone.

The architect learned an important lesson that day. He realized that the most significant problems in the world require a multifaceted approach that takes into account the complexities of human behavior, cultural differences, and political systems. He vowed to continue working on the problem of world hunger but with a more comprehensive and holistic approach that involved working with communities, policymakers, and organizations that were already doing important work in the field.

Although the architect's code did not solve the problem of world hunger, it did raise awareness of the issue and sparked important conversations about how technology can be used to address global challenges. In the end, the architect realized that even failed projects can have a positive impact if they lead to meaningful discussions and renewed efforts to tackle the world's most significant problems.



2 dummies are having a conversation about debugging code


Dummy 1: "Hey, how do you debug your code?"

Dummy 2: "What do you mean by 'debugging'?"

Dummy 1: "You know, finding and fixing errors in the code."

Dummy 2: "Oh, right. I usually just print out the code and read it to see if anything stands out."

Dummy 1: "What? That doesn't make any sense. How do you find the errors that way?"

Dummy 2: "Well, if I see something that doesn't look right, I'll just change it and see if it works."

Dummy 1: "That's not how you debug code! You need to use a debugger tool that lets you step through the code and see what's happening."

Dummy 2: "What's a debugger tool?"

Dummy 1: "It's a program that helps you find and fix errors in your code. You can set breakpoints and step through the code line by line to see where the problem is."

Dummy 2: "Oh, that sounds complicated. I'll just stick to printing out the code."

Dummy 1: "No, you need to learn how to use a debugger tool. It will save you so much time and make debugging much easier."

Dummy 2: "Okay, okay, I'll try it out. But if it doesn't work, I'm going back to printing out the code."



Write a story about a politician who learned a lesson about insulting everyone who disagreed with him


Once upon a time, there was a politician named Mark who had strong opinions on almost everything. He believed that he was always right and that anyone who disagreed with him was simply wrong. As a result, Mark had a habit of insulting everyone who didn't share his views.

Mark was a popular politician in his district, and he had won several elections in a row. However, his insulting behavior began to catch up with him. People began to grow tired of his rudeness and arrogance, and his popularity started to decline.

One day, Mark was invited to speak at a town hall meeting. He was asked a question about a controversial issue, and he responded with his usual insults and dismissive remarks. However, this time, something was different. The audience didn't cheer or applaud like they usually did. Instead, they started to murmur and whisper amongst themselves.

Mark didn't notice at first, but soon he began to realize that the people in the room were upset with him. They were tired of being insulted and dismissed, and they had had enough. Mark tried to backtrack and apologize, but it was too late. The damage had been done.

Over the next few weeks, Mark's poll numbers plummeted. He lost the support of many of his constituents, and his campaign staff started to worry that he might not win re-election. Mark realized that he had made a mistake. He had been so sure of himself and his opinions that he had failed to listen to others and consider their perspectives.

In the end, Mark learned a valuable lesson. He realized that insulting people who disagree with you is not an effective way to win them over. Instead, he started to listen to his constituents and consider their concerns. He apologized for his past behavior and promised to be more respectful and open-minded in the future.

Mark went on to win re-election, but it wasn't easy. He had to work hard to regain the trust and support of the people he had insulted. However, he was determined to be a better politician and a better person, and he knew that he had learned an important lesson about the power of respect and empathy.



Grade the story above for a 12th grade writing class


As an AI language model, I am not programmed to provide grades. However, I can provide feedback on the story you've requested.

The story above is well-written and engaging. It has a clear beginning, middle, and end and effectively communicates the central lesson of the narrative. The protagonist undergoes a character arc, which is an essential element of a well-constructed story.

The story effectively uses dialogue and action to convey the protagonist's transformation and the reactions of the people around him. The language is clear and easy to follow, and the pacing is appropriate.

Overall, the story is suitable for a 12th grade writing class. It demonstrates an understanding of narrative structure and character development and effectively communicates its message.



A fun thing to do with ChatGPT is to recommend activities, entertainment, gifts or recipes. It can suggest things for you based on information you give it. Here are a few examples.


I liked the movie "Big Fish". Can you recommend some others?


Certainly! If you enjoyed "Big Fish," you may like the following movies:

  1. "The Curious Case of Benjamin Button" (2008) - Another fantastical story that explores the wonders and mysteries of life, told through the perspective of a man who ages in reverse.
  2. "The Secret Life of Walter Mitty" (2013) - A man goes on an incredible journey of self-discovery and adventure, inspired by the vivid imagination he has always kept hidden.
  3. "Life of Pi" (2012) - A young man is stranded on a lifeboat with a Bengal tiger, and must use his wit and will to survive while grappling with the deeper questions of life and faith.
  4. "Edward Scissorhands" (1990) - A modern fairy tale about an unusual young man with scissors for hands who learns about love, acceptance, and the complexities of human nature.
  5. "Big" (1988) - A classic comedy-drama about a boy who magically grows up overnight, and must navigate the challenges and wonders of adulthood while still retaining his childlike wonder.

These movies all share some of the whimsy, heart, and imagination that made "Big Fish" so memorable, so I hope you find them enjoyable as well!



Can you recommend a good espresso machine in the $500-1000 price range?


Certainly! There are many excellent espresso machines available in the $500-1000 price range that can produce cafe-quality espresso. Here are a few options to consider:

  1. Breville BES870XL Barista Express Espresso Machine: This machine is highly rated for its built-in conical burr grinder, which allows you to grind fresh beans for each shot. It also has a steam wand for frothing milk, and is programmable for customized shots.
  2. Gaggia Classic Pro Espresso Machine: This machine is highly recommended for its durability and consistency in producing high-quality espresso shots. It has a commercial-grade group head and portafilter, and a frothing wand for milk.
  3. De'Longhi La Specialista Espresso Machine: This machine is praised for its intuitive controls and advanced features, including a built-in grinder, tamping system, and sensor grinding technology. It also has a manual frothing wand for customized milk texture.
  4. Rancilio Silvia Espresso Machine: This machine is well-known for its durability and ability to produce consistent espresso shots. It has a commercial-grade portafilter and group head, and a powerful steaming wand for frothing milk.

These are just a few options to consider, but there are many other excellent machines available within your price range. Ultimately, the best machine for you will depend on your personal preferences and needs. Be sure to read reviews and compare features before making a purchase to ensure that you choose the machine that is right for you.



My 15-year-old son loves basketball. His birthday is next week. What should I get him?


If your 15-year-old son loves basketball, there are many great gift options to consider for his upcoming birthday. Here are a few ideas:

  1. Basketball hoop: A portable or in-ground basketball hoop is a classic gift for a basketball lover. It will give him the opportunity to practice his skills and play games with friends and family.
  2. Basketball shoes: A good pair of basketball shoes can make a big difference in performance and comfort on the court. Look for shoes that provide good support and traction, and consider his preferred style and color.
  3. Basketball training equipment: There are many tools available to help players improve their skills, such as dribbling gloves, shooting targets, and agility cones. These can be fun and useful gifts for a basketball player.
  4. Game tickets: If your son is a fan of a particular NBA team, consider getting him tickets to a game. This can be a memorable and exciting experience for a basketball lover.
  5. Basketball clothing and accessories: Basketball-themed clothing, hats, socks, and backpacks can all be fun and practical gifts for a basketball player.
  6. NBA 2K22 video game: If your son is also a video game enthusiast, the latest version of NBA 2K22 can provide hours of fun and entertainment.

These are just a few ideas to consider. Ultimately, the best gift for your son will depend on his interests and needs. Talk to him about what he might like, and use your knowledge of his preferences to choose a gift that he will love.



I have some chicken, parmesan, and capers. What should I make for dinner?


One delicious dish that you can make with chicken, parmesan, and capers is Chicken Piccata. Here's a simple recipe that you can follow:


  • 4 boneless, skinless chicken breasts
  • 1/2 cup all-purpose flour
  • 1/2 teaspoon salt
  • 1/4 teaspoon black pepper
  • 2 tablespoons olive oil
  • 1/2 cup chicken broth
  • 1/4 cup fresh lemon juice
  • 1/4 cup drained capers
  • 1/4 cup chopped fresh parsley
  • 1/2 cup freshly grated Parmesan cheese


  1. Preheat oven to 350°F.
  2. Place chicken breasts between sheets of plastic wrap and pound with a meat mallet to an even thickness.
  3. In a shallow dish, combine flour, salt, and pepper. Dredge chicken in the flour mixture, shaking off any excess.
  4. In a large skillet over medium heat, heat the olive oil. Add the chicken and cook until browned, about 3-4 minutes per side.
  5. Transfer the chicken to a baking dish.
  6. In the same skillet, add the chicken broth, lemon juice, and capers. Cook over medium heat until the sauce has reduced by half, about 5-7 minutes.
  7. Pour the sauce over the chicken in the baking dish.
  8. Sprinkle the Parmesan cheese over the chicken and sauce.
  9. Bake in the preheated oven until the cheese has melted and the chicken is cooked through, about 10-15 minutes.
  10. Serve hot, garnished with chopped parsley.

This dish pairs well with a side of roasted vegetables or a salad. Enjoy!



Are you bored and looking for a fun activity? Here are a few ideas.


Be a game master and teach me to program C# in a wacky hilarious adventure text game set on a science vessel in the year 2078 where you will narrate the story and give me choices about what I can do


Welcome aboard the USS Chuckles, a state-of-the-art science vessel on a mission to explore uncharted regions of the galaxy. As you step onto the ship, you are greeted by the game master, who offers to teach you how to program in C# while embarking on a wacky, hilarious adventure.

You are tasked with programming the ship's AI, nicknamed "Giggles", to better understand human emotions and respond appropriately. The game master guides you through the process step-by-step, giving you choices along the way:

Game Master: "Alright, let's get started. First, we need to create a method that will detect the user's emotion. Do you want to use facial recognition or voice analysis?"

Choice 1: "Facial recognition sounds cool." Choice 2: "I think voice analysis would work better."

You choose voice analysis, and the game master continues:

Game Master: "Great choice! Now we need to create a class that will handle the analysis. What should we call it?"

Choice 1: "How about 'MoodAnalyzer'?" Choice 2: "Let's call it 'FeelingFinder'."

You choose MoodAnalyzer, and the game master nods in approval:

Game Master: "Excellent! Now we need to write the code to analyze the user's voice. Should we use machine learning or a rule-based system?"

Choice 1: "I'm feeling lucky, let's go with machine learning!" Choice 2: "I think a rule-based system would be more straightforward."

You choose machine learning, and the game master grins mischievously:

Game Master: "Ooh, this could get interesting! Let's train the algorithm using different emotions. Which emotion should we start with?"

Choice 1: "Happy!" Choice 2: "Angry!"

You choose Happy, and the game master chuckles:

Game Master: "Alright, let's give it a shot. Say something happy for the algorithm to analyze."

You say, "I just won the lottery!", and the ship's AI responds with an enthusiastic, "Congratulations!"

Game Master: "Looks like it's working! Let's try another emotion. Which one this time?"

Choice 1: "Sadness." Choice 2: "Confusion."

You choose Confusion, and the game master scratches their head:

Game Master: "Hmm, this one might be a bit tricky. Okay, say something confusing for the algorithm to analyze."

You say, "Why did the chicken cross the road?", and the ship's AI responds with a puzzled, "I do not understand the purpose of the chicken's action."

Game Master: "Ha! That's great. Alright, one more emotion to try. Which one will it be?"

Choice 1: "Fear." Choice 2: "Love."

You choose Love, and the game master smiles warmly:

Game Master: "Ah, the most complex emotion of them all. Alright, say something loving for the algorithm to analyze."

You say, "I love my family more than anything in the world," and the ship's AI responds with a heartfelt, "That is a beautiful sentiment."

Game Master: "Wow, you did it! Giggles is now fully equipped to understand human emotions. Congratulations on your new programming skills, and welcome to the USS Chuckles crew!"

As you bask in your programming success, the ship suddenly lurches and a warning blares throughout the vessel. The game master looks at you with a sly grin:

Game Master: "Looks like our adventure is just beginning. Are you ready for the next challenge?"



Let's play a trivia game about movies


Sure, I'd be happy to play a trivia game about movies! Let's get started.




Great! Here's your first question: What is the highest-grossing movie of all time (not adjusted for inflation)?



Tell me a joke about Artificial Intelligence


Sure, here's a joke about Artificial Intelligence: Why did the robot go on a diet? Because he had too many megabytes!



Write a poem about HTTP


Sure, here's a poem about HTTP:

HTTP, oh protocol of the web
A standard we use without an ebb
Sending requests, getting responses back
Making the internet a connected track

With methods like GET, POST, and DELETE
We can manipulate resources with ease
Using headers to convey information
And cookies to maintain a session

HTTP, you make the web so fast
And allow us to communicate at last
You're the backbone of the internet's flow
And make the web a joy to know.



Here are some other things you can do with ChatGPT.


Summarize the winners and losers of the NCAA Division 1 basketball Final Four from 2000 to 2010 into tabular form with the titles "Champion", "Runner Up", "Final Score", "Other Teams", "Location", and "MVP"


Sure, here's a tabular summary of the winners and losers of the NCAA Division 1 basketball Final Four from 2000 to 2010:

Champion Runner Up Final Score Other Teams Location MVP
Michigan State Florida 89-76 North Carolina, Wisconsin Indianapolis, IN Mateen Cleaves
Duke Arizona 82-72 Michigan State, Maryland Minneapolis, MN Shane Battier
Maryland Indiana 64-52 Oklahoma, Michigan State Atlanta, GA Juan Dixon
Syracuse Kansas 81-78 Marquette, Texas New Orleans, LA Carmelo Anthony
Connecticut Georgia Tech 82-73 Duke, Kansas San Antonio, TX Emeka Okafor
North Carolina Illinois 75-70 Louisville, Michigan State St. Louis, MO Sean May
Florida UCLA 73-57 LSU, George Mason Indianapolis, IN Corey Brewer
Kansas Memphis 75-68 (OT) UCLA, UNC San Antonio, TX Mario Chalmers
North Carolina Michigan State 89-72 Connecticut, Villanova Detroit, MI Wayne Ellington
Duke Butler 61-59 West Virginia, Michigan State Indianapolis, IN Kyle Singler

Note: MVP stands for Most Valuable Player. The "Other Teams" column includes the other two teams that participated in the Final Four for that year.



Draw me a top-down diagram using Mermaid markdown of the Biblical lineage from Abraham to Jacob


Sure, here's a top-down diagram of the Biblical lineage from Abraham to Jacob using Mermaid markdown:

graph TD;
    subgraph Abraham Branch
    Abraham --> Isaac
    subgraph Isaac Branch
    Isaac --> Jacob
    subgraph Jacob Branch
    Jacob --> Reuben
    Jacob --> Simeon
    Jacob --> Levi
    Jacob --> Judah
    Jacob --> Issachar
    Jacob --> Zebulun
    Jacob --> Dan
    Jacob --> Naphtali
    Jacob --> Gad
    Jacob --> Asher

This diagram shows the direct lineage from Abraham to Jacob in the Bible. The Abraham branch includes Abraham and his son Isaac. The Isaac branch includes Isaac and his son Jacob. The Jacob branch includes Jacob and his twelve sons, Reuben, Simeon, Levi, Judah, Issachar, Zebulun, Dan, Naphtali, Gad, Asher, and Joseph (not shown in this diagram since the prompt only asked for lineage up to Jacob).


If you paste the textual representative given above into [mermaid.live](https://mermaid.live), it will generate the graphic below:

Mermaid.Live visualization

It is worth noting that ChatGPT returned incomplete results. It omitted Ishmael, Esau, Joseph, Benjamin, and all the women. The results sound reasonable, but you should not take them as Gospel (or Old Testament, in this case.)



Jack puts his laptop in his backpack and leaves the room. Jill enters the room and moves his laptop to a basket next to the chair, then leaves. When Jack re-enters the room, where does he look for his laptop?


Since Jack left the room without knowing that Jill moved his laptop to the basket next to the chair, he will most likely look for his laptop in his backpack where he originally placed it before leaving the room. If he doesn't find it there, he might start looking around the room, but it's also possible that he might ask Jill if she has seen his laptop or if she knows where it is.



David wants to create his own city in Spain. What name would your recommend for this city?


For a city in Spain, I would recommend the name "Cielo Azul", which means "blue sky" in Spanish. It's a beautiful and poetic name that captures the essence of Spain's sunny climate and clear blue skies. It also has a nice ring to it and is easy to pronounce in both English and Spanish.




Summarize the Lord of the Rings in 3 sentences


The Lord of the Rings is a trilogy of epic fantasy novels by J.R.R. Tolkien that tells the story of a hobbit named Frodo Baggins who inherits a powerful ring that must be destroyed to save Middle-earth from the dark lord Sauron. Along with a fellowship of other races, Frodo embarks on a perilous journey across Middle-earth to destroy the ring in the fiery depths of Mount Doom. The story is a timeless tale of heroism, friendship, and the battle between good and evil.



My job makes me stressed and overwhelmed


I'm sorry to hear that your job is causing you stress and overwhelm. Here are a few tips that might help:

  1. Take breaks: Make sure to take regular breaks throughout the day to step away from your work and clear your mind. Even just a few minutes of deep breathing or stretching can help reduce stress.
  2. Prioritize: Make a list of your tasks and prioritize them by importance and deadline. This can help you feel more organized and in control of your workload.
  3. Delegate: If possible, delegate tasks to others to help lighten your load. Don't be afraid to ask for help when you need it.
  4. Practice self-care: Make sure to take care of yourself outside of work by getting enough sleep, eating well, and engaging in activities you enjoy.
  5. Talk to someone: Consider talking to a trusted friend, family member, or therapist about your job-related stress. Sometimes simply venting your feelings can help alleviate stress.

Remember, it's important to prioritize your mental health and well-being. If your job is causing you ongoing stress and overwhelm, it may be worth exploring other job options or seeking support from a mental health professional.



What are some good conversation starters on a first date?


Great question! Here are some conversation starters that can help you break the ice and get to know your date better:

  1. "Tell me a little bit about yourself." This open-ended question allows your date to share as much or as little as they want about their background, interests, and hobbies.
  2. "What kind of music do you like?" This question can give you insight into your date's personality and preferences.
  3. "What do you like to do for fun?" This question can help you find common interests and plan future dates.
  4. "What was the last book you read or movie you watched?" This question can spark a discussion about literature, film, or pop culture.
  5. "Do you have any travel plans coming up?" This question can reveal your date's sense of adventure and love for exploring new places.

Remember, the key to a successful first date is to be genuine, respectful, and engaging. Don't be afraid to ask follow-up questions and actively listen to what your date has to say. Good luck!



Write a professional bio for David Giard


Here are a few good conversation starters to consider on a first date:

  1. Ask about their interests: What hobbies or activities do they enjoy? What types of movies or music do they like?
  2. Discuss travel: Have they traveled anywhere recently or have any upcoming trips planned? Where are some places they would love to visit?
  3. Talk about food: Do they have a favorite restaurant or cuisine? Have they tried any new foods recently?
  4. Ask about their job or studies: What do they do for work or what are they studying? What do they enjoy most about it?
  5. Share stories: Share a funny or interesting story from your own life and ask them to share one in return.

Remember, the most important thing is to be yourself and show genuine interest in the other person. Don't be afraid to ask follow-up questions and actively listen to their responses.



Write a professional bio for David Giard as a haiku


David Giard writes code Teaches tech to all who ask His passion inspires.



Write a professional bio for David Giard in the voice of Foghorn Leghorn


Well, I say, looky here, we got ourselves a tech guru by the name of David Giard! This fella knows his way around a computer like a chicken knows its way around a henhouse. He's been writing code since before I could crow, and he's got a real passion for teaching others how to do the same. You can count on David to inspire and motivate you to reach your tech goals, I say, I say.



Notice that some of the inputs are not questions. I just began a conversation and ChatGPT responded as a human being might - completing a story or providing advice. Also, some of the responses solicited more input from me.

The possibilities and applications of ChatGPT are countless and are bounded by your imagination.

Try it yourself at chat.openai.com.

Episode 745

Haider Ghany on Azure Data Centers

Haider Ghany works at Azure Data Centers in the Chicago area. He discusses how the data centers maintain reliability and security and how Microsoft is making data center changes to meet goals around sustainability.

"Towers of Midnight" is the thirteenth book in the epic "Wheel of Time" series and the second authored by Brandon Sanderson, following the death of series originator Robert Jordan.

The saga picks up steam in this volume as it moves forward several plot threads and resolves others, leading to the Last Battle between the forces of light and dark. It is a busy book with lots of action. 

Among the storylines:

  • Rand plans to release the Dark One from imprisonment, so he can be defeated directly in battle, deciding the conflict once and for all. He begins to face and feel comfortable with his destiny.

  • Nynaeve's power grows to the point that she can heal madness in men, but the Aes Sedai still insist on subjecting her to their testing before they officially raise her to full Aes Sedai rank.

  • Perrin faces a trial for killing two Children of the Light many books ago; then attempts to reconcile his human and wolf halves and battle an old enemy.

  • Mat and Tom enter an alternate dimension to rescue a friend we have seen for many books.

  • Queen Morgase comes out of hiding.

Sanderson sticks to Jordan's outline but puts his thumbprints on the tale. Jordan often spent the first 90% of a novel building the world, the characters, and the dialog. He would save the action for the final 10%. In contrast, Sanderson leaps right into the action in this book. In the first half of "Towers," we see:

  • Mat being pursued by the gholam - a mystical creature who lives to kill
  • Bubbles of Evil popping up unexpectedly, causing unnatural destruction where they occur
  • A battle in which the dark enemy launches monsters into the opposing army via trebuchet

A few books ago, I considered abandoning this series. I am now excited for the climax and conclusion in the next volume.

After her third miscarriage and the collapse of her marriage, Jaya decides to travel to India to visit her dying maternal grandfather. She feels no connection to her ancestral homeland and knows nothing of her extended family. Even her immediate family is not close. Her mother showed little affection toward Jaya and never spoke of the country of her birth, except to say she was told to go to America and never to return. She begs Jaya not to make the trip.

Jaya's journey sets up a story of exploration in Sejal Badani's 2018 novel "The Storyteller's Secret." The book alternates between Jaya's story and that of her grandmother Amisha, who came of age during the British occupation of India.

Badani tells Jaya's story in the first person and present tense, which gives the reader a feeling of immediacy as if the scenes are taking place right now. Jaya hears Amisha's story from Ravi - a servant, confidante, and friend of the grandmother. Ravi was my favourite character in this novel because he showed remarkable kindness, intelligence, and humor, despite being born into the outcast "untouchable" caste.

Jaya and Amisha are at similar points in their lives, but fate gave them different paths. The troubles of her young adulthood shattered Jaya's life of privilege in America. Amisha was forced into a life of servitude by an arranged marriage and a patriarchal society that treated women as second-class citizens. She hid from the world her love of writing and her love for another man and she experienced very few moments of true happiness. Marrying into a wealthy family did provide some privilege, which she used to help Ravi.

After learning her grandmother's story, Jaya reassesses her own life. Amisha's struggles, denied dreams, and lost love put into perspective Jaya's problems. Amisha's story connects Jaya to her family and homeland that she previously lacked. She gains an understanding of her mother and a renewed focus on her own life.

The novel focuses on conflict and resolution. Conflict exists between the occupying British and the Indians; between women and a patriarchal society; between the Indians and the untouchables; and between Jaya and her husband. Some of these conflicts resolve, and some end in tragedy. But the story also focuses on empathy. When she learns her family history, Jaya significantly alters her feelings about her mother and her own life.

Badani's novel is a heartfelt story that gives the reader a peek into another culture and provides a hopeful message passed from one generation to another.


The ancient Greek architect Vitruvius believed in the beauty of balance. Leonardo da Vinci immortalized the architect's name when he created The Vitruvian Man - a drawing showing the symmetry inherent in the human form.

Peter Leeson's book "Vitruvian Quality" explores balance as it applies to quality in goods and services and how organizations can achieve that quality.

Two thousand years ago, Vitruvius defined quality in his building as the presence of Firmitas, Utilitas, and Venustas (Stability, Usefulness, and Desirability.) Leeson applies these concepts to modern businesses. Although these things are difficult to quantify, the author makes an attempt to do so.

We get lessons in this book on history, quantum computing, and zoology. Leeson uses these as metaphors to help us understand what is difficult to define. For example, he uses a zoology to point out that an organization will be more successful emulating the adaptability of an octopus rather than a shark's evolutionary dead end.

Leeson provides some explicit guidance, such as suggesting that managers block focus time for themselves and their employees, but the book focuses more on general advice than on specific recipes.

My favourite chapter compared management with leadership. "You must obey a manager; you want to follow a leader," says Leeson, emphasizing the vision and knowledge sharing that helps leaders to inspire others.

VQ's lessons can be summarized: Try, Listen, Look, Adapt, and Adopt. Peter Leeson articulates these lessons well. He presents these concepts in a straightforward manner with intelligence and wit.

GCast 146:

Granting YouTube Permissions to Other Users

Learn how to grant access to your YouTube channel to other users, allowing them to view, edit, and/or create videos and other settings in your channel.


I have been experimenting with ChatGPT for the past few weeks, searching for ways it can help me in my work. I played around with the UI and I asked smart people who provided me with ideas.

Here are some interesting questions I have asked and some intersting responses ChatGPT generated that may help me do my job better.

Software Programming


How do I delete a row in MongoDB using PHP?


To delete a row in MongoDB using PHP, you can use the deleteOne() method of the MongoDB\Driver\Manager class. Here's an example code snippet:

// connect to MongoDB
$mongo = new MongoDB\Client("mongodb://localhost:27017");

// select the database and collection
$collection = $mongo->mydb->mycollection;

// delete a document
$result = $collection->deleteOne(['_id' => new MongoDB\BSON\ObjectID('60c1f230a8d72c44e2fe603f')]);

// check if the document was deleted
if ($result->getDeletedCount() === 1) {
    echo "Document deleted successfully";
} else {
    echo "Error deleting document";

In this example, the $filter variable specifies the row to delete based on its _id value. You can modify the filter to delete rows based on other criteria as well. The $options variable specifies the delete options, such as justOne to delete only one document that matches the filter. The executeCommand() method is used to execute the delete command, and the $result variable contains the result of the operation.



What does this code do?


The code is the C# source code for the ExpressionBuilder class in the AutoMapper library, specifically the Execution namespace.
The ExpressionBuilder class provides methods for building and compiling Expression trees that can be used to map data between objects.
The code includes various methods for constructing and manipulating Expression trees, including methods for creating and combining binary and unary expressions, invoking methods, accessing and setting properties and fields, and other operations commonly used in mapping scenarios.
Overall, the ExpressionBuilder class plays a central role in the AutoMapper library by providing the underlying infrastructure for generating code that performs object-to-object mapping using Expression trees.



Generate sample baseball statistics data as CSV


Sure, here's an example of sample baseball statistics data as a CSV file:

Mike Trout,Los Angeles Angels,162,618,135,198,44,7,39,108,24,0.321,0.438,0.624
Mookie Betts,Los Angeles Dodgers,157,603,135,188,35,9,29,90,23,0.312,0.402,0.563
Jose Ramirez,Cleveland Indians,156,548,103,164,32,5,39,105,28,0.299,0.409,0.604
Freddie Freeman,Atlanta Braves,162,606,102,189,44,1,34,107,2,0.312,0.390,0.567
Trea Turner,Washington Nationals,151,632,112,199,27,8,28,79,43,0.315,0.368,0.548
Jacob deGrom,New York Mets,32,69,5,11,1,0,0,3,0,0.159,0.159,0.159
Gerrit Cole,New York Yankees,33,0,0,0,0,0,0,0,0,0.000,0.000,0.000
Shohei Ohtani,Los Angeles Angels,106,362,63,98,14,2,28,73,12,0.271,0.361,0.619
Aaron Judge,New York Yankees,112,379,77,100,21,0,28,71,3,0.264,0.370,0.554
Fernando Tatis Jr.,San Diego Padres,119,471,98,146,23,3,39,96,24,0.310,0.375,0.653

This CSV file contains statistics for 10 baseball players, including their name, team, games played (G), at bats (AB), runs (R), hits (H), doubles (2B), triples (3B), home runs (HR), runs batted in (RBI), stolen bases (SB), batting average (BA), on-base percentage (OBP), and slugging percentage (SLG). You can use this sample data for testing or practice purposes. Note that this data is completely fictional and not based on any actual baseball statistics.



Extract as JSON:
David is a valued customer with an account balance of $1000 in US dollars currency. His account was created on March 1st, 2023, and he is currently not in default, as indicated by the "delinquent" field. David's account has a 5% discount, and his email address is david@customer.com. Interestingly, his account description describes him as "A hoopy frood who really knows where his towel is at," which may indicate that he is a fan of Douglas Adams' "The Hitchhiker's Guide to the Galaxy" series.


Here's an example of how you could extract the provided information as a JSON object:

"name": "David",
"status": "valued",
"balance": {
"amount": 1000,
"currency": "US dollars"
"created_on": "March 1st, 2023",
"delinquent": false,
"discount": 5,
"email": "david@customer.com",
"description": "A hoopy frood who really knows where his towel is at"

In this example, each piece of information is mapped to a key in the JSON object. The balance and discount values are represented as numbers, while the delinquent value is represented as a boolean. The created value is represented as a string in the format of "YYYY-MM-DD", which is a common date format for JSON.




Write a blog post on the dangers of artificial intelligence


Artificial intelligence (AI) has been one of the most exciting and rapidly evolving fields of technology in recent years. From self-driving cars to virtual assistants, AI has already shown its potential to transform our lives in countless ways. However, along with the promises of AI come several dangers that must be considered and addressed.
One of the most significant dangers of AI is the potential for job loss. As AI becomes more capable, it will replace many jobs that are currently done by humans. For example, autonomous vehicles could eliminate the need for truck drivers, and automated customer service systems could replace call center employees. While new jobs may be created to replace those that are lost, there will inevitably be a significant transition period during which many people may find themselves without work.
Another danger of AI is the potential for biases and discrimination. Machine learning algorithms, which are a core component of many AI systems, are only as unbiased as the data they are trained on. If the data contains biases or discriminatory patterns, then the algorithm will learn and perpetuate those biases. This has already been seen in instances where facial recognition systems have been shown to be less accurate for people of certain races or genders. As AI becomes more integrated into our lives, it is critical that we ensure that these systems are designed and trained in a way that is fair and impartial.
AI can also pose a significant threat to our privacy and security. As more and more devices are connected to the internet and capable of collecting data, it becomes increasingly difficult to keep that data secure. AI systems that are designed to analyze this data could potentially be used to target individuals with ads, manipulate elections, or even commit acts of terrorism. It is essential that we establish regulations and safeguards to protect the privacy and security of individuals and organizations.
Finally, AI raises the specter of autonomous weapons, which could make decisions to kill without human intervention. This type of technology could lead to disastrous consequences, as decisions made by machines could be based on faulty or incomplete data. It is essential that we prevent the development and use of autonomous weapons before they become a reality.
In conclusion, while the potential benefits of AI are immense, there are also significant dangers that must be considered and addressed. As we continue to develop and integrate AI into our lives, it is critical that we establish regulations and safeguards to protect against the risks that it poses. Ultimately, it is our responsibility to ensure that AI is used to benefit society as a whole, and not just a select few.


Write an outline for a presentation on having fun with ChatGPT


I. Introduction - Briefly introduce ChatGPT as an AI language model and explain its capabilities. - Discuss how ChatGPT can be used to have fun and entertain oneself. II. Chatting with ChatGPT - Explain how to start a conversation with ChatGPT. - Discuss the different types of questions or topics that ChatGPT can respond to. - Demonstrate some fun and interesting conversations that can be had with ChatGPT. III. Playing games with ChatGPT - Discuss some popular games that can be played with ChatGPT, such as trivia or word games. - Demonstrate how to play a game with ChatGPT and provide some examples of fun games to try. IV. Getting creative with ChatGPT - Explain how ChatGPT can be used for creative writing prompts or story generation. - Discuss how ChatGPT can be used to generate art or music. - Provide examples of creative projects that can be done with ChatGPT. V. Conclusion - Summarize the various ways in which ChatGPT can be used to have fun and entertain oneself. - Encourage the audience to try out ChatGPT and explore its various capabilities.


Write this in the active voice The code I wrote benefitted from a few hours of refactoring


I refactored the code I wrote for a few hours, resulting in several benefits.


Write an email to my boss with a plausible excuse why I am late on my project


Dear [Boss's Name],

I hope this email finds you well. I am writing to inform you that I am running a bit behind schedule on the project we discussed. I wanted to explain the reason for this delay and reassure you that I am doing everything I can to get the project back on track.
The main reason for the delay is that I have encountered some unexpected challenges while working on the project. Despite my best efforts to anticipate and plan for potential roadblocks, these issues have proven to be more time-consuming than I originally anticipated.
However, I want to assure you that I am actively working to address these challenges and have already made progress in overcoming them. I am working diligently to get the project back on schedule and will do everything in my power to meet the original deadline.
I understand the importance of this project and the impact it has on our team's goals. I am committed to delivering high-quality work, and I apologize for any inconvenience this delay may have caused.
Please let me know if you have any questions or concerns about the project's status. Thank you for your understanding and continued support.

Best regards,
[Your Name]



Write a job description for a Cloud Solution Architect


Job Title: Cloud Solution Architect Job Summary:
We are looking for an experienced Cloud Solution Architect to join our team. The Cloud Solution Architect will be responsible for designing and implementing cloud-based solutions that meet our clients' business needs. The ideal candidate will have in-depth knowledge of cloud computing technologies, excellent problem-solving skills, and a proven track record of designing and implementing complex cloud-based solutions.

Work closely with clients to understand their business requirements and recommend appropriate cloud-based solutions. Design, plan and implement cloud-based solutions using industry best practices and cloud-based technologies such as AWS, Azure, or Google Cloud.
Evaluate the cloud infrastructure and provide recommendations on how to optimize performance, security, and cost.
Develop and implement cloud security best practices and ensure compliance with industry standards and regulations.
Collaborate with development teams to ensure that cloud-based applications are designed and implemented in accordance with best practices.
Monitor cloud-based systems to identify and resolve issues proactively.
Participate in the development and implementation of disaster recovery and business continuity plans.
Provide technical leadership and mentorship to other members of the team.

Bachelor's degree in Computer Science, Information Technology, or a related field.
Minimum of 5 years of experience in cloud solution architecture and implementation.
In-depth knowledge of cloud computing technologies such as AWS, Azure, or Google Cloud.
Excellent problem-solving skills and a proven track record of designing and implementing complex cloud-based solutions.
Strong communication skills and the ability to work collaboratively with clients and team members.
Knowledge of cloud security best practices and experience implementing security solutions.
Experience with infrastructure automation tools such as Terraform, Ansible, or Chef.
Experience with containerization technologies such as Docker and Kubernetes.
If you are a highly motivated individual with a passion for designing and implementing cloud-based solutions, we encourage you to apply for this exciting opportunity. We offer a competitive salary, comprehensive benefits package, and a collaborative work environment.


Explain autoscaling


Autoscaling is a technique used in cloud computing to automatically adjust the resources allocated to a system based on demand. This is achieved by setting up rules that automatically add or remove resources to maintain a consistent level of performance and availability.
Autoscaling is typically used in scenarios where demand for a particular service or application is highly variable. For example, a retailer may experience a sudden surge in traffic during a major sales event, or a social media platform may experience a spike in usage during a breaking news event. Without autoscaling, these organizations would need to manually adjust their resources to ensure that they can handle the increased demand, which can be time-consuming and costly.
Autoscaling works by monitoring the utilization of resources, such as CPU, memory, and network bandwidth. Based on the predefined rules, the system can automatically add or remove resources to maintain a consistent level of performance. For example, if the CPU utilization exceeds a certain threshold, autoscaling can automatically add additional virtual machines to handle the increased load. Similarly, if the CPU utilization drops below a certain threshold, autoscaling can remove the virtual machines to save costs.
Autoscaling can be set up using a variety of cloud services and tools, including Amazon Web Services (AWS) Auto Scaling, Google Cloud Platform (GCP) Autoscaler, and Microsoft Azure Autoscale. These services typically provide a range of options for setting up autoscaling rules, such as scaling based on CPU usage, network traffic, or a custom metric.
Overall, autoscaling can help organizations optimize their cloud resources and ensure that their applications and services are always available and performant, without incurring unnecessary costs.


Explain autoscaling in 1 sentence


Autoscaling is the automatic adjustment of resources allocated to a system based on demand.


Explain autoscaling like I am 5


Autoscaling is like having a magical robot that adds more helpers when you need them to do a big job, and sends them away when the job is done so you don't have to pay for them when you don't need them.


Explain autoscaling like a pirate


Arrr, me hearties! Autoscaling be like havin' a crew o' scallywags who be joinin' ye ship when ye be in the thick o' battle and leavin' when the storm be calm, so ye don't have to pay fer 'em when they be not needed! It be makin' sure yer ship be always ready fer whatever the seas be throwin' yer way, savvy?


The last example is a bit silly, but I wanted to throw in a bit of fun.

It is worth pointing out that one must apply ethical standards when using the output of ChatGPT. Using it to create a blog post and taking credit for that blog post feels wrong. I would not want to see students copying homework answers directly from ChatGPT. However, ChatGPT can give you a good starting point and can validate ideas you have already documented and I think that is an ethical approach. Also, using ChatGPT to create an outline for an article or presentation feels ok to me. You are still left with the responsibility of filling in the content.

I hope this article gives you some ideas about how you can use ChatGPT to improve your job performance. I hope it sparked some ideas not listed here.


ChatGPT is a language model capable of processing and generating natural language text, trained on a vast corpus of data and designed to assist in a wide range of tasks.

It allows you to ask questions, converse in a natural language (such as English), and respond appropriately. Its answers are usually correct, and it is quick to admit when it does not know something or will not respond to your query. But it is often a good starting point for work or a way of validating or explaining something quickly.


ChatGPT offers the following features beyond a simple search engine or chatbot:

  • ChatGPT understands natural language, including colloquialisms, idioms, and slang.
  • ChatGPT can generate human-like responses to various questions and prompts, including conversational chit-chat, factual questions, and creative writing prompts.
  • ChatGPT can understand and respond in multiple languages, including English, Spanish, French, German, Chinese, and others.
  • ChatGPT remembers earlier parts of a conversation and can use this to understand the context of a current question or statement.
  • ChatGPT provides an API which allows developers to integrate it into their applications.
  • ChatGPT continues to learn, allowing it to improve over time.


ChatGPT has limitations, including the following:

  • ChatGPT was trained on data from the Internet - data that can contain biases. The generated content is likely to reflect those same biases.
  • Sometimes ChatGPT does not understand the full context of a question or discussion.
  • ChatGPT's knowledge is not infinite. It can only respond to conversations involving domains on which it has been trained. For example, most of the training data is from 2021 or earlier, so it has limited knowledge of recent world events
  • ChatGPT does not generate original content, even though it often appears to do so. Its responses reflect its training data.
  • The current version of ChatGPT (ChatGPT-3) works with text. It does not understand images, videos, or sound.
  • ChatGPT is sometimes incorrect. It infers answers from the data on which it was trained. The good news is that it is a closed-loop system, meaning that it can accept and learn from feedback. So, you can call out incorrect information and help to improve the model.

Getting Started

To start using ChatGPT, navigate to https://chat.openai.com/.

If you are not logged in, a welcome message displays, as shown in Fig. 1


Fig. 1

Click the [Log in] button if you already have a ChatGPT account. To create a new account, click the [Sign up] button. The "Create your account" dialog displays, as shown in Fig. 2.

Create Your Account

Fig. 2

Enter your email address and click the [Continue] button. The "Password" textbox displays, as shown in Fig. 3.

Password prompt

Fig. 3

Enter a password at least eight characters long and click the [Continue] button.

ChatGPT will create an account, log you in with that account, and display a new chat, as shown in Fig. 4.

New Chat

Fig. 4

Type something in the "Send a message..." textbox to begin using ChatGPT.


By default, ChatGPT is free to use. However, OpenAI offers a paid version (currently $20 per month) that they brand as "ChatGPT Plus." ChatGPT Plus provides the following advantages:

  • Plus uses the more intelligent version 4 of ChatGPT. The free version uses version 3.
  • Plus delivers faster responses than the free version.
  • ChatGPT assigns a higher priority to Plus requests, so the system will work even when user load is high.

ChatGPT for Work

Here are a few ways to make ChatGPT work for you:

  • Understanding and generating code
  • Writing summaries, titles, articles, and emails
  • Writing job descriptions or professional bios
  • Explain complex topics

ChatGPT for Play

ChatGPT is not just for work. You can have fun with it. Here are a few fun things to do.

  • Engaging in casual conversations
  • Playing games with ChatGPT
  • Getting creative with ChatGPT
  • Asking ChatGPT for jokes or funny stories

Maximizing your ChatGPT Experience

  • Be open-minded
  • Ask open-ended questions
  • Try different conversation starters
  • Experiment


The power of ChatGPT depends on the imagination of those using it. As evidence of its effectiveness, I generated the opening sentence of this article by asking ChatGPT: "Describe ChatGPT in one sentence."

Episode 744

Kevin Grossnicklaus on Low Code No Code Solutions

Kevin Grossnicklaus discusses the business value of using Power Platform and other Low Code / No Code offerings.

An unreliable narrator is not an uncommon device in storytelling. But what about an unreliable narrator relating the stories of his unreliable narrator father? Daniel Wallace gives us that in his 1998 novel "Big Fish."

William Bloom tells the story of his father, Edward. Or rather, he tells Edward's life story as Edward told it to William. Edward was an adventurer who could never stand to stay in one place for long. He traveled the world and met many people, and when he came home, he told stories to William. The stories were often fantastical, and Edward was almost always the hero of these stories. William refers to his father as a "mythical creature."

On Edward's deathbed, William tries unsuccessfully to begin a serious conversation with the man who always spoke in jokes, anecdotes, and tall tales. Edward's stories are always entertaining, but William wonders how much truth they contain. Worse, Edward spent much of his son's childhood away from home. As a result, William wonders how well he knows his father. Memory and embellishment can change a story over time. To underscore this point, William relates the story of his father's last days multiple times - each telling slightly different than the one before.

Wallace simultaneously entertains and moves the reader. The stories he weaves are often implausible and whimsical, and the book contains plenty of humor. But beneath it is the sadness of a father and son who never connect on a personal level. The reader is left to wonder whether an inaccurate story can still be a true story. Edward always wanted to be a big fish in a big pond. But he had another goal, which spoke while he was dying:

"If a man can be said to be loved by his son, then that man can be considered great."

Although Edward was nothing like my father, I thought of him while reading this book. And I smiled.

Emmaline and DavidNot every artist takes the same path to stardom.

Emma Campbell was a classically-trained violinist who decided to follow her passion and shift her educational focus to jazz while at university. It paid off, and she began to perform under the name "Emmaline." The singer caught the world's attention a few years ago when she and guitarist Ryan Mondak recorded and released videos which they shared on YouTube and TikTok. Attention grew, and she soon recorded and released three EPs. The small label on which she released these records emphasizes the grass-roots origins of her career.

Sunday evening, Emmaline and her band delivered an excellent concert in front of a sold-out audience at Evanston's SPACE.

EmmalineEmmaline is a beautiful young woman with an amazing voice, an engaging smile, and a top-notch group of musicians behind her. She treated us to a mix of torch songs, sambas, pop songs, and blues melodies - each delivered with the emotion of a classic jazz singer. Between songs, Emmaline related stories of her life and her music, explaining the origins of many of her original songs. She came across as if she was speaking directly to each of us in the audience.

She concluded the evening with a swinging blues song - "Down Home Blues," which she sings in the upcoming movie "Sweetwater."

She is on a path, and I predict that path will lead to stardom.

Tiago Forte reveals no world-shattering advice in his book "Building a Second Brain." Instead, he provides a common sense approach to organizing your thoughts. He tells us to save and record our ideas, refine them, and organize them. It makes sense, but few people are doing this effectively.

Forte recommends storing things digitally - folders on discs or in a knowledge management application - to make your data easy to search.


For organization, he advocates the "CODE" principle, which stands for Capture, Organize, Distill, Express, as explained below


As you consume information, store it in an easily accessible place. This could be an application, a file cabinet, or a folder on your hard drive.


Organize that information in a consistent way. Forte recommends the following broad categories, which he abbreviates as "PARA."

  • Projects: Short-term activities
  • Areas: Long-term responsibilities. May be moved to a project in the future.
  • Resources: Topics of interest to you. May be moved to an area or project in the future.
  • Archives: Inactive stuff. May be moved to an area or project in the future.


Summarize the information to make it easier to consume later. Highlight an article, select the most important highlight, then write a summary of the article's main points.


Use the distilled information you captured to create something or to execute a goal - writing a novel, planning an event, learning a new language.

Divergence / Convergence

Capturing and Organizing allow us to practice Divergence - Save information without processing and filtering it. Distilling and Expressing are examples of Convergence, filtering out unneeded information to focus on what is most valuable.

The system does not have to be perfect, Forte tells us. We just need a system that works for us.


I was already practicing something similar to what Forte advocates - storing and organizing my ideas in OneNote and in a set of DropBox folders.

After reading the book, the most significant change I made was to schedule time each month to evaluate my "To Do" list and decide if I needed to move anything from medium-term goals to short-term projects and action items.

A Lap Around DevSecOps

Comments [0]


DevSecOps is a principle of Application Lifecycle Management (ALM) that strives to incorporate security into every aspect of the lifecycle. It is built on top of DevOps (hence the name) and encourages every party to consider security issues in every phase of the application's design, build, test, and release.

The DevSecOps Manifesto

A few years ago, a group of software security professionals collaborated to produce the DevSecOps Manifesto. They were inspired by the wide adoption of the Agile Manifesto, which concisely laid out priorities for Agile software development. Like the Agile Manifesto, the DevSecOps Manifesto declared high-priority factors without dismissing lower-priority factors.

The nine prin of the DevSecOps Manifesto are:

  • Leaning in over Always Saying "No"
  • Data & Security Science over Fear, Uncertainty and Doubt
  • Open Contribution & Collaboration over Security-Only Requirements
  • Consumable Security Services with APIs over Mandated Security Controls & Paperwork
  • Business Driven Security Scores over Rubber Stamp Security
  • Red & Blue Team Exploit Testing over Relying on Scans & Theoretical Vulnerabilities
  • 24x7 Proactive Security Monitoring over Reacting after being Informed of an Incident
  • Shared Threat Intelligence over Keeping Info to Ourselves
  • Compliance Operations over Clipboards & Checklist


Leaning in over Always Saying "No"

At one time, I thought of security teams as adversaries. I would ask for things, and they would deny them. It seemed like their knee-jerk reaction was to refuse my request and cite security issues. This principle does not ask them to stop enforcing good security practices. Instead, it suggests they keep an open mind and try to think of ways to meet a request without adding additional security risks.

Data & Security Science over Fear, Uncertainty and Doubt

This should be true of every business or technical, but it often is not. Base your decisions on hard evidence rather than on emotion or gut feeling. The findings will be more defensible and will probably be more valid.

Open Contribution & Collaboration over Security-Only Requirements

This is the heart of DevSecOps. Security is everyone's responsibility and should involve collaboration among teams. In too many organizations, all security decisions are handled by a single group and are often not considered until other work is complete.

Consumable Security Services with APIs over Mandated Security Controls & Paperwork

Automating security via API calls can be easier to implement and, therefore, more likely to be built into an application. Manual security processes are valuable but can be time-consuming and error-prone.

Business Driven Security Scores over Rubber Stamp Security

What are the reasons for your security policies? Is it simply because you have always done it this way, or is there a valid business reason driving your policies? Think about this before implementing and enforcing rules.

Red & Blue Team Exploit Testing over Relying on Scans & Theoretical Vulnerabilities

Security attacks occur in the real world, so it makes sense to simulate the real world when preparing for them. A Red and Blue team does so, with the Red Team taking on the role of a hostile hacker and the Blue Team acting as the system's defenders. This brings human decision-making into the mix. Automated scans are helpful, but they are not sufficient.

24x7 Proactive Security Monitoring over Reacting after being Informed of an Incident

A proactive approach is almost always better than a reactive one, which often occurs after a security breach has already compromised your system.

Shared Threat Intelligence over Keeping Info to Ourselves

Many organizations jealously guard any information they discover because they believe it gives them a competitive advantage. But all organizations share a common enemy in malicious hackers. It makes sense to share this information to protect everyone.

Compliance Operations over Clipboards & Checklist

This principle emphasizes that security is a mindset within the organization rather than a set of procedures to which one can adhere and feel safe.

Focus of DevSecOps

At its heart, DevSecOps seeks to incorporate security into every aspect of life cycle management.

Fig. 1 shows the tasks that can be added to each phase.


Fig. 1 (Source: https://learn.microsoft.com/en-us/azure/cloud-adoption-framework/secure/devsecops-controls)

A corollary of this is that every person is responsible for thinking about security. DevSecOps sits on top of DevOps, so a company must have a solid implementation to implement DevSecOps effectively. But the tools you choose are less important than how your organization and employees embrace security awareness. The goal is to shift left the identification and resolution of security issues. This means we try to identify and resolve these issues as soon as possible because it is much cheaper and more effective than waiting until later.


DevSecOps is an evolutionary concept - not a revolutionary one. It builds on top of DevOps. It involves all people and all steps in identifying and resolving security issues.

The Agile Manifesto

Comments [0]

The Manifesto

The Manifesto for Agile Software Development, commonly known as the Agile Manifesto, is very concise. Here is the full text:

We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.

A group of well-known software architects wrote the Manifesto to describe their priorities when building software systems. Many were book authors and bloggers, and all had experience designing complex systems.

Its simplicity is its strength. One can memorize it and apply the principles to their current work, adapting their processes as needed.

It also benefits from its flexibility. The Manifesto doesn't proclaim dogma; instead, it states the relative importance of software development concepts.

The Principles

Individuals and interactions over processes and tools

Processes and tools are important. But do not lose sight of what you are trying to accomplish. Communication between individuals and teams is crucial to building anything of moderate complexity. Tools and processes are simply a way to facilitate that communication.

Working software over comprehensive documentation

This is the most obvious of the principles. I am a big fan of documentation. It helps users understand how to use software, and it helps onboard new developers. But let's face it. Given a choice between broken software with excellent documentation and excellent software with no documentation, the former is the better choice.

Customer collaboration over contract negotiation

This principle rejects the idea that software developers and their customers are adversaries. They have the same goal - creating quality software - and they should drive toward that goal together. The parties involved are less likely to point fingers and place blame if they view their relationship as a partnership.

Responding to change over following a plan

This is the most revolutionary part of the Manifesto. Before the development of Agile methodologies, Waterfall was a popular methodology for designing and building software. In a Waterfall system, all design is completed before writing any software, and all software is written before testing it. This approach was slow, expensive to fix, and did not consider changing requirements. This principle encourages teams to break work into short "sprints" and frequently evaluate what tasks belong in each sprint. This principle makes it much cheaper to adjust to changing requirements.


Many books describe methodologies with specific actions to take to become more "agile." But these are just applying the principles above. How you implement these principles is up to you. Daily standups, 2-week sprints, and pair programming can help make you more agile, but they are not required to adhere to the Agile Manifesto.

<< Older Posts