Episode 600

A Celebration of Friends

A look back at the last 100 episodes of Technology and Friends!

Featuring:
    Venkat Subramaniam
    Jon Skeet
    Laurent Bugnion
    Jennifer Wadella
    Douglas Crockford
    Jeff Fritz
    Raffaele Rialdi
     Carolina Banales
    Elton Stoneman
    Brandon Satrom
    Heather Wilde
    Jennifer Marsman
    Walt Ritscher
    Jeremy Miller
    Jayson Street
    Angela Dugan
    Heather Downing
    Robert Green
    Jon Galloway
    Tibi Covaci
    Lorena Mesa
     Bill Wagner
    Angie Byron
    Hao Luo
    J Tower
    Dan Rey
    Alex Mang
    Eric Boyd
    Tim Reilly
    JD Marymee
    Jim Wooley
    Lwin Maung
    Frank Gill
    Jason Bock
    Jean Lange
    Isaac Bayoh
    Ruth Yakubu
    Kevin Gates
    Jes Schultz
    Bryan Glenn
    Kate Gregory
    John Azariah
    Brady Gaster
    Ondrej Balas
    Raj Krishnan
    Phil Japikse
    Martin Kearn
    Annie Bougie
    Arthur Doler
    Erwin Derksen
    Rajasa Savant
    Robert Greene
    Jackie Becker
    Kevin Griffin
    Bret Stateham
    Adam Hecktman
    David Makogon
    Tobiah Zarlez
    Geisa Faustino
    Brent Stineman
    Melanie Adcock
    Mike Benkovich
    John Alexander
    Jeremy Likness
    Edward Thomson
    Silviu Niculita
    Cassandra Faris
     Elizabeth Graham
    Hattan Shobokshi
    Whitney Griffith
     Tobiasz Koprowski
    Raymond Comvalius
    Laurent Ellerbach
    Hilary Weaver-Robb
    Christian Geuer-Pollmann
    Michael Eaton
    Courtney Eaton
    Gabrielle Sempf
    Spencer Schneidenback
    Rob Reynolds
    Robert Martin
    Jim Christopher
     Kevin Leung
    Guillermo Bellman
    Fabian Fernandez
    Nicolas Bello
    Kevin Ashley
    Christine Matheney
    Atley Hunter
    Zach Miller
    Don Ward

Recorded 2017-2020 in
    Chicago, IL
    Rome, Italy
    Cluj-Napoca, Romania
    Oslo, Norway
    Stockholm, Sweden
    Sandusky, OH
    Wisconsin Dells, WI
    Vancouver, BC
    Redmond, WA
    Montevideo, Uruguay
    Atlanta, GA
    Seattle, WA
    Toronto, ON
    Orlando, FL
    Milwaukee, WI
    Downers Grove, IL
    Grand Rapids, MI
    Copenhagen, Denmark
    Helsingborg, Sweden


February 2020 Gratitudes

Comments [0]

3/1
Today I am grateful for a visit yesterday to the Ed Paschke Art Center

2/29
Today I am grateful that I'm starting to feel caught up for the first time in months.

2/28
Today I am grateful for dinner with David and Debi last night.
Edit

2/27
Today I am grateful for dinner with Lino last night.

2/26
‪Today I am grateful for the Chicago PedWay on a cold, sleeting day. ‬

2/25
Today I am grateful to deliver my first user group presentation of the year last night.

2/24
Today I am grateful for my first bike ride of 2020.

2/23
Today I am grateful for a day in Milwaukee.

2/22
Today I am grateful for the gym in my building

2/21
Today I am grateful to learn something new every day.

2/20
Today I am grateful to see my son's Kalamazoo College team earn their second straight victory last night.

2/19
Today I am grateful for a massage yesterday.

2/18
Today I am grateful for a late-night hot bath.

2/17
Today I am grateful to see the Orchid Show yesterday at the Chicago Botanic Garden.

2/16
Today I am grateful for:
-a successful week in Charlotte with my customer
-an upgrade to First Class on my flight home
-dinner with my son last night

2/15
Today I am grateful to see Kamasi Washington in concert last night in Charlotte, NC.

2/14
Today I am grateful for dinner with my team last night.

2/13
Today I am grateful to attend a Charlotte Checkers ice hockey game last night.

2/12
Today I am grateful to return to North Carolina - the state of my birth.

2/11
Today I am grateful for a successful Envisioning Session yesterday.

2/10
Today I am grateful for Texas BBQ.

2/9
Today I am grateful for my new webcam.

2/8
Today I am grateful I can pay bills online.

2/7
Today I am grateful for dinner with Tim last night.

2/6
Today I am grateful for a gym in my building.

2/5
Today I am grateful for Mark Dantonio.

2/4
Today I am grateful for my CPAP machine.

2/3
Today I am grateful for an exciting Super Bowl.


GravitysRainbowIt is near the end of World War II and the Germans have apparently developed a new weapon of unknown capability with the unlikely serial number "0000".

The allies are looking for it, while they analyze the pattern of bombs dropping on London. One pattern they cannot understand is why a bomb consistently falls on a location a few days after US Army Lt. Tyrone Slothrop has sex in that location. Eventually, Lt. Slothrop is sent to Germany to search for this mysterious weapon. On his journeys, he disguises himself as a superhero and as a pig.

Gravity's Rainbow by Thomas Pynchon follows Slothrop on his mission to find the bomb. But it does not take us on a straight line through his quest. Pynchon introduces us to hundreds of characters - many tangential or completely irrelevant to the story; and he weaves dozens of subplots - many of which have little to do with the broader narrative.

In between, we a lot of sex happens and a bit of scatology and some incest and a story of a sentient, immortal light bulb. It's often entertaining, but all very confusing.

Many parts of the novel are very well-written - told with humor and satire and emotion. The challenge is tying them together. I trust that Pynchon accomplished this, but he makes it a major challenge for the reader to recognize how he did so. Characters are introduced, then disappear for hundreds of pages, before they reappear.

The book was too long and complex for me to enjoy as a whole. It felt like a mashup of disconnected scenes.

This seems like the kind of novel one needs to read multiple times in order to appreciate. At some point, I may return to it and re-evaluate it; but, its nearly 800-page length and the pile other books awaiting my attention will delay that - maybe forever.


GCast 75:

Creating an Azure SQL Server Logical Server

How to create a logical SQL Server in Microsoft Azure.


Episode 599

Bryan Glenn on the Right Mindset for Success

Bryan Glenn is a technology entrepreneur. His upcoming book "Life Adds Up" talks about thea characteristics necessary to acheive success. Bryan shares stories of successful people like Bill Gates and Albert Einstein, as well as lessons from his own life.

http://capitalglenn.com


TheCorrectionsJonathan Franzen's 2001 novel "The Corrections" tells the story of a family that has lost its way. Alfred and Enid Lambert still live in their home in Iowa, but their three adult children have moved to New York and Philadelphia. The children initially enjoyed some success, but each has fallen hard in recent years.

Oldest son Gary has achieved financial success as a banker but is trapped in a loveless marriage in which he and his wife consistently torture one another emotionally. He struggles with alcoholism and depression.

Chip was a college professor until he was fired for sleeping with and then stalking one of his students. He tries to pull himself out of debt by assisting a corrupt Lithuanian politician scam people via the Internet.

Denise’s career as a famous chef is undone by a disastrous affair.

Patriarch Alfred is a retired engineer for a Midwestern railroad. His entire life, he has been hard-working and independent and in control. But Parkinson's and Alzheimer’s are now robbing him of that control.

Matriarch Enid tries desperately to keep her family together, inviting everyone home for "one last Christmas", while she tries to care for Alfred. Enid is easily the most sympathetic of the family. Her marriage to the emotionally unavailable Alfred has been unsatisfying, but she stayed with him; and her adult children have all but abandoned her, but she still loves them. Still, her efforts to control the lives of everyone in the family and heap guilt on her children prevent the reader from admiring her too much.

This novel grabbed me early and held me throughout. Franzen introduces each family member, shows or hints at their current problems - then takes us back in time to show us how they fell to where they are now.  He gradually reveals their lives and characters and motivations, and the fatal flaws that toppled them. Each character lives in denial of the seriousness of their problems. Each major character is damaged, but each has enough redeeming qualities that the reader pulls for them. They seemingly cannot resist acts of self-destruction.

Even the minor characters are interesting. I loved the neurotic Robin, who blamed herself for the violence chosen by her sociopath brother. And the pill-pushing cruise ship doctor reminded me of a used car salesman and had me laughing out loud. These characters exist to reflect the Lambert family, but Franzen took the time to give them shape, without distracting from the main story.

The Corrections is humorous and absurd and touching and tragic; and in the end, as the characters each experience their corrections, gives us hope for the future.


