Episode 751
Mark Downie describes the DasBlog blogging engine, its history, what makes it unique, and how it has changed over the years.
Links:
https://github.com/poppastring/dasblog-core
https://www.poppastring.com/
Episode 751
Mark Downie describes the DasBlog blogging engine, its history, what makes it unique, and how it has changed over the years.
Links:
https://github.com/poppastring/dasblog-core
https://www.poppastring.com/
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:
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
Here are a few more announcements of interest:
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.
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:
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
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.
Links:
https://microsoft.github.io/Mastering-the-Marketplace/
https://partner.microsoft.com/
https://lastcoolnameleft.github.io/how-to-partner-with-microsoft/
Some 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.
Set 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.
It 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.
Following 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.
Links:
https://webhooks.fyi
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.
Stephen 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:
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
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.
4/3
Today I am grateful to see Emmaline in concert last night
4/4
Today I am grateful that my son called me from Paris, France yesterday morning.
4/5
Today I am grateful to take a day off when I am feeling unwell.
4/6
Today I am grateful for lunch with Juan yesterday.
4/7
Today I am grateful that I feel safe
4/8
Today I am grateful I made it 40 days without alcohol or meat
4/9
Today I am grateful for my son's engagement to a wonderful young woman.
4/10
Today I am grateful to spend Easter with my family in Michigan
4/11
Today I am grateful that my sister received her lab results this morning and she is now cancer-free!
4/12
Today I am grateful for no bad news from my dermatologist yesterday
4/13
Today I am grateful to spend time this week with Randy
4/14
Today I am grateful that I survived the recent round of layoffs at my company.
4/15
Today I am grateful to see "A Soldier's Play" last night.
4/16
Today I am grateful to see the musical "Jagged Little Pill" last night.
4/17
Today I am grateful to finish preparing my taxes.
4/18
Today I am grateful to unexpectedly run into many old friends at the Microsoft office last night.
4/19
Today I am grateful for the taste of ice cream
4/20
Today I am grateful to those who lift me up when I am down.
4/21
Today I am grateful to virtually attend the 20th Anniversary celebration of #GLUGNET last night with Joe, Sam, and Carl.
4/22
Today I am grateful to the bike shop that repaired my wheel yesterday and did not charge me.
4/23
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.
4/24
Today I am grateful for new shoes
4/25
Today I am grateful for a conversation with Shahed yesterday.
4/26
Today I am grateful for 10 years of daily gratitude
4/27
Today I am grateful to see "Last Night and the Night Before" at the Steppenwolf Theatre last night.
4/28
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
4/29
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
4/30
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
5/1
Today I am grateful for dinner with my siblings last night in Michigan
5/2
Today I am grateful to attend my nephew Dylan's lacrosse game last night.
5/3
Today I am grateful for a few days in Michigan visiting family
5/4
Today I am grateful for Inbox Zero
5/5
Today I am grateful to Zerto for a free ticket to see Guardians of the Galaxy 3 last night.
5/6
Today I am grateful to see "Into the Woods" at the Nederlander Theatre last night.
5/7
Today I am grateful that the predicted rain held off today.
Graham 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:
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.
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:
Here are a few popular tourist spots near downtown. All offer free admission, but you will need to pay for parking.
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.
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.
Monique 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.
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:
The "Highlights" and "Upcoming" sections are 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.
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.
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.
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:
Here are the advantages of preparing and sending a regular status report to your customer/manager.
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.
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.
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.
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.
I have been spending a lot of time lately reading about and speaking about code reviews.
Here are some of the most useful articles I have read. You can find ideas from these articles in my blog post on Code Reviews and in my presentation.
Here is a list of articles. I hope you find tehm as useful and informative as I did.
Episode 746
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.
How 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!
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.
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.
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)
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
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.
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)
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.
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.
Fig. 1
Select "Subscriptions" to open the "Subscriptions" blade, as shown in Fig. 2.
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.
Fig. 3
Click the [Select offer] button under "Pay-As-You-Go". The "Your profile" dialog displays, as shown in Fig. 4.
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.
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:
As a Microsoft partner, you can choose to do any or all of the things listed above.
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.
To register as a Microsoft partner, navigate to https://partner.microsoft.com. The home page will look similar to Fig. 1.
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.
Fig. 2
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.
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.
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.
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.
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:
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:
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:
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:
Ingredients:
Instructions:
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.
go
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 end subgraph Isaac Branch Isaac --> Jacob end subgraph Jacob Branch Jacob --> Reuben Jacob --> Simeon Jacob --> Levi Jacob --> Judah Jacob --> Issachar Jacob --> Zebulun Jacob --> Dan Jacob --> Naphtali Jacob --> Gad Jacob --> Asher end
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:
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:
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:
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:
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:
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.
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.
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.
Sure, here's an example of sample baseball statistics data as a CSV file:
Player,Team,G,AB,R,H,2B,3B,HR,RBI,SB,BA,OBP,SLG 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.
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.
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 has limitations, including the following:
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.
Fig. 2
Enter your email address and click the [Continue] button. The "Password" textbox displays, as shown in Fig. 3.
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.
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:
Here are a few ways to make ChatGPT work for you:
ChatGPT is not just for work. You can have fun with it. Here are a few fun things to do.
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.
Not 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.
Emmaline 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."
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.
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.
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.
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:
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.
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.
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.
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.
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.
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.
A proactive approach is almost always better than a reactive one, which often occurs after a security breach has already compromised your system.
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.
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.
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 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.
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.
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.
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.
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.
Years ago, I worked for a large consulting company that embraced a Waterfall methodology. In a Waterfall methodology, a team completes each project phase before beginning the next phase. For example, we would complete all design for a system before writing any code, and we would complete all the code before starting testing.
In theory, it made sense. Why try coding something unless you are 100% sure what you want to build? Waterfall also seemed the logical choice when handing off requirements to junior developers or to an offshore team. The more explicit we were with what we wanted, the less ambiguity to the coding party and the less chance they would misunderstand our needs.
But there were significant drawbacks to this approach. Many issues did not arise until we had begun coding, while others became apparent only during the testing phase. In those cases, we had to return to our design phase and re-do work already completed - often months earlier. This process was inefficient and expensive.
I once led a team designing the interfaces between dozens of backend systems at a large electronics retailer and the e-commerce site they were building. We spent months exploring each system, how to access it, and how to expose it to the front end. By the time we finished, some of the backend systems had changed significantly. Others had been wholly replaced. In those cases, our only choice was to return to work on the updated systems. We eventually completed our task, but we were months behind schedule.
Later, I left the large company and joined a small consulting firm that introduced me to Agile methodologies. This company had developed a variation of the Scrum Agile methodology. Their approach focused on creating one small feature at a time - design it, build it, test it. If anything went wrong, we knew about it right away and had minimal rework to do.
By executing an agile methodology, my teammates and I immediately became more productive. The most significant advantage I saw was in the "fail fast" mindset. We anticipated that things could go wrong - sometimes by our actions and sometimes by factors outside our control. We wanted to know immediately when things went wrong so we could fix them immediately. So, we designed, built, and tested our features in smaller chunks. Testing caught issues while the code was still fresh in our minds and before we had added extra dependencies.
In addition, we held a daily standup meeting. Every morning, each member took a minute or so to describe what they worked on yesterday, what they planned to work on today, and any issues that might block them. The meeting gave everyone insights into the activity of others on the team and allowed the opportunity for one of us to unblock another's issue. By standing up, we kept the meetings to a reasonable length. Who wants to stand up for a 1-hour meeting?
I have not looked back. I consider how I can use an agile methodology to improve the process of every project I work on. It is rare that it will not.
Episode 743
Guy Royse on Software Defined Radio
Software-Defined Radio allows you to use your computer to decode AM, FM, short wave, police scanner, and other radio signals, including both sound and data. Guy Royse describes Software-Defined Radio, how it works, and uses for it.
3/6
Today I am grateful to see Scythian in concert last night.
3/7
Today I am grateful to talk with Jeff yesterday for the first time in a long time.
3/8
Today I am grateful I found the eyeglasses that I lost last week.
3/9
Today I am grateful to spend a day with my team in the office yesterday.
3/10
Today I am grateful to get my emission test out of the way yesterday.
3/11
Today I am grateful to see Bobby Broom last night on my first visit to the Jazz Showcase this year!
3/12
Today I am grateful I can attend Mass virtually on a cold, windy, snowy day.
3/13
Today I am grateful to knock off some items from my "To Do" list last week that had lingered far too long.
3/14
Today I am grateful my washing machine is working again.
3/15
Today I am grateful for a free Audible subscription.
3/16
Today I am grateful for a bike ride and a chance to work in a coffee shop yesterday afternoon.
3/17
Today I am grateful to upgrade my TV plan and install a new receiver.
3/18
Today I am grateful to see "The Comedy of Errors" at Chicago Shakespeare Theatre last night.
3/19
Today I am grateful to go to an exciting Chicago Fire - FC Cincinnati soccer game last night with my sons.
3/20
Today I am grateful to see "Big Fish: The Musical" in Lincolnshire yesterday.
3/21
Today I am grateful I could make it to the gym every day for the last 2 weeks.
3/22
Today I am grateful for a conversation with Randy for the first time in a long time
3/23
Today I am grateful to my personal trainer, who always works with me for a few minutes longer than she is contractually obligated.
3/24
Today I am grateful for dinner with John and Kim.
3/25
Today I am grateful:
3/26
Today I am grateful to see The Verve Pipe in concert last night.
3/27
Today I am grateful for March Madness
3/28
Today I am grateful for naps.
3/29
Today I am grateful to receive an unexpected "Thank You" gift yesterday.
3/30
Today I am grateful:
3/31
Today I am grateful for:
4/1
Today I am grateful that I will never post on social media again
4/2
Today I am grateful for:
The Verve Pipe was formed in 1992 in East Lansing, MI - eight years after I moved away from East Lansing. In 1993, they released their most famous album, "Villains," which contained the hit songs "The Freshmen" and "Photograph." In 2001, Mark Wahlberg lip-synced to the Verve Pipe song "Colorful" in the movie "Rock Star."
I finally saw Verve Pipe in concert on Saturday evening as they performed for a sold-out audience at Chicago's City Winery.
Founding members Brian Vander Ark (guitar, lead vocals) and his brother Brad (bass guitar) remain from the original lineup. These days, they are joined by drummer Zach Dubay, Randy Sly on keyboards, backing vocalist Channing Lee, and Lou Musa, who played a wide variety of styles with equal ease on lead guitar. Brian is the leader, but the entire ensemble contributed and played well together. Brian VA retains the vocal range of his youth, and the band members harmonize well with him - particularly Lee, who has a lot of chemistry with the lead singer.
The evening's sets mainly consisted of original songs, but they covered the music of others in the final stretch, including David Bowie's "Life on Mars" and Fleetwood Mac's haunting "The Chain." They closed their second set with a crowd-pleasing rendition of "What Happiness Is" that included Lee breaking into a few lines of Alanis Morissette's "You Oughta Know."
The energy increased as the evening went on. By the end of the two-hour show, the audience was satisfied. I should not have waited so long to see this band.
GCast 145:
Azure Active Directory Bulk User Operations
It can take a long time to manually create, invite, and delete many users in Azure Active Directory. Fortunately, AAD provides bulk operations to facilitate these activities.