GCast 74:

Continuous Deployment with Azure DevOps

Implement continuous integration and continuous deployment by automatically triggering build and deploy pipelines when code is committed to a repository branch.


Azure Logic Apps allow you to create scalable workflows hosted in the cloud. Although each Logic App is self-contained, it is often helpful to share artifacts such as maps, schemas, and certificates among multiple Logic Apps.

An Azure Integration Account provides a container for storing these artifacts.

Creating an Integration Account

To create an Integration Account, navigate to the Azure Portal [https://portal.azure.com], sign in and click the [Create a resource] button (Fig. 1).

IA01-CreateResourceButton
Fig. 1

Search for and select "Integration Account", as shown in Fig. 2.

IA02-FindIntegrationAccount
Fig. 2

The "Integration Account" information page displays, as shown in Fig. 3.

IA03-IntegrationAccountIntro
Fig. 3

Click the [Create] button to display the "Create Integration Account" blade with the "Basics" tab selected, as shown in Fig. 4.

IA04-IntegrationAccountBasics
Fig. 4

At the "Resource group" field, select or create a resource group in which to store this Integration Account.

At the "Integration account name" field, enter a unique name for this Integration Account.

At the "Location" dropdown, select the region in which to store this account. This should be the same region in which your Logic Apps are located.

At the "Pricing Tier" dropdown, select which pricing tier you wish to use. The options are (in increasing order of cost) "Free", "Basic", and "Standard". Only one Free Account is allowed per Azure Subscription. You can change this setting after creating an Integration Account.

Click the [Review + create] button when you have completed this tab. The "Review + create" tab displays, as shown in Fig. 5.

IA05-ReviewCreate
Fig. 5

Review your choices. Switch back to the "Basics" tab if you need to make any corrections. Click the [Create] button to create the Integration Account.

After Azure creates the Integration Account, the "Your deployment is complete" message displays, as shown inf Fig. 6.

IA06-YourDeploymentIsComplete
Fig. 6

Click the [Go to resource] button to open the Integration Account, as shown in Fig. 7.

IA07-IntegrationAccountOverview
Fig. 7

Here you can manage reusable Schemas, Maps, and other Components.

Associating a Logic App with an Integration Account

An Integration Account can be associated with one or more Logic Apps, making components in the Integration Account available to each of these Logic Apps.

See this article to learn how to create a Logic App.

To associate a Logic App with an Integration Account, open the Logic App. The left menu of a Logic App is shown in Fig. 8.

IA08-LogicAppsLeftMenu
Fig. 8

Click the [Workflow settings] button (Fig. 9) under the "Settings" section of the left menu to open "Access control configuration" blade, as shown in Fig. 10.

IA09-WorkflowSettingsButton
Fig. 9

IA10-WorkflowSettings
Fig. 10

At the "Integration account" dropdown, select the Integration Account you wish to associate with this logic app, as shown in Fig. 11.

IA11-SelectIntegrationAccount
Fig. 11

Click the [Save] button (Fig. 12) at the top of the blade to save this configuration.

IA12-SaveButton
Fig. 12

You are now ready to use the artifacts in the Integration Account with this Logic App.


Episode 598

Jean Lange on Building Skills with Improv games

Jean Lange runs a workshop that uses games and improvisation to help people learn important skills when working with a group. Participants learn to communicate and to accept failure.

https://www.academypgh.com/


Creating an Azure Logic App

Comments [0]

With a Logic App, you can create and run scalable workflows that are hosted in the Azure cloud. A graphical designer and connectors to hundreds of databases, APIs, and external applications and services make it possible to quickly create a workflow using Logic Apps.

To create a new Logic App, navigate to the Azure Portal, sign in and click the [Create a resource] button (Fig. 1).

LA01-CreateAResource
Fig. 1

Select Integration | Logic App, as shown in Fig. 2.

LA01-NewIntegrationLogicApps
Fig. 2

The "Create Logic App" blade with the "Basics" tab selected, as shown in Fig. 3.

LA03-NewLogicAppBlade
Fig. 3

At the "Resource group" field, select or create a resource group in which to store this Logic App.

At the "Logic App name" field, enter a unique name for this Logic App.

At the "Location" dropdown, select the region in which to store this Logic App.

Click the [Review + create] button when you have completed this tab. The "Review + create" tab displays, as shown in Fig. 4.

LA04-ReviewCreateTab
Fig. 4

Review your choices. Switch back to the "Basics" tab if you need to make any corrections. Click the [Create] button to create the Integration Account.

After Azure creates the Logic App, the "Your deployment is complete" message displays, as shown in Fig. 5.

LA04-ReviewCreateTab
Fig. 5

Click the [Go to resource] button to open the Start Page of your Logic App, as shown in Fig. 6.

LA06-LogicAppStart
Fig. 6

On the start page, a video is available if you want a brief introduction to Logic Apps.

Below the video is a set of buttons that allow you to create a new workflow with a common trigger. A trigger is an action that starts a Logic App workflow.

The next section lists buttons for templates to perform some common tasks. Each template contains a trigger and one or more actions.

These buttons help to accelerate your development by providing some of the activities in a workflow and allowing you to fill in the specific properties.

Fig. 7 shows the Logic App designer after you select the HTTP Request-Response template.

LA07-LogicAppsDesigner
Fig. 7

In this article, you learned how to create a new Logic App.


GCast 73:

Build an Azure DevOps Release Pipeline

How to create a pipeline that will automatically deploy an ASP.NET Core Web Application to an Azure App Service.


Microsoft Power Automate (formerly Microsoft Flow) and Azure Logic Apps solve similar problems. You can use either one to create a workflow hosted in the cloud. However, Logic Apps tend to be more powerful. If you create a Power Automate flow, you may eventually run into its limitations and wish to recreate the same workflow in Logic Apps.

Fortunately, this can be done in just a few steps.

Navigate to https://flow.microsoft.com, sign in and select the flow you wish to migrate under "My Flows". The details of the flow displays, as shown in Fig. 1.

PALA01-FlowDetails
Fig. 1

From the top toolbar, select Export | Logic Apps template (.json), as shown in Fig. 2.

PALA02-ExportButton
Fig. 2

A JSON file will be created and automatically downloaded. Fig 3 shows a section of this file.

PALA03-JSON
Fig. 3

Navigate to the Azure Portal (https://portal.azure.com) and login. Click the [Create a Resource] button (Fig. 4) and search for "Template deployment (deploy using custom templates), as shown in Fig. 5.

PALA04-CreateResourceButton
Fig 4

PALA05-NewTemplateDeploy
Fig. 5

Select "Template deployment" to display the info page for this service shown in Fig. 6.

PALA06-TemplateDeployInfo
Fig. 6

Click the [Create] button to display the "Custom deployment" start page, as shown in Fig. 7.

PALA07-TemplateDeployStart
Fig. 7

Click "Build your own template in the editor" to display the template editor, as shown in Fig. 8.

PALA08-TemplateEditor
Fig. 8

Click the [Load file] button (Fig. 9); then navigate to and select the JSON file you exported above.

PALA09-LoadFileButton
Fig. 9

The exported JSON displays, as shown in Fig. 10.

PALA10-LoadedFile
Fig. 10

Click the [Save] button to open the "Custom deployment" dialog with settings from the JSON file, as shown in Fig. 11.

PALA11-CustomDeployment
Fig. 11

Fill in the desired Resource Group and Logic App name, check the "I agree" checkbox, and click the [Purchase] button to create the Logic App.

After a few seconds, your logic app will be available. At this time, you can open it and change any settings you wish, as shown in Fig. 12.

PALA12-LogicApp
Fig. 12

It may be necessary to authenticate against any API connectors, so check these before testing your Logic App.

In this article, you learned how to export a Power Automate flow and import it into an Azure Logic App.


Azure Logic Apps and Microsoft Power Automate (formerly Microsoft Flow) are tools from Microsoft that allow users to build custom workflows.

Each of these tools provides a robust workflow engine with a graphical front-end. Power Automate (PA) is built on top of Logic Apps and it is possible to export from a Power Automate flow and import it into a Logic App. Each provides a graphical interface to add connectors, workflow step, and control logic. Each supports an in-browser User Interface, so you don't need to install anything locally (although a VS extension lets you design workflows from within Visual Studio.) Each ships with a set of connectors to common databases, queues, APIs, and other systems, along with generic connectors to do things like calling a web service. Neither provides a great DevOps story, allowing easy integration with version control, automated testing, and automated deployment.

But there are differences. A primary difference is the way that Microsoft positions these 2 technologies: Microsoft is targeting PA at "Citizen Developers" - users with a strong knowledge of their systems and their business requirements, but without the knowledge or desire to write code. Logic Apps are targeted at developers and IT workers. As these products mature, expect PA to get more features around ease of use, while Logic App gets more focus on increased power.

Here are some other differences:

Logic Apps:

  • are hosted in Azure
  • are more scalable
  • have a code view, making it slightly easier to use source control
  • have more connectors (e.g., Liquid templates, SAP, IoT)
  • Support B2B and B2C Scenarios
  • triggers fire faster
  • have better monitoring

Power Automate flow:

  • are hosted in Office 365
  • includes a "Button" trigger for easy integration with PowerApps
  • provides some simple, common templates to get you started
  • has better SharePoint integration

When deciding between these tools, here are some questions to ask yourself:

  • Are you primarily using Azure or Office 365? Logic Apps runs in Azure; PA runs in Office 365. If you are not currently using the appropriate platform, you will need to start doing so.
  • What is the tech level of those who will be maintaining your workflows? Logic Apps are designed for tech professionals; PA is designed for business users with some tech knowledge
  • What are the scalability and performance requirements? PA can handle a lot, but the maximums are greater for Logic Apps.
  • Do many of your workflows read from and write to SharePoint? PA will probably make these easier to write.
  • With which external systems, databases, and APIs will your workflows interact? Logic Apps include access to many more connectors. Verify that the ones you need exist in the platform you choose.

One choice is to begin writing your workflows with PA; and, if you find that you need something more robust, use the import/export functionality to migrate your flows to Logic Apps and begin using that tooling.


Episode 597

Arthur Doler on Mental Health in the Workplace

Arthur Doler discusses how people can recognize and deal with mental health issues and how it affects the tech community.


Microsoft Power Automate (formerly Microsoft Flow) is a tool that allows people to design and build workflows without writing code.

In a previous article, I showed you how to create a flow from a template. In this article, I will show how to test a flow after you create it.

If your flow is not already open in the designer, you can navigate to https://flow.microsoft.com and sign in; then select "My flows" from the left menu, as shown in Fig. 1

PAT01-SideMenu
Fig. 1

Select your flow to open it; then click the [Edit] button (Fig. 2) in the toolbar to open the flow in Edit mode.

PAT02-EditButton
Fig. 2

With the flow open, you can test this flow by clicking the [Test] button (Fig. 3) in the top right toolbar.

PAT03-TestButton
Fig. 3

A "Test Flow" dialog displays, as shown in Fig. 4.

PAT04-TestFlowDialog
Fig. 4

This dialog gives you the option to either perform the trigger action manually (in this case, sending an email with an attachment to the mailbox you specified). Use using data from a previous test run. If this is the first time you've tested this flow, only the first option is available. Select the "I'll perform the action trigger" radio button and click the [Test] button. After a few seconds, this starts the flow running in test mode. It won't be activated until you trigger it.

If you are using the flow created in the previous article, the trigger involved sending an email with one or more attachments to an email address. In any event, a message displays telling you how to trigger the flow, as shown in Fig. 5.

PAT05-TestMode
Fig. 5

After the flow is triggered, each step will display with a green check indicating success or a red "x" indicating failure for each action attempted, as shown in Fig. 6.

PAT06-FlowAfterTest
Fig. 6

You can expand any step to view the inputs, outputs, and any relevant messages of that step, as shown in Fig. 7.

PAT07-ExpandStep
Fig. 7

As you make changes to your flow, you can continue to test it with the same data from the original test, without having to run the trigger again. Do this from the "Test Flow" dialog

  1. Select the "I'll perform the action trigger" radio button
  2. Select the test run that includes the data you want to use.
  3. Click the [Test] button.

An example is shown in Fig. 8.

PAT08-TestFlowDialog
Fig. 8

Repeat this until the flow works the way you expect it.

In this article, you learned how to test a flow in Microsoft Power Automate.


GCast 72:

Creating an Azure DevOps Build Pipeline

Learn how to automate a build and test process with an Azure DevOps Build pipeline.


Microsoft Power Automate (formerly Microsoft Flow) is a tool that allows people to design and build workflows without writing code.

It ships with a workflow engine and a designer. The design work is done in the browser.

To make it easier to get started PA includes hundreds of templates - workflows to accomplish common tasks.

You can get started quickly by selecting one of these templates.

Navigate to flow.microsoft.com and sign in.

A workflow in Power Automate is known as a "flow". From the left side menu (Fig. 1), select "My flows".

PAT01-SideMenu
Fig. 1

This will list all flows that you have created so far. If you haven't yet created any, the list will be empty, as shown in Fig. 2.

PAT02-MyFlows
Fig. 2

To get started creating a new flow, click the [+New] button above this list. A dropdown menu displays, as shown in Fig. 3.

PAT03-NewFlow
Fig. 3

Select "Create from Template". A list of available templates displays, as shown in Fig. 4.

PAT04-TemplateList
Fig 4

You can use the "Search templates" box to search for a template by its name or description or you can click the [See More Templates] button (Fig. 5) at the bottom of the list to display another page of available templates.

PAT05-SeeMoreTemplates
Fig. 5

One simple template allows you to save email attachments to a OneDrive folder. To get started, click the [Save Outlook.com email attachments to your OneDrive] card, as shown in Fig. 6.

PAT06-SaveEmailToOneDrive
Fig. 6

A summary page for this template displays, as shown in Fig. 7.

PAT07-TemplateSummary
Fig. 7

Click the [Use this template] button. The connectors used by this template will display, as shown in Fig. 8.

PAT08-Connectors
Fig. 8

You will need to configure these 2 connectors to specify and authenticate against your specific email account and OneDrive account.

When, you have finished configuring these, click the [Continue] button.

A new flow is created based on this template. The Flow Designer for this flow displays, as shown in Fig. 9.

PAT09-FlowDesigner
Fig. 9

This workflow consists of 2 steps: One Trigger and one Action.

The Trigger ("On new email", in this case), specifies what must happen in order to run this flow. For this flow, it is the receipt of an email. The connector configured above specified the email account, but there are more options. For example, by default, we only look at messages in the Inbox, but we can check a different folder if we only want to consider emails routed to a specific Outlook folder.

Click the "Show advanced options" link to display advanced options (Fig. 10).

PAT10-AdvancedOptions
Fig. 10

Here, you can filter the trigger, so it is only activated by messages to and/or from certain parties or with a specific word or words in the subject.

Look at the first action in this flow with the title "Apply to each attachment on the email". (Fig. 11)

PAT11-Action
Fig. 11

Notice that it contains another action. This is a type of "Control" action, known as an "Apply to each control" and it works similarly to a LOOP or FOREACH construct in a programming language. It will exit all contained actions for every email attachment that the trigger finds.

The contained action is a "Create file" action. So, it will create a file in your Dropbox folder for every email attachment that arrives in your inbox. You have the option to modify the name and contents of the file created, but the default behavior is to use the name and contents of the attached file.

You can add more actions to this flow if you like. To add an action inside the control, click the [Add an action] button (Fig. 12) at the bottom of the control.

PAT12-AddAnActionButton
Fig 12

To add an action after the control, click the [New Step] button (Fig. 13) below the control.

PAT13-NewStepButton
Fig. 13

To add an action between actions or before all actions, hover your mouse over the arrow connector and click the [+] button (Fig. 14) that appears.

PAT14-PlusButton
Fig. 14

You can save the flow by clicking either the [Save] button at the bottom (Fig. 15) or in the top right toolbar (Fig. 16).

PAT15-SaveButton
Fig. 15

PAT16-SaveButton
Fig. 16

Now your flow is ready to test, which I will cover in the next article.

In this article, I showed how to create a new flow based on a template in Microsoft Power Automate.


A few months ago, Microsoft Flow was rebranded as Microsoft Power Automate.

Power Automate (PA) is a tool and platform for building workflows. It is specifically targeted at business users and business analysts. These foods are often referred to as "Citizen Developers". They understand the business logic to be encoded but lack the skill or desire to write custom code.  Because PA provides a graphical interface directly within the browser, these Citizen Developers can create many workflows without writing any code.

PA consists of the following key components
Flows

  • Connectors
  • Triggers
  • Actions
  • Templates
  • Solutions

Flows

A flow is a workflow created with Microsoft Power Automate. It consists of a set of steps, along with some logic to decide when and how often those steps are executed.

Connectors

Connectors provide a way for your flow to connect to external data sources and applications. They are wrappers to APIs to those external components. PA ships with hundreds of connectors, but you can also build your own, if the one you want is not available. 

Triggers

A trigger defines an event that kicks off a flow. This can be a document saved somewhere, an email message received, a database change, or any of a number of possible activities.

Actions

An action is a step for the flow to perform. You build your flow by chaining together different actions and the logic around their execution. Most actions use connectors to interact with external data or an external application.

Templates

A template is a predefined flow on which you can base a new flow. This makes it easy to create a flow to accomplish many common tasks, such as automatically saving an email attachment to a OneDrive folder or send an email when someone saves a file. More complex workflows also have templates. For example, there are several templates that support manager approval processes.

Solutions

A solution is a set of related flows that you can manage together. Use this to deploy multiple flows at the same time to the same environment.

Examples

The built-in connectors and templates make it possible to build flows for a variety of scenarios. Want to automate the process of approving expense reports? Done! Want to be notified when important data is updated? Done! Want to know the weather every morning? Done! You can start with a template or build a flow from scratch.

What if it’s not enough?

Some workflows may require more complex logic or lots of custom code. For these, Microsoft offers Azure Logic Apps – a more powerful workflow engine hosted in Azure.

Getting started

If you are an Office 365 or Dynamics 365 customer, you already have access to Power Automate.

If not, you can sign up for free at https://flow.microsoft.com

You can build flows with the free version; but there are limitations on the number of flows, the available connectors, and the frequency they can be invoked. You can move past these limitations this by signing up for a paid version.


Episode 596

Courtney Eaton and Gabrielle Sempf on KidzMash

KidzMash is a tech conference for children, run in parallel with the CodeMash conference.

Courtney Eaton and Gabrielle Sempf talk about what goes into KidzMash and what makes it successful.

https://www.codemash.org/kidzmash/


January 2020 Gratitudes

Comments [0]

2/2
Today I am grateful for a visit to the Henry Vilas Zoo in Madison, WI yesterday.

2/1
Today I am grateful for 2 years in my condo.

1/31
Today I am grateful for Coffee with Andy

1/30
Today I am grateful for those who offered to help me learn a new technology, without me even asking.

1/29
Today I am grateful to attend a Lunar New Year celebration yesterday.

1/28
Today I am grateful to reconnect with some old friends via email this past week.

1/27
Today I am grateful to watch the Grammy Awards last night

1/26
Today I am grateful to attend the Microsoft holiday party last night.

1/25
Today I am grateful for my first visit to Charlotte, NC.

1/24
Today I am grateful for dinner last night with Emiel after 15 years.

1/23
Today I am grateful for Carolina bbq last night in North Carolina.

1/22
Today I am grateful for dinner last night in Charlotte with Richard.

1/21
Today I am grateful for Inbox Zero.

1/20
Today I am grateful to get Emilija's car running again.

1/19
Today I am grateful to watch the harsh weather this week through my window from inside my warm living room.

1/18
Today I am grateful that the Michigan State basketball and ice hockey teams are both in first place.

1/17
Today I am grateful to attend an Andy Warhol exhibit at the Art Institute of Chicago last night with Julie.

1/16
Today I am grateful to watch Nick's team's first conference victory last night in Kalamazoo.

1/15
Today I am grateful for a new bike chain.

1/14
Today I am grateful for dinner last night with Julie and David.

1/13
Today I am grateful that I had a chance to know Scott Allen before he left us.

1/12
Today I am grateful for the blanket of white covering the city this morning.

1/11
Congratulations to the North Dakota State Bison on another title!

1/10
Today I am grateful for the hospitality and generosity of Chris Chris this week.

1/9
Today I am grateful for dinner with J. last night.

1/8
Today I am grateful for dinner last night with Kendall and Gary.

Jan 8, 2020, 8:34 AM
David Giard updated his status.

1/7
Today I am grateful to come to the Kalahari for the 12th consecutive January.

1/6
Today I am grateful for the NFL playoffs.


GCast 71:

Integrating Visual Studio Solution with Azure DevOps Repo

Learn how to configure your Visual Studio 2019 solution to integrate with an Azure DevOps repository.


Episode 595

Tibi Covaci on Migrating to the Cloud

Tibi Covaci discusses strategies and factors companies need to consider when migrating their applications to the cloud.


AHouseforMrBiswasMisfortune followed Mr. Biswas his entire life. He was born slightly handicapped and grew up weak in body and spirit. When he was a boy, his father accidentally drowned as a result of his negligence. He was sent to live first with a craftsman, then with an abusive uncle and each stay ended disastrously. As a young man, his flirtation with a local young lady is misinterpreted as a proposal and he is pressured by her family into marriage. From that moment on, he finds himself dependent on the wealthy Tulsi family - a dependence he comes to bitterly resent.

A House for Mr. Biswas by V.S. Naipaul takes place before and during World War II among the east Indian community of the West Indian island of Trinidad.

The house that Mr. Biswas craves is a symbol of his freedom and independence - evidence that he will no longer rely on others for shelter or status or anything else - and for the respect that will accompany that independence.

The reader wants to pity Mr. Biswas, but it is often hard because so much of his pain is self-inflicted. He alienates everyone around him with his rages and his pettiness. The book must have been painful for Naipaul to write, as the title character is based on his own father. At times, it was painful to read as I recalled the times in my own life when I acted against my own best interest out of anger or spite.

There isn't much action in this book and Naipaul removes suspense by revealing the ending in the prologue; but he makes it work for several reasons:

He builds characters that the reader can care for, even if they are not likeable.

His prose and dialogue are wonderful - sometimes tragic; often humorous.

He weaves together large themes, such as the changing cultures in a post-colonial world and the conflicts of toxic relationships.

A House for Mr. Biswas is an excellent story of a limited man struggling to free himself.


GCast 70:

Deleting an Azure DevOps Project

Deleting a project from an Azure DevOps organization is not intuitive (at least it wasn't for me). Here is how to do it.


Episode 594

Christian Geuer Pollmann on Erlang and Elixir

Christian Geuer-Pollmann describes the Erlang ecosystem, the Elixir language, and open source Azure tools he has built with Elixir.

Links:

https://github.com/chgeuer
https://twitter.com/chgeuer
http://blog.geuer-pollmann.de


MIsForMagicM is for Magic collects 11 short stories by fantasy author Neil Gaiman.

The title is a tribute to Ray Bradbury's short story anthologies R Is for Rocket and S Is for Space and Gaiman's style is not dissimilar to Bradbury's.

The collection opens with "The Case of the Four and Twenty Blackbirds" - A detective story in the style of Dashiell Hammett's or Raymond Chandler's pulp novels, but featuring characters from nursery rhymes. Hard-boiled private eye Jack Horner attempts to solve the mystery of whether Humpty Dumpty fell from a wall or was pushed. The story is often laugh-out-loud funny.

10 more stories and a poem follow; they cover various subjects and styles, but revolve around the genres of fantasy, horror, and science fiction. These tales were written by Gaiman over a period spanning over 20 years. Many of them have appeared in other collections, but they were all new to me.

My favourite was "Chivalry", which tells of an old lady who buys the Holy Grail in a local thrift store for 70 pence and likes the way it looks on her mantle. When Sir Galahad arrives on his quest for the Grail, he offers her priceless treasures in exchange; but she really likes the way it looks between a ceramic figurine and a photo of her late husband.

Most of the stories are a bit scary, but none is terrifying. There is a bit of nudity and sex, so I would not recommend M is for Magic for young children. But teenagers and young adults will enjoy Gaiman's wit and creativity; And grown-ups like me will also like it.

The stories:

The Case of the Four and Twenty Blackbirds

Detective Jack Horner investigates the fall of Humpty Dumpty.

Troll Bridge

A young boy stumbles upon a giant troll, who declares he will eat the boy's life. The boy dissuades the troll by promising to return when he has experienced more life.

Don't Ask Jack

A mysterious and malevolent jack-o-lantern frightens the family

How to Sell the Ponti Bridge

An elaborate scam that impresses other grifters

October in the Chair

Each of the months of the year gather around a fire to exchange stories

Chivalry

An old lady discovers the Holy Grail in a secondhand shop. A few days later, Sir Galahad comes to her house on his holy quest.

The Price

The devil shows up and battles an adopted stray cat

How to Talk to Girls at Parties

Teenage boys attend a party hosted by alien females

Sunbird

An epicurean club travels to Egypt to capture and eat an extremely rare bird

The Witch's Headstone

A boy encounters the ghost of witch burned centuries ago and tries to help her

Instructions

A poem about what to do if you find yourself in a fairy tale.


The C# string class provides a convenient method for replacing one string with another. The syntax is

string.Replace (, );

So the following code:

var oldName = "David";
var newName = "Mr. Giard";
var oldSentence = "My name is David";
var newSentence = oldSentence.Replace(oldName, newName);
  

stores the value "My name is Mr. Giard" in the variable newSentence.

It is simple and it works. But I recently discovered a limitation: Searching for the old string is always case-sensitive. If I want to do a case-insensitive search and replace instances of "David" or "david" or "DAVID" (or even "daVid"), the string.Replace method does not support this.

The following code:

var oldName = "DAVID"; 
var newName = "Mr. Giard"; 
var oldSentence = "My name is David"; 
var newSentence = oldSentence.Replace(oldName, newName);
  

Results in the value "My name is David" being assigned to newSentence. In other words, the Replace method did nothing.

Fortunately, I can use the regular expression library to do this. The code is below:

var oldName = "DAVID"; 
var newName = "Mr. Giard"; 
var oldSentence = "My name is David"; 
var regex = new Regex(oldName, RegexOptions.IgnoreCase); 
var newSentence = regex.Replace(oldSentence, newName);
  

It is only one more line than using Replace and it allows for much more flexibility. And, as Regular Expressions go, this one is quite simple.


GCast 69:

Azure DevOps Branch Policies

Learn how to set branch policies in Azure DevOps, including requiring approvers and requiring a linked work item.


Episode 593

Annie Bougie on Autonomous Driving

Annie Bougie describes the different levels of autonomous vehicles and the state of the industry today.


RecognitionsThe Recognitions by William Gaddis tells the story of Wyatt Gwyon, a talented but commercially unsuccessful painter. Recktall Brown, an unscrupulous art dealer, convinces Wyatt to produce paintings in the styles of Flemish masters and sell the as newly discovered originals. But it tells many other stories of dozens of characters who pass in and out of its pages.

There are some things that I really like about this novel. I marveled at the cleverness of much of the dialogue. I particularly enjoyed the fragmented conversations pieced together at cocktail parties - a technique Gaddis repeated multiple times. I liked the parallel issues of art forgery, a currency counterfeiting, plagiarism, and passing off an artificially aged mummy - different takes on those who dishonestly profiting from the works of others.

But the book went out of its way to confuse the reader and obfuscate its stories.

Gaddis seems to take pleasure in confusing his readers. He jumps from story to story and from character to character with wild abandon. I frequently found myself flipping back several pages in an effort to figure out who was speaking or who the author was describing. Even then, I was often unsuccessful. Add to this that some of the dialogue is in a foreign language and those phrases are sometimes significant to the story, so the reader is forced to set down the novel and translate the phrase. A thousand pages of this left me fatigued and confused.

Gaddis seemed to know that his novel’s complexity would tire the reader. He included one scene in which a book critic admits to reviewing a long book after reading only the jacket.

I powered my way through it, but ultimately found it unsatisfying.


Episode 592

Jes Schultz on Data Engineering

Jes Schultz discusses the roles and responsibilities of a Data Engineer.


December 2019 Gratitudes

Comments [0]

1/5
Today I am grateful for the lady who cleans my home twice a month.

1/4
Today I am grateful for a sleep study last night.

1/3
Today I am grateful for 2 weeks vacation at the end of the calendar year.

1/2
Today I am grateful for college football.

1/1
Today I am grateful for an exciting year.

12/31
Today I am grateful for a visit to the Grohmann Museum yesterday.

12/30
Today I am grateful to ride around Chicago last night in shorts.

12/19
Today I am grateful to sleep in my own bed.

12/28
Today I am grateful for 3 days in Detroit.

12/27
Today I am grateful for my first visit to the Detroit Institute of Arts in decades.

12/26
Today I am grateful to celebrate Christmas with my family.

12/25
Today I am grateful that God sent his son to save us.

12/24
Today I am grateful for 3 days in Kalamazoo, MI.

12/23
Today I am grateful for a visit to 2 museums in Kalamazoo, MI yesterday.

12/22
Today I am grateful for lunch with my son after watching him coach his college team yesterday.

12/21
Today I am grateful for a late-December bike ride through downtown Chicago yesterday.

12/20
Today I am grateful to see Wilco in concert last night.

12/19
Today I am grateful to watch the Spartans defeat Northwestern at Welsh-Ryan Arena last night.

12/18
Today I am grateful to edit months worth of photos yesterday.

12/17
Today I am grateful for a week in Denmark and Sweden.

12/16
Today I am grateful for the hospitality and generosity of Tiberiu and Nicoleta and their family.

12/15
Today I am grateful for a walk around Helsingborg, Sweden yesterday evening.

12/14
Today I am grateful for dinner last night in Helsingborg with Tiberiu, Nicoleta, and their family.

12/13
Today I am grateful for dinner last night with Magnus and his family.

12/12
Today I am grateful to everyone who made the DevOps OpenHack in Copenhagen a success this week.

12/11
Today I am grateful for sushi last night in Copenhagen with Christian, Sasa, and Erhunse.

12/10
Today I am grateful for great books.

12/9
Today I am grateful for an empty seat next to me on each of my flights yesterday.

12/8
Today I am grateful to see Nick's game last night with Tim and Nathale.

12/7
Today I am grateful for 2 excellent sons.

12/6
Today I am grateful for good news from multiple medical test results this week.

12/5
Today I am grateful for dinner with Emilija yesterday.

12/4
Today I am grateful for good health care.

12/3
Today I am grateful to return to my trainer yesterday after a month of travel kept me away.

12/2
Today I am grateful for time to set up and arrange furniture in my home yesterday.


2019 in Review

Comments [0]

2019 was an amazing year for me. I’ve listed some details of my experiences at the bottom of this post, but here are the highlight.

Career

As 2018 ended, I did not feel comfortable with my job. I had moved to a new division (the company eliminated my old position) and I struggled to understand the new processes and to make a positive impact. In early 2019, things began to click. I was involved in a number of successful projects and I learned a great deal. I worked with customers to build and deploy valuable software and I mentored at OpenHacks and other workshops to teach developers how to write code and use the tools of IT.

Family

My 2 sons also enjoyed success this year - both personally and professionally. In October, Nick was named Head Basketball Coach at Kalamazoo College. He and his longtime girlfriend became engaged in November. Tim began a new job in January working for an IT consulting company. He is enjoying the work and the people and he does not have the long commute of his old job. In the spring, I helped him move into a new house. His only major setback was tearing his Achilles tendon while playing basketball, but he is recovering well from this injury.

My brother Dan lives in Australia, but he spent much of this year working in Phoenix, AZ. In August, I flew to Phoenix and we spent some time together. Our trip included a Diamondbacks game, a visit to Flagstaff, and a musical journey to stand on a corner in Winslow, Arizona.

My sister Debbie moved to Hawaii this year. With Dan living in Australia, family get-togethers are becoming smaller and smaller. Dan did fly to Michigan to celebrate Christmas with us.

Music

If you know me, you know that I love music and I love to see live music. I attended 18 concerts in 2019 - many featuring bands and musicians I enjoyed in my youth. The most memorable concert was seeing Peter Frampton's farewell tour with my son Tim.

Theatre

I've always enjoyed live theater. This year, I made an effort to see more, including some world class performances on Broadway and London's West End. I attended a London West End play on 2 separate visits and my friend Jon (a big theatre fan who lives in the UK) was kind enough to join me on my first visit.

Travels

I traveled internationally more this year than I ever have in the past. Most of my trips were for work, but I often stayed a couple extra days to explore. I made my first visits to Denmark and the Netherlands and I returned to Italy and Germany for the first time in 30 years. I also visited the UK, Sweden, and Canada this year, along with a number of US locations.

The best trips were those in which I stayed with friends: The aforementioned trip to Arizona to visit Dan; a few days in Las Vegas to stay with my friends Jay and Christina and their family; and a few days staying with my friend Tibi and his family in Helsingborg, Sweden. I'm also grateful to my friend Jon for allowing me to stay with him during the CodeMash conference in January.

Sporting Events

I made a dent in my quest to visit every NFL, NBA, NHL, and MLB stadium/arena, but not as much as I hoped. I visited 5 new places in 2019, barely staying ahead of the pace at which teams are building new homes.

I also attended a Minor League baseball game in Joliet, IL; college basketball games at Kalamazoo College, Western Michigan University, the University of Chicago, and Chicago State University; a US Women's National Team soccer game against Korea at Soldier Field; a WNBA Chicago Sky home game; and the NCAA Division 1 Women's Regional Finals basketball game, featuring Notre Dame vs Stanford.

The best game I saw was the 2019 Big Ten Basketball Tournament finals at the United Center, in which the Michigan State Spartans came from behind to defeat the university of michigan 65-60 for Tom Izzo's sixth conference tournament title. It was a highlight in a season of highlights that also included a regular season championship and a Final Four appearance.

Books

For the second year in a row, I focused heavily on reading. Most of the books I chose this year came from Time Magazine's list of the Top 100 English language novels. I had hoped to finish the list by the end of the year, but I ran out of time and fell about 20 books short. In all, I completed 62 books in 2019.

A complete list of what I read is at the bottom of this post or you can follow me on Goodreads to see what I'm reading and my thoughts on the books I’ve completed.

Blogging

In 2019, I published 226 blog posts – a new record for me.

I continued my commitment to producing my 2 TV shows: Technology and Friends and GCast, publishing almost 100 episodes of these shows during the year.

Public Speaking

I have significantly reduced the amount of public speaking that I do - mostly because it is no longer part of my day job and that job consumes so much of my time. But I did manage to deliver a few presentations. Most were local or online, but I did deliver presentations in Stockholm, Las Vegas, and Atlanta. I hope to return to a more frequent speaking schedule before the community forgets about me.

Conclusion

These past 12 months, I learned a lot, I experienced a lot, and I accomplished a lot. I feel blessed.

The one thing I did a poor job at this year was volunteering my time to charitable causes - something I had increased the 2 previous years. I plan to do better at this in 2020.

2019 was outstanding. I saw the world, I connected with old friends, my family had success, and I advanced in my career. Experience has taught me that this good fortune will not last forever - that eventually, things will go badly. But I don't dwell on that. Instead, I will treasure this year and recall it whenever I hit the hard times.

Appendix

Concerts attended in 2019

  • Nick Moss and Dan Carelli
  • Mott the Hoople
  • Al Green
  • George Clinton and Funkadelic
  • The Rolling Stones
  • Peter Frampton
  • Rev. Sekou
  • Santana and The Doobie Brothers
  • Max Weinberg
  • Squeeze
  • Bruce Cockburn
  • Billy Cobham Crosswinds Project featuring Randy Brecker
  • Willie Nile
  • Kansas
  • Madonna
  • Incognito
  • John Hiatt
  • Wilco

Live Theatre in 2019

  • 'Matilda' at the Cambridge Theatre in London, UK
  • 'Phantom of the Opera' at the Majestic Theatre in New York, NY
  • 'Hamilton' at the CIBC Theatre in Chicago, IL
  • 'True West' at the Steppenwolf Theatre in Chicago, IL
  • 'Miss Saigon' at the Wharton Center in East Lansing, MI
  • 'The Play That Goes Wrong' at the Duchess Theatre in London, UK

Places visited in 2019

  • Peterborough, England
  • London, England (2x)
  • Rome, Italy
  • Copenhagen, Denmark (2x)
  • Frankfurt, Germany
  • Amsterdam, Netherlands
  • Stockholm, Sweden
  • Helsingborg, Sweden
  • Helsinore, Denmark
  • Ottawa, Ontario (2x)
  • Dallas, TX
  • Seattle, WA
  • Tampa, FL
  • Phoenix, AZ
  • Boston, MA
  • Williamstown, MA
  • Las Vegas, NV
  • New York, NY
  • Michigan
  • Wisconsin

Books read in 2019

  • 'The Man Who Loved Children' by Christina Stead
  • 'Infinite Jest' by David Foster Wallace
  • 'The Heart Is a Lonely Hunter' by Carson McCullers
  • 'Through the Woods' by Emily Carroll
  • 'Wide Sargasso Sea' by Jean Rhys
  • 'Nimona' by Noelle Stevenson
  • 'An American Tragedy' by Theodore Dreiser
  • 'The Day of the Locust' by Nathanael West
  • 'Good Omens: The Nice and Accurate Prophecies of Agnes Nutter, Witch' by Terry Pratchett
  • 'White Noise' by Don DeLillo
  • 'Their Eyes Were Watching God' by Zora Neale Hurston
  • 'Light in August' by William Faulkner
  • 'White Teeth' by Zadie Smith
  • 'Herzog' by Saul Bellow
  • 'Ubik' by Philip K. Dick
  • 'Tropic of Cancer' by Henry Miller
  • 'A Portrait of the Artist as a Young Man' by James Joyce
  • 'A Handful of Dust' by Evelyn Waugh
  • 'Mrs. Dalloway' by Virginia Woolf
  • 'Deliverance' by James Dickey
  • 'The French Lieutenant's Woman' by John Fowles
  • 'Possession' by A.S. Byatt
  • 'Housekeeping' by Marilynne Robinson
  • 'Never Let Me Go' by Kazuo Ishiguro
  • 'Arrow of God' by Chinua Achebe
  • 'Claudius the God and His Wife Messalina' by Robert Graves
  • 'The Sheltering Sky' by Paul Bowles
  • 'No Longer at Ease' by Chinua Achebe
  • 'The Power and the Glory' by Graham Greene
  • 'Lucky Jim' by Kingsley Amis
  • 'The Crying of Lot 49' by Thomas Pynchon
  • 'The Moviegoer' by Walker Percy
  • 'Call It Sleep' by Henry Roth
  • 'The Assistant' by Bernard Malamud
  • 'Ragtime' by E.L. Doctorow
  • 'Under the Volcano' by Malcolm Lowry
  • 'Are You There God? It's Me, Margaret' by Judy Blume
  • 'I, Claudius' by Robert Graves
  • 'The Heart of the Matter' by Graham Greene
  • 'I Am Malala: The Story of the Girl Who Stood Up for Education and Was Shot by the Taliban' by Malala Yousafzai
  • 'Rabbit, Run' by John Updike
  • 'Odd and the Frost Giants' by Neil Gaiman
  • 'Naked Lunch' by William S. Burroughs
  • 'The Prime of Miss Jean Brodie' by Muriel Spark
  • 'American Pastoral' by Philip Roth
  • 'A Passage to India' by E.M. Forster
  • 'Invisible Man' by Ralph Ellison
  • 'Atonement' by Ian McEwan
  • 'Go Tell It on the Mountain' by James Baldwin
  • 'Stride Toward Freedom: The Montgomery Story' by Martin Luther King Jr.
  • 'A Death in the Family' by James Agee
  • 'The Confessions of Nat Turner' by William Styron
  • 'The Big Sleep' by Raymond Chandler
  • 'Starship Troopers' by Robert A. Heinlein
  • 'The Adventures of Augie March' by Saul Bellow
  • 'The Painted Bird' by Jerzy Kosinski
  • 'Death Comes for the Archbishop' by Willa Cather
  • 'Revolutionary Road' by Richard Yates
  • 'Things Fall Apart' by Chinua Achebe
  • 'Hi Bob!' by Bob Newhart
  • 'Red Harvest' by Dashiell Hammett

Professional Stadiums and Arenas visited in 2019

  • Arizona Diamondbacks at Chase Field
  • Boston Celtics at TD Garden
  • Boston Bruins at TD Garden
  • Detroit Pistons at Little Caesars Arena
  • Las Vegas Knights at T-Mobil Arena

Public Presentations

Date Topic Event/Host Location
3/14/2019 Guest lecture: Cloud Computing and Azure Michigan State University East Lansing, MI
3/23/2019 How Cloud Computing Empowers a Data Scientist SQL Saturday - Chicago Lisle, IL
3/29/2019 How Cloud Computing Empowers a Data Scientist T-Mobile Student hackathon Atlanta, GA
5/11/2019 We Want the Func! Serverless Computing with Azure Functions Chicago Code Camp River Forest, IL
5/23/2019 We Want the Func! Serverless Computing with Azure Functions DevSum Stockholm, Sweden
7/18/2019 We Want the Func! Serverless Computing with Azure Functions IndySA Indianapolis, IN
7/22/2019 We Want the Func! Serverless Computing with Azure Functions Chicago Cloud Conference Chicago, IL
7/22/2019 Serverless Computing with Azure Functions Chicago Cloud Conference Chicago, IL
8/8/2019 Effective Data Visualization SQL PASS Virtual UG Online
10/10/2019 We Want the Func! Serverless Computing with Azure Functions Las Vegas .NET User Group Las Vegas, NV
10/30/2019 AI for Earth JPMC IT Conference Chicago, IL

GCast 68:

Azure DevOps Work Items

Learn how to create and manage work items for an Azure DevOps project.


GCast 69:

Azure DevOps Branch Policies

Learn how to set branch policies in Azure DevOps, including requiring approvers and requiring a linked work item.


Episode 591

Martin Kearn on Document Recognition and Knowledge Extraction

Martin Kearn describes how to use Microsoft AI tools to recognize and extract data from documents.


J Tower on the .NET CLI

Comments [0]

Episode 590

J Tower on the .NET CLI

J Tower describes how to use the .NET Command Line Interface to automate tasks normally performed inside Visual Studio.


Wilco Ends 2019 at Home

Comments [0]

WilcoIt was their last concert of the year. And their last of the 2010's. And Wilco did not want it to end.

For almost 3 hours, the Chicago-based band performed in front of a sold-out audience Thursday night at the Chicago Theatre - the fourth night this week they did so.

With 16 studio albums, they have no problem finding music to fill a long set. And with styles ranging from alt-country to pop to indie rock to psychedelic, they had no trouble keeping the audience engaged and standing for such a long performance.

They chose mostly slower, softer songs, although they interspersed some heavy metal guitar and drums into the arrangements of some of these songs. For example, on the melancholy "Via Chicago", the singers continued to sing the chorus, ignoring the rythms set by the guitarist and drummer, who suddenly shifted into a death metal sound for a few seconds.

The band's lineup has remained consistent since some turnover around 20 years ago. The original driving force remains in lead singer and songwriter Jeff Tweedy, who fronts the band and related to the audience on a personal level.

Marina Towers, featured on Wilco's Yankee Hotel Foxtrot albumLate in the show, Tweedy announced that the band would "pretend to go over there and then come back", suggesting that they were about to play their encores without the usual charade of pretending the show was over. They played 2 more songs, then actually did say Good Night and leave the stage, participating in the ritual of waiting for the audience to call them back for more. The actual encore included "California Stars" (my favourite Wilco song - a Woody Guthrie composition originally recorded as a Wilco collaboration with Billy Bragg) and closed with a cover of John Lennon's "Happy Xmas (War is Over)". For the latter song, they were joined by Sharon Van Etten, who warmed up the audience with a solo acoustic performance earlier in the evening.

It was after 11PM when the show ended, and the audience ventured out into the cold Chicago night and Wilco began their time off until next year. And it was clear they did not want it to end.


A few months ago, I decided to spend 2 days in Copenhagen on my way to speak at a conference in Stockholm, Sweden. I had never been to Denmark before and I did not know if I would get the opportunity again.

Little did I know that my opportunity would come so soon.

IMG_6789I was asked to serve as the Tech Lead at a DevOps OpenHack in Copenhagen last week and I quickly accepted a chance to return to Copenhagen. I didn't feel I had enough time to explore last time (although I did visit 2 museums and took a boat tour of the canals); and I wanted to see more.

Unfortunately, it is more difficult to see Denmark in December than it is in May. The Copenhagen sun rises at about 8:30 and sets at about 3:30, meaning it was dark when I arrived at work each day and dark when I left.

But I still enjoyed myself.

The OpenHack was a great success. It was my first time as a tech lead, which added pressure, but my friend Hattan helped me prepare for this role and I was ready when the event began. I was also excited to learn more about DevOps - an important part of software development that I had been hoping to upskill on. The final day of the OpenHack, I surprised the audience by singing a song about DevOps that I had composed the night before. It was set to the tune of "Deck the Halls", which gave it a festive feel.

After the OpenHack ended, I met my friend Magnus and his family for dinner. Magnus lives in Malmo, Sweden, which is across the Oresund from Copenhagen. It was good to see him and to meet his family.

IMG_6800The following day, I walked around Copenhagen and spent a couple hours at the Christiansborg Palace, where the Danish Parliament meets. The Palace boasts several museums. I visited the ruins under the palace of the castles that previously stood on the site; and the Royal Reception Rooms, where monarchs host official functions.

IMG_6859My friend Tibi recently moved to Helsingborg, Sweden and he invited me to stay with his family. So, Friday afternoon, I traveled the 100 km by train to meet him. It was a relaxing weekend with Tibi, his wife Nicoleta, and their 3 daughters, including an 11-month-old with an infectious smile.

IMG_6836Sunday, I took a ferry across the Oresund to Helsingborg to visit Kronberg Castle, which inspired William Shakespeare to write "The Tragedy of Hamlet, Prince of Denmark" over 400 years ago. If I return in the summer, I would love to see a live production of "Hamlet" performed at the castle. The day was filled with wind and rain, which made the ferry ride rough and walking unpleasant, but which also kept away crowds.

On Monday, I spent the entire day returning home - via car, train, 2 flights, and an Uber ride.

It was not an exciting trip, but it was one that I enjoyed, thanks to the kindness of friends. And I left with a festive feeling.


GCast 67:

Azure Repos, Branches, and Pull Requests

Learn how to edit files in an Azure DevOps repo, create branches and pull requests, and approve mergers.


Episode 589

Tobiah Zarlez on Gender Identity

A few years ago, Software Engineer Tobiah Zarlez came out as non-binary gender. Tobiah talks about what this mean, how it affected them, and how the tech community responded.


PaintedBirdA young boy wanders alone from village to village in eastern Europe during World War II, experiencing fear, abuse and perversion at nearly every turn. His hair, eyes, and skin are dark, so he is labeled a Jew and/or a Gypsy - both capital offenses under the Nazi occupation.

The cruelty and depravity he encounters only worsens as his journey continues. For six years, he escapes a terrible situation in one village to a new (often worse) situation in another village. One farmer gouges out the eyes of a field hand he suspects of flirting with his wife; another man locks the boy in a room with a large violent dog every night; he witnesses one family engaged in incest and bestiality. Against it all is the backdrop of the Nazis shipping Jews, Gypsies, and other minorities to suffer and die in concentration camps.

He is beaten and nearly murdered multiple times; nearly everyone he meets is superstitious, ignorant, and cruel. Many of the peasants are active participants in rape, murder, and animal abuse.

The Painted Bird by Jerzy Kosinski is a twisted coming-of-age story that shows what happens when a child grows up knowing nothing but fear and hatred and chaos. There is a stark contrast between the straightforward first-person narrative style and the horrifying tales of chaos the narrator experiences.

It is a brutal story that left me shaken. It is powerful and it is a classic. But you need to brace yourself before reading it.


TheManWhoLovedChildrenChristina Stead's The Man Who Loved Children details an extremely toxic relationship.

Sam and Henny have been married long enough to have six children together; but they don't like each other and barely speak to one another. Worse, they spend much of their energy bad-mouthing one another to their children.

Henny is better and spiteful and filled with hate for just about everyone and everything.

Sam is arrogant and self-important and racist and misogynistic.

Neither is a good parent. Sam spoils his children and Henny neglects them. The eldest daughter Louisa gets the worst of it. Henny hates her because she is the product of Sam's first marriage (a woman adored by Sam who died shortly after childbirth) and Sam insults and publicly ridicules Louisa for her looks (Louisa is homely and overweight) and her ambition to become a writer.

Sam and Henny each try to play the innocent victim; but each is horrible: Sam because of his narcissism and need for control and Henny because of her melodrama and blatant meanness. Each is horrible because each tries to weaponize the children against the other, forcing them to take sides. Only Louisa recognizes this, which is why she is so unhappy.

Things get worse after Sam loses his job and the family is forced to move from Washington, DC to the slums of Baltimore, where Henny - once an industrialist heiress - borrows money from multiple lenders, with no intention of repaying these loans.

As the story wears on, Sam's habit of baby talking to his children becomes more and more annoying; and his overestimation of his own intelligence and morality wear thin. I never grew to like Henny, but I began to despise her less and to understand her descent into madness as the story revealed more of Sam's character.

For me, the story became real enough that it made me uneasy. Stead makes us uncomfortable to see the dark inside of this highly dysfunctional family. I liked the foreshadowing involving Louisa and a neighbor's cat. But I did not like the relationship. And I feared for the future of the children.


Walt Ritscher on Try .NET

Comments [0]

Episode 588

Walt Ritscher on Try .NET

Walt Ritscher describes Try .NET and how to use it to enhance your programming demos.


GCast 66:

Creating a Repo in Azure DevOps

How to create an Azure DevOps project and a code repo within that project.


Episode 587

Robert Green on Microsoft Graph

Robert Green describes how to use Microsoft Graph to query information from Microsoft directories and services.


November 2019 Gratitudes

Comments [0]

12/1
Today I am grateful for:
-Breakfast with old friends in Plymouth
-Watching my son coach his basketball team in Kalamazoo
-Watching the Spartan regular-season finale in East Lansing

11/30
Today I am grateful for dinner last night with a group of old friends from my college days.

11/29
Today I am grateful for a wonderful Thanksgiving dinner with my family yesterday.

11/28
Today I am grateful I was able to avoid the worst of the storms while driving across Illinois, Indiana, and Michigan yesterday.

11/27
Today I am grateful to Hattan for spending so much time teaching me about DevOps this month.

11/26
Today I am grateful for bike-riding weather in late November.

11/25
Today I am grateful for a weekend in Kalamazoo.

11/24
Today I am grateful to see my son's Kalamazoo College team defeat Case Western yesterday.

11/23
Today I am grateful for lunch yesterday with Kelly, Kara, and Elizabeth.

11/22
Today I am grateful for a tour of an airline's command center at the Dallas-Ft Worth airport yesterday.

11/21
Today I am grateful for dinner last night in Dallas with Jason, Tobiah, and Paris.

11/20
Today I am grateful for BBQ with Kendall last night in Dallas.

11/19
Today I am grateful for an electric blanket.

11/18
Today I am grateful for an amazing week in Tokyo.

11/17
Today I am grateful to visit the Yebisu Museum of Beer and the Tokyo Metropolitan Museum of Photography yesterday.

11/16
Today I am grateful for a visit to TeamLab Borderless Digital Art Museum yesterday.

11/15
Today I am grateful for:
-Lunch yesterday with Peter, who I haven't seen in over 30 years;
-A baseball game at the Tokyo Dome last night
-A walk around Yoyogi Park

11/14
Today I am grateful for:
-a visit to Meiji Jingu temple yesterday morning
-completing a successful OpenHack this week

11/13
Today I am grateful for a visit to Asakusa Temple yesterday.

11/12
Today I am grateful for Udon with new friends in Roppongi last night.

11/11
Today I am grateful for a walk around Hibiya Park in Tokyo yesterday.

11/10
Today I am grateful to arrive in Japan for the first time.

11/9
Today I am grateful for dinner last night with LaBrina and Becky.

11/8
Today I am grateful for a party last night at the Fisher Pavilion in Seattle.

11/7
Today I am grateful for dinner last night with the Diversity and Inclusion team.

11/6
Today I am grateful to spend yesterday writing code with colleagues.

11/5
Today I am grateful for a visit to the Museum of Flight in Seattle last night.

11/4
Today I am grateful for dinner with teammates in downtown Seattle last night.


Episode 586

Jim Wooley on Entity Framework Performance

Jim Wooley describes the newest features of Entity Framework and factors to consider when increasing performance.


Tokyo Drifting

Comments [1]

I had never been to Tokyo; I had never been to Japan; in fact, I had never been to Asia.

Until last week.

20191112_130029 1I was asked to work at an OpenHack in Tokyo, and I quickly agreed to an opportunity to visit this faraway place for the first time.

The OpenHack went well. Attendees learned how to work with data in the cloud and I served as a coach for a team of Japanese developers. It was a joy to work with other smart people and help people learn. I even had a chance to deliver two presentations to the attendees – one on Azure Data Factory and one on Azure DataBricks.

I was asked to buy coffee for the team as punishment for the two days I arrived late to our morning standup meeting (even though I was to blame for only one of those late arrivals)

IMG_6558The day prior to the OpenHack, we took a hike through nearby Hibiya Park, which featured two scenic ponds, a fountain, and colorful wildlife.

Until Thursday evening, I was mostly focused on the OpenHack. But I had all day Friday and Saturday (and parts of some other days) to explore this new city and I took advantage.

IMG_6501Tokyo is a large urban area with an enormous population, but there are many parks and natural areas within the city. My colleague Madhu talked me into waking up early Wednesday and Thursday morning to visit some shrines in the city before heading to work. It was completely worth it, even though we ended up buying coffee for the team.

Sensō-ji is a Buddhist temple near a market area in Asakusa. Outside the temple is an impressive garden with admirable landscaping and a stream flowing through it. 

Tokyo (3)Meiji Jingu is a shrine dedicated to the spirits of Emperor Meiji and Empress Shōken, who were instrumental in bringing Japan into the Industrial Age in the early 20th century. The shrine is in the center of a beautiful forest in the middle of Tokyo.

Tokyo (5)Friday afternoon, I met with my friend Peter. Peter and I went to college together and he moved to Japan about 30 years ago, so I had not seen him in decades. We met by the Shibuya Crossing - an intersection of 6 major roads that allows hundreds of pedestrians to cross in any direction simultaneously when the signal changes. Peter wanted to eat at his favourite nearby restaurant, so he took me to (wait for it) TGI Friday's! It wasn't much different than the American version, but it was good to spend time with Peter after all these years. After lunch, we took a walk around Yoyogi Park, which had some nice fountains and walking trails.

Tokyo (7)On Friday night, I attended a baseball game at the Tokyo Dome with three other coaches. South Korea easily defeated Mexico as part of the Global Baseball Battle, which featured the top 12 national teams. We sat in box seats down the left field line with the Mexican fans and pretended to be big fans ourselves.

Tokyo (6)We also went on one of the rides in the amusement park across the street.

Saturday, we went to the TeamLab Borderless - a multimedia museum that features animated projections on walls floors, and ceilings; along with physical objects, music, and uneven floors. It is very much a multi-sensory experience.

Tokyo (8)Saturday evening, I made my way to Akihabara, known as "Electric Town" because of all the electronics shops. I found a tiny hole-in-the-wall curry place and a Japanese comic book shop and walked through the neon jungle that is this neighborhood before I made my way back to my hotel.

Tokyo (9)My final day in Tokyo was a relaxing one. I went for a walk around the Ebiyu neighborhood where I was staying. I visited two nearby museums: The Museum of Yebisu Beer and the Tokyo Photographic Art Museum. There were no English language tours at the beer museum, so I walked around the open area and sampled one of their beers. At the Photographic museum, I saw works by this year's national award-winning photographers. I was surprised to notice that some videos were classified as "photography". I spent less than an hour at each museum before making the long trek to the Narito airport for my journey home.

Most people I encountered spoke very little English - this was fair, given that I know only a handful of Japanese words - but they were very friendly. One woman came running out of a coffee shop I had just exited to return a $5 bill I had dropped inside. Another man went inside a train station with us (costing him at least 100 Yen) to point the directions to the train we needed.

Tokyo is a surprisingly clean city, given its size and population density. One almost never sees litter on the ground, even though there aren't many trash cans. People simply don't drop trash on the ground.

This city is much more beautiful at night, when every building is illuminated, which contrasts dramatically with the plain colors of the daytime. The difference is like night and day.

Tokyo (4)Riding the subway during rush hour can be soul-crushing and body-crushing. People are packed so tight that I struggled to move my arms. During this time, I noticed the other riders seemed to put themselves in a trance - either buried in their cell phones or closing their eyes during the ride. Sometimes it was so crowded that it was impossible to reach or read one's cell phone. On one ride, the train broke down and did not move for 15 minutes; Yet no one complained or even moved.

And the service at my hotel (The Westin Tokyo) was excellent. One example: I regularly sleep with a CPAP machine and I have a pillow at home with a notch where the CPAP mask can rest undisturbed while I sleep. I brought the machine to Tokyo with me and left it by the bed. When I returned to my room in the evening, the hotel staff had provided a notched pillow for me.

Tokyo (2)I am grateful to Raj and Omkar and Lisa and Amanjeet and Lisa for spending time with me outside the OpenHack as we explored Tokyo together.

And I am grateful to Hattan for providing me with recommendations of things to do in Tokyo.

I hope it will not take me another 57 years to return. And I am happy to buy more coffee when I do.

Links

Meiji Jingu shrine

Sensō-ji Temple, Asakusa

Hibiya Park

Yoyogi Park

Baseball game

TeamLab Borderless

Akihabara

Museum of Yebisu Beer

Tokyo Photographic Art Museum

Shibuya Crossing


InfiniteJestInfinite Jest by David Foster Wallace takes place in the near future - mostly in and around Boston, MA.

Things are a bit different in the future.

Calendar years are no longer referred to by ordinal numbers; instead, the naming rights to each year is auctioned off to commercial products. Years now go by names such as "Year of the Perdue Wonderchicken", "The Year of the Trial Size Dove Bar", and "Year of the Tucks Medicated Pad". Most of the story takes place during the "The Year of the Depend Adult Undergarment".

After contaminating the entire northeastern part of the United States, the US has coerced Canada into annexing the polluted region and using it as an international toxic waste dump. This region is known as "The Great Concavity", probably because of its shape, but possibly because of the frequency of babies born missing a skull.

Canada, Mexico, and the US are now part of a larger nation, known as the Organization of North American Nations, aka "ONAN", which may or may not be a reference to the Bible's most famous masturbator.

The novel follows dozens of characters and multiple story lines. Some are in a private Massachusetts high school that focuses on educating elite tennis players; others are in a nearby drug and alcohol rehabilitation center; still others are involved in international intrigue, espionage, and terrorism.

There is no shortage of quirky characters in Wallace's novel. Most are neurotic and some border on psychotic. Characters are damaged in a variety of ways, from being abused as children to the suicide of loved ones to drug addiction. One beautiful girl had acid thrown in her face by her mother, who was aiming for her philandering father.

They all search for happiness, but not seem to find it.

It's a difficult book to follow for the following reasons

-It is extremely long, has many characters, and many subplots

-It contains hundreds of footnotes and some of the footnotes have footnotes

-It sometimes switches backward and forward in time and even to long descriptions of characters' dreams

Some of the storylines came together; but many did not (or, if they did, I didn't see it). And that frustrated me.

Having said that, I did enjoy Wallace's writing and the characters he created and the imagination he put into individual scenes. But I failed to see the overall arc of the novel.

I'm tempted to read this book again to catch what I missed, but the 1000+ pages makes that a daunting task.


<< Older Posts | Newer Posts >>