GCast 40: IoT Hubs

Comments [0]

GCast 40:

IoT Hubs

Azure IoT Hubs allow you to send and receive messages between devices all over the world and Azure.


Episode 554

Kevin Griffin on Whats New in SignalR

Kevin Griffin returns to the subject of SignalR, describing the advances in this push technology since we last spoke of it years ago.


NakedLunchNaked Lunch by William S. Burroughs is a difficult book to read and to understand. I'm still not sure I do.

The book consists of a series of descriptions of the visions seen while high on heroine, morphine, or some derivative thereof. Many of the visions consist of deviant sexual fantasies, including sadomasochistic scenarios so extreme that they lead to murder and suicide.

Burroughs was one of the most famous writers of the influential "Beat Generation", although he never approached the fame and success of his friends Allen Ginsberg and Jack Kerouac

Burroughs spent much of his adult life in a drugged-out haze and many of the visions told here are based on his own experiences. "Naked Lunch” written largely in a drug-induced haze, which may have increase Burroughs's creativity; but it clearly pushed him toward a very confused story.

Shortly after its publication, Naked Lunch was banned as pornography in Massachusetts.

I disagree with attempts to ban this book; but I fail to see its value as a classic. It is a non-linear narrative with no discernable plot or story. Apparently, several of the characters are the same character with different pseudonyms. But I don't know how anyone could figure that out without being told. As a result, it is far less compelling than other non-linear classics, such as Joseph Heller's excellent Catch-22.

I respect the fact that Burroughs pushed boundaries in the literary world and that he influenced other writers. The author sometimes captures the paranoia and other-worldliness of drug addiction. But Naked Lunch tries too hard to shock the reader. I can only take so much talk of vomit and jizz and people shitting themselves before it all sounds like rambling.

I will give the book the credit it deserves for one thing: The great rock/jazz band Steely Dan took their name from a brand of sex devices described in Naked Lunch.


OddAndTheFrostGiantsNeil Gaiman knows how to tell a story. And Odd and the Frost Giants is no exception.

Odd was a crippled Norse boy in the age of the Vikings. Odd's father was dead, and his mother had re-married a neglectful man. One day, Odd rescued a bear and was followed home by the beast, along with an eagle and a fox. The three creatures turned out to be the gods Thor, Odin, and Loki transformed by an evil frost giant and cast out of Asgard, as part of a plot to steal Thor's hammer Mjolnir and to kidnap the beautiful goddess Freya.

Odd and the trio set out for Asgard to rescue Mjolnir and Freya.

Undersized and weak, Odd proves more valuable than expected.

This is a short, but delightful book - not only for its story and its characters - but for Gaiman's prose. One can imagine him sitting around a campfire and relaying the tale to a circle of Vikings who listen in wonder. As a bonus, each chapter features a beautiful ink drawing by Brett Helquist. Readers of "A Series of Unfortunate Events" will know his work; but, in this book, each drawing has the look of a woodcut, giving it a distinctly Nordic feel.

Odd and the Frost Giants is targeted at school-age children, but I am well into my 50s and I enjoyed it.


IMG_3727Not only did I fail to see "Miss Saigon" in the 20 years since its premier in London's West End, I failed to learn anything about the show. I didn't know who wrote it, I haven't heard a song, and I did not know the plot. I didn't even know that it is an adaptation of Puccini’s "Madame Butterfly" opera.

That all changed Thursday night at the Wharton Enter in East Lansing, MI. My niece and I braved a hail storm and flooded streets to grab second-row tickets to see a touring company as it passed through mid-Michigan.

To spoil it for those of you who did as little research as I did: Miss Saigon tells the story of Chris, an American G.I., who falls in love with Kim, a young Vietnamese girl during the Vietnam War. When Saigon falls to the Viet Cong, Chris escapes, but Kim does not. It's a tragic story of war and lost love and what might have been.

The performance at Wharton was wonderful,

Emily Bautista and Anthony Festa moved our hearts as the star-crossed lover.

But the show was stolen by "The Engineer" - a sleazy night club / brothel host/manager, who manipulates Kim and other women, but somehow gains some sympathy from the audience. I believe Thursday night's performance featured understudy Eymard Cabling, rather than the regular Red Concepcion in this role. Regardless, he played the character flawlessly.

Another scene-stealer was the micro-urchin who played Kim's son Tam. He had no lines, but he overwhelmed us with is cuteness every time he stepped on stage.

I didn't hear any hit songs, but he music of "Miss Saigon" always satisfied. Song flowed into song so frequently that there were fewer opportunities to applaud than most shows afford. There were no low points in a lovely musical score, which was carried well by the cast.

The stage setting was very impressive for a small-city touring company. The highlight was a helicopter that loomed over the U.S. Consulate in Saigon to rescue the last of the refugees before the city's fall. One could almost smell the diesel coming off this impressive effect.

The final scene left the audience in tears.

Our attendance was a late decision, but this was an evening very well spent and one I will remember for a long time. It was well worth a trek through the hail and floods.


Azure Search REST API

Comments [0]

GCast 39:

Azure Search REST API

Azure Search allows you to make your internal data searchable in the same way that search engines like Google and Bing make public information on the Internet searchable.


Sometimes, I like to build fancy automations in Microsoft PowerPoint.

PowerPoint provides a simple way to animate objects on a slide. The steps are:
Select an object,
choose an animation
Set properties (e.g. timing) of that object

When a slide has a complex animations, you can end up with a lot of objects to manage. Sometimes those objects are stacked on top of one another, as shown in Fig. 1.

sp01-OverlappingShapes
Fig. 1

This makes it difficult to select the desired object. Further, if some shapes look alike, it's difficult to know which one to select.

PowerPoint provides a feature to help with this: The Selection Pane.

It's a good bet you've never used the Selection Pane, because it is not obvious where to find it.

To show this pane, select the Home ribbon (Fig. 2); then, select Select | Selection Pane, as shown in Fig. 3.

sp02-HomeRibbon
Fig. 2

sp03-SelectionPaneButton
Fig. 3

The Selection Pane displays, as shown in Fig. 4.

sp04-SelectionPane
Fig. 4

Each object on the current slide is listed. Notice that it each item is given a generic name, based on the type of shape.

You can rename any shape by double-clicking the shape name in the Selection Pane, typing in a new name, and pressing ENTER, as shown in Fig. 5 and Fig. 6.

sp05-RenameObject1
Fig. 5

sp06-RenameObject2
Fig. 6

Fig. 7 shows all the objects with more meaningful names. When I'm working with a complex slide, I like to rename each object to something to easily identify it.

sp07-RenameAllObjects
Fig. 7

Clicking the icon to the right of each object name allows you to toggle the visibility of that object. Hiding objects on top of and around an object can make it much easier to select and work on a given object. Fig. 8 shows the slide with every object hidden except the 2 circles.

sp08-HideObjects
Fig. 8

When you are finished working on objects, click the icon(s) again to reveal the hidden objects.

The PowerPoint Selection Pane is a little-used feature that can make it much easier to work with animations and complex slides in PowerPoint.


In a previous article, we saw how to create an Azure IoT Hub.    

In this article, we will show how to add devices to the IoT Hub.

When I first began working with IoT hub devices, I was confused by language that suggested I was "Adding" or "Creating" a device. What we are really doing is registering a device with the hub, so that a physical device of the same name can communicate with this hub. When you see words like "Add" and "Create", think of the fact that it is adding and creating the registration entry.

To begin, log into the Azure Portal and navigate to your IoT Hub, as shown in Fig. 1.

id01-IotHubOverviewBlade
Fig. 1

Click "IoT devices" to open the "IoT devices" blade, as shown in Fig. 2.

id02-IotDevicesBlade
Fig. 2

If this hub has any devices, you will see them listed. You can use the fields at the top to filter the list to more quickly find one or more devices.

To add a new device, click the [Add] button (Fig. 2) to display the "Create a device" blade, as shown in Fig. 3.

id03-AddDeviceButton
Fig. 3

id04-CreateADevice
Fig. 4

At the "Device ID", enter a name for this device. The name must be unique among this hub's devices.

At the "Authentication type", select the type of authentication you wish this device to use. If you select "Symmetric key", you have the option to enter your keys or allow the system to generate keys for you.

Click the [Save] button to create this device.

After a few seconds, the device is created and displays in the device list of the "IoT devices" blade, as shown in Fig. 5.

id05-IotDevicesBlade
Fig. 5

If you click on the device, you can see the "Device details" for this device, as showin in Fig. 6.

id06-DeviceDetails
Fig. 6

The connection string is required to target this specific device.

Now that you have a device registered, a device of that name can communicate with this hub.


Episode 554

Ondrej Balas on 2-Factor Authentication

Ondrej Balas discusses advances in 2-Factor Authentication and tells us how to add this security to our applications.


The Brodie Set were a group of six pre-teen girls at The Marcia Blaine School in Edenborough, who were completely devoted to their favourite Teacher - Miss Jean Brodie.

Miss Brodie was proud and eccentric. She refused to teach the defined curriculum - instead instructing girls on how to be proper young ladies or captivating them with tales of her travels and adventures. Miss Brodie believed she was in her prime and she let everyone know it. She would often brag "Give me a girl at an impressionable age and she is mine for life." "You girls are my vocation", she insists. "I am dedicated to you in my prime." This does not endear the teacher to the administration of this 1930s private school, who search for a reason to dismiss her.

The Prime of Miss Jean Brodie by Muriel Spark follows the girls throughout their school years, as they grow up under the influence of Miss Brodie, who takes them to museums and tea parties and to the homes of her friends. Brodie continues to be a strong influence on their lives, even after they graduate to the Senior school and she is no longer their teacher.

In some ways, Miss Brodie is a lovely person: She is bright and imaginative, passionate about art and music and history, and fiercely loyal to her girls. But in other ways, her flaws show through. She is an admirer of fascism in the years before World War II, showering compliments upon both Mussolini and Hitler.

Worst of all, she is manipulative of the girls she is mentoring. At one point, Brodie falls in love with a married teacher and, knowing she cannot have him, she conspires to have one of the girls sleep with him instead. She even makes sure another girl is with them to report back to Miss Brodie. The plan backfires when the art teacher begins an affair with the wrong girl.

The story often jumps ahead to the grown-up girls of the Set - sometimes by parenthetically revealing a bit about a girl's future ("Rose, who would later be famous for sex") and sometimes with an entire scene taking place among the older girls or with an aging Miss Brodie, who dies shortly after passing out of her "prime".
  Because of the flash-forwards, we know that Jenny will become a nun; that Mary will die young; that Rose will be famous for sex; and that Miss Brodie will be fired after being betrayed by one of her pupils. But the humor and intelligence of Spark's writing keeps the reader engaged until the end.

In fact, it is Spark's wit that kept me engaged throughout this short novel. She perfectly captures the eccentric schoolteacher and the teenage girls gossiping about school and sex and who they are and what they will become.

The Prime of Miss Jean Brodie is a short, but excellent novel about the effects - both positive and negative - that a strong role model can have on impressionable youth. It is told in a way to delight the reader.


Sometimes, the American dream is a reality. And sometimes, it is an illusion.

Seymour "Swede" Levov had the perfect life. He grew up tall and handsome and was the best athlete in Newark, New Jersey. After the war, Swede married Miss New Jersey, fathered a beautiful little girl, and began training to take over his father's glove factory. He was good at his job; his wife loved him; his daughter was perfect, except for a stuttering problem; he was successful at work.

Everybody body loved and admired Swede Levov.

Everybody envied Swede Levov.

But Swede's life was far from perfect.

"American Pastoral by Philip Roth tells Swede's story.

In high school, Swede's daughter Merry became involved in the anti-Vietnam War movement; and, at the age of 16, she blew up the local general store and Post Office, killing a local physician. She disappeared that day.

Too much came easy for Swede. His great skill was excelling at those things that were expected of him; and he spent most of his life trying to do just that: He worked hard, he was kind to others, he loved his wife and daughter. He even kept his Newark factory open after the city was racked by riots and crime increased and it became impossible to hire high-quality craftsman. It wasn't enough.

Swede's idyllic life was an illusion. His outward success is a façade, hiding the turmoil and tragedy that plagued him and his family.
 
Swede searches (mostly) in vain for his daughter. His efforts result in disappointment and exploitation. Even when he finds her, he gains no closure from the incident. Merry has moved from her life as a violent terrorist; but now embraces a self-destructive philosophy that leaves her sick and pathetic and still rejecting the morals of her father.

Swede almost deals with his weaknesses and the weaknesses of those closest to him with logic and hard work and perseverance.

It is never enough.

In the end, he beats himself up trying to decide who is to blame for Merry's fall. Did she fall because of some mistake he made as a parent? Was she seduced by a radical organization?

He never finds the answers.

I loved Roth's prose and the inner dialogue he gave to his main character and the outer dialogue between the characters. The sequences where Swede and his teenage daughter argue about her limits ring true to anyone who has raised intelligent and sometimes defiant teenagers.

Roth's story gripped me throughout. I felt Swede's helplessness; I felt the jealousy of his brother; I felt the frustration of Merry, who could not live up to her parents ideals and chose a path of self-destruction instead; I felt the disappointment of those who discovered he wasn't the hero they believed; I felt the victimization of Swede's wife, who was bullied by her father-in-law before their wedding; and I felt the collapse of the American dream.

At least, the dream of Swede Levov.


The Internet of Things, or IoT, allows you to capture data from devices across the planet and use the power of the cloud to store and manage that data.

Microsoft Azure offers IoT Hubs as a way to capture data from Internet-connected devices.

To create a new IoT hub, navigate to the Azure portal and log in.

Click the [Create a resource] button (Fig. 1) and select Internet of Things | IoT hub from the menu, as shown in Fig. 2.

ih01-CreateNew
Fig. 1

ih02-Menu
Fig. 2

The "IoT hub" blade displays, as shown in Fig. 3.

ih03-IoTBlade
Fig. 3

At the "Subscription" field, select the subscription in which you want to store this hub. Many of you will have only one subscription and it will already be selected.

At the "Resource Group" field, select a Resource Group in which to store this hub. You can create a new Resource Group by clicking the "Create new" link and entering a name for the new group, as shown in Fig. 4.

ih04-NewResourceGroup
Fig. 4

At the "Region" field, select the geographic region in which you want your hub to be located. Considerations include the location of the devices that will connect to this hub and the location other systems with which the hub will interact.

At the "IoT Hub Name" field, enter a unique name for this hub.

After you have completed the form, click the [Review + create] button. A summary page displays, as shown in Fig. 5.

ih05-iotHubConfirmation
Fig. 5

If any errors display, click the [Previous] button and correct them; Otherwise, click the [Create] button to create a new IoT Hub. It will take several minutes to deploy all the necessary resources and create this hub.

After the hub is created, you can navigate to it, as showing in Fig. 6.

ih06-IotHubOverviewBlade
Fig. 6

The "Overview" blade is selected by default and displays summary information about your hub, as well as links to documentation, so you can learn more about managing and working with this hub.

In this article, you learned how to create a new Azure IoT hub. A hub requires more configuration to be useful. We will cover this configuration in a future article.


GCast 38: Azure Search

Comments [0]

GCast 38:

Azure Search

Azure Search allows you to make your internal data searchable in the same way that search engines like Google and Bing make public information on the Internet searchable.


The Internet of Things (or IoT) has revolutionized the way we think of computing.

In the past, computers were self-contained, general purpose machines that could load complex operating systems, run multiple applications, and perform a wide variety of tasks. They could communicate with one another in order to either share data or distribute workloads.

Now, tiny computers can be found in a huge number of devices around one's home or workplace. When these devices are connected to the cloud, they become far more powerful because much of the processing and storage traditionally done on the computer is moved to the massively-scalable cloud.

At home, refrigerators, thermostats, and automobile contain computers that send and receive information, making them better able to adapt to the world around them.

Businesses take advantage of devices connected to manufacturing machines or vehicles or weather detectors to monitor local conditions and productivity. Capturing data from these devices allows them to respond to anomalies in the data that may indicate a need for action. Imagine a monitor on a factory floor that monitors the health of an assembly line and sends an alert to a repair team if the line breaks down. Or, better still, if the data indicates a strong probability it will break down soon. Imagine a shipping company being able to track the exact location and health of every one of their trucks and to re-route them as necessary.

Industries as disparate as transportation, clothing, farming, and healthcare have benefited from the IoT revolution.

Cloud tools, such as Microsoft Azure IoT Hub allow businesses to capture data from many devices, store that data, analyze, and route it to a particular location or application. As applications become more complex, cloud tools become both more powerful and simpler to create.

These tools offer things like real-time analytics, message routing, data storage, and automatic scalability.

This IoT revolution has enabled companies to capture huge amounts of data. Tools like Machine Learning allow these same companies to find patterns in that data to facilitate things like predictive analysis.

The cost of both hardware and cloud services has fallen dramatically, which has accelerated this trend.

The trend shows no signs of slowing and companies continue to think of new ways to connect devices to the cloud and use the data collected.

The next series of articles will explore how to process IoT data using the tools in Microsoft Azure.


HamiltonCombine a history lesson with great music, great dancing, and a very talented cast and you begin to understand "Hamilton". The extremely popular Broadway musical has been playing continuously at Chicago's CIBC Theater for over two years, and I finally saw a performance Sunday afternoon.

This hype for this show was considerable, but Sunday's performance was up to matching it.

The show's story focuses on the friendship and rivalry between Alexander Hamilton and Aaron Burr. Both were major figures in early American history. Hamilton was the first Secretary of the Treasury, who built the U.S. financial system. Burr was a Senator, a state Attorney General, a Vice President and (spoiler alert) the man who killed Hamilton in a duel.

Some actors got the day off for this matinee performance - most notably, JJ Jeter for Miguel Cervantes as Hamilton and Keith Webb for Akron Watson, but I would not have known I was seeing understudies without looking at the program. Jeter and Webb captured the spirit of their characters - Hamilton's idealism and Burr's ambition - perfectly.

A high point of the interpretation was the character of Thomas Jefferson, who was portrayed as a cocky Prince clone, returning from Paris to set the new country afire.

One of the most interesting aspect of the Hamilton musical is that nearly every major part is played by a person of color - African-American or Latinx. George III was the only speaking role is played by a Caucasian. Of course, the leaders of 18th century United States were almost all white. But this change works well and fits the music, features a lot of R&B and Hip-Hop influences.

I bought tickets to treat myself to a birthday present and I invited my son to join me. We both enjoyed it immensely. I would not be surprised to see this show run for another 2 years in Chicago.


Episode 553

Jennifer Marsman on AI for Earth

Jennifer Marsman describes how Microsoft's AI for Earth team is using data to make the world a better place.


February 2019 Gratitudes

Comments [0]

3/3
Today I am grateful that my shower is finally fixed.

3/2
Today I am grateful for the many kind words posted here yesterday.
   
3/1
Today I am grateful for another successful trip around the sun.

2/28
Today I am grateful for someone to recruit me personally and sincerely (even though I'm not going anywhere).

2/27
Today I am grateful to Tim for helping me connect my sound bar to my TV last night.

2/26
Today I am grateful for my personal trainer.

2/25
Today I am grateful for a Spartan victory over um in both men's and women's basketball yesterday.

2/24
Today I am grateful for my new living room furniture.

2/23
Today I am grateful to sleep in this morning.

2/22
Today I am grateful to live close to so many good restaurants.

2/21
Today I am grateful for the opportunity to mentor high school students on their STEM projects in southwest Chicago yesterday.

2/20
Today I am grateful for a hot bath on a cold afternoon.

2/19
Today I am grateful for cheeseburgers with Tim last night.

2/18
Today I am grateful to see bluesman Jimmy Johnson at The Lagunitas Tap Room last night.

2/17
Today I am grateful that I finally bought a new couch for my home to replace the beat-up old furniture I've been living with all these years.

2/16
Today I am grateful for a call from Kevin last night.

2/15
Today I am grateful to see a home Chicago State University basketball game last night for the first time.

2/14
Today I am grateful I finally got my broken Surface Book replaced.

2/13
Today I am grateful for a walk around central Ottawa with my team in last night's snowfall.

2/12
Today I am grateful for an unexpected jazz big band at dinner last night.

2/11
Today I am grateful to see an overtime Bruins-Avalanche game yesterday in Boston.

2/10
Today I am grateful for my first visit to Williamstown to see Nick this weekend.

2/9
Today I am grateful to attend my first home Williams College basketball game last night.

2/8
Today I am grateful to see an exciting Lakers-Celtics game on my first visit to TD Garden last night.

2/7
Today I am grateful for 3 consecutive days with my personal trainer.

2/6
Today I am grateful to see an exciting basketball game in Champaign last night.

2/5
Today I am grateful to the friend who reached out to me when he noticed I was down.

2/4
Today I am grateful for a chance to donate blood yesterday for the first time in years.


APassageToIndiaAziz was a doctor and a father and a widow living in central India during the time of British colonization.

He was friendly and open with the English people and become close with some of those visiting, including the elderly Mrs. Moore, Adela Quested, who was engaged to Mrs. Moore's son, and Cyril Fielding, who ran a nearby government college. One day, Aziz invited some of his new friends to explore nearby caves.

During their spelunking expedition, Adela and Aziz were separated. Adela became disoriented inside a cave and later accused Dr. Aziz of trying to rape her.

Aziz's guilt was assumed, and the trial began quickly.

In A Passage to India, E.M. Forster focuses more on his characters than on the action of those characters and the most interesting character in the novel is Dr. Aziz.

Falsely accused by one he trusted and to whom he showed kindness, Aziz re-evaluates his attitude toward the British colonizers.

The novel explores the difference between the cultures and the attitudes of the English and Indians. It shows the bigotry inherent in colonialism, particularly (but not solely) among the English. Sometimes that bigotry is explicit, as many English consider themselves superior to the Indians - or any darker race, for that matter. Sometimes, it is more subtle, as when the English authorities and population are more likely to believe the false accusations of Adela, even before the trial begins.

The book explores whether personal friendships can exist under the shadow of colonialism. Aziz's opinion on this subject changes, after he is falsely accused.

A Passage to India is a beautifully written novel that makes the reader feel for the characters and think about the relationship between people, countries, and races.


Azure Search allows you to create a service making your own data searchable, in much the same way that public search engines like Google and Bing make data on the Internet searchable.

In previous articles, I showed how to create an Azure Search Service; and how to import and index data in that service.

In this article, I will show how to use a REST API exposed by the Azure Search service to return indexed results, based on search criteria.

You can do some limited searching using the Azure portal. Navigate to the Azure portal and login; then, navigate to the Azure Search service, as shown in Fig. 1.

as01-OverviewBlade
Fig. 1

Click the [Search explorer] button (Fig. 2) to display the "Search explorer" blade, as shown in Fig. 3.

as02-SearchExplorerButton
Fig. 2

as03-SearchExplorerBlade
Fig. 3

At the "Query string" field, you can enter a search term and click the [Search] button to return all the data (in JSON format) that matches the search term in any field you marked "FILTERABLE" in your index. Clicking the [Search] button issues an HTTP GET against the Search service's REST API. The results are shown in Fig. 4.

as04-SearchExplorerResults
Fig. 4

You have more flexibility calling the REST API with a POST request. This is not possible through the portal; but you can use a tool like Postman to make these requests.

The URL to which you POST can be found on the Azure service's "Overview" tab, as shown in in Fig. 5.

as05-Url
Fig. 5

The URL takes the form:

https://.search.windows.net

where is the name you assigned to this service.

You will also need the Query key. You can find the Query key by opening the Azure Search service's "Keys" blade (Fig. 6) and clicking "Manage query keys" to display the "Manage query keys" blade, as shown in Fig. 7.

as06-KeysBlade
Fig. 6

as07-ManageQueryKeys
Fig. 7

To test POSTing to the REST API, open Postman and open a new tab, as shown in Fig. 8.

as08-Postman
Fig. 8

At the Verb dropdown, select "POST".

At the "Request URL" field, paste in the URL. This will be the URL copied from the "Overview" tab, followed by "/indexes//docs/search?api-version=2017-11-11

where is the name of the index you created in the Azure Search service.

This is shown in Fig. 9.

as09-PostmanParamsTab
Fig. 9

Select the "Headers" tab, as shown in Fig. 10.

as10-PostmanHeaderTab
Fig. 10

Enter the following 2 key/value pairs:

Key="api-key"; value=the Query key copied from the service.

Key="Content-Type"; value="application/json"

These are shown in Fig. 11.

as11-PostmanHeaderTab
Fig. 11

Select the "Body" tab to enter search parameters, as shown in Fig. 12.

as12-PostmanBodyTab
Fig. 12

The example shown
{
   "select": "*",
  "filter": "state eq 'IL'",
  "orderby": "presentationDate desc"
}

instructs the API to select all the fields' to filter the data, returning only those in which the "state" field equals "IL"; and sort the results in descending order by presentation date.

The results are shown in Fig. 13.

as13-PostmanResults
Fig. 13

In this article, you learned how to use the REST API to access an Azure Search service.

Click  the [Send] button to POST to the API.


GCast 37:

Managing Blobs with the Azure Storage Explorer

The Azure Storage Explorer is a free resource to manage Azure Storage Accounts.
This video shows how to manage Azure blobs with this tool.


Azure Search allows you to create a service making your own data searchable, in much the same way that public search engines like Google and Bing make data on the Internet searchable.

There are three steps to configuring Azure Search:

  1. Create Azure Search Service
  2. Create Index
  3. Import data

In a previous article, I showed how to create an Azure Search Service.

This article will show how to import data into Azure Search service; then index that data.

Navigate to the Azure portal and log in.

For this demo, I am indexing a Table in Azure storage containing information about my public speaking events, as shown in the Azure Data Explorer in Fig. 1.

as01-TableData
Fig. 1

Open your Azure Search Service, as shown in Fig. 2.

as02-OverviewBlade
Fig. 2

Click the [Import data] button (Fig. 3) to display the "Import data" blade, as shown in in Fig. 4.

as03-ImportDataButton
Fig. 3

as04-ImportDataBlade
Fig. 4

At the "Data Source" dropdown, select "Azure Table Storage", as shown in in Fig. 5.

as05-DataSourceTableStorage
Fig. 5

The "Connect your data" tab displays, as shown in Fig. 6.

as06-ConnectYourData
Fig. 6

At the "Name" field, enter a name for this data source.

At the "Connection string" field, click "Choose an existing connection" and select the storage account containing your data, as shown in Fig. 7.

as07-ChooseConnection
Fig. 7

At the "Table name" field, enter the name of the table containing your data.

Click the [Next] buttons at the bottom of the tab until you advance to the "Customize target index" tab, as shown in Fig. 8.

as08-CustomizeTargetIndex
Fig. 8

This tab displays all the fields in your data. Here you can select which fields can be retrieved, which can be filtered on, which can be sorted on, etc.

After making all your selections, click the [Next: Create an indexer] button at the bottom of the tab to advance to the "Create an indexer" tab, as shown in Fig. 9.

as09-CreateIndexer
Fig. 9

On this tab, you can configure how often your index will be updated from data changes. You can also decide whether to remove deleted items from your index (which will slow down indexing).

Click the [Submit] button to begin the first indexing and set the indexing schedule as configured.

A few minutes after the indexer runs, you should see the DOCUMENT COUNT and STORAGE SIZE values in the "Indexes" tab of the Search Service's "Overview" blade, as shown in Fig. 10.

as10-IndexesTab
Fig. 10

In this article, I showed how to import data into an Azure Search Service; then index that data.

In a future article, I will show how to call the search service.


Azure Search allows you to create a service making your own data searchable, in much the same way that public search engines like Google and Bing make data on the Internet searchable.

Before you can begin using Azure Search, you must perform the following actions:

  1. Create Azure Search Service
  2. Create Index
  3. Import data
  4. Index the data

This article will show how to create an Azure Search Service.

Navigate to the Azure portal and log in.

Click the [Create a Resource] button (Fig. 1) to display a list of Azure resource categories.

as01-CreateResourceButton
Fig. 1

At the Search box, enter "Azure Search" and press Enter, as shown in Fig. 2.

as02-SearchAzureSearch
Fig. 2

From the list of matching services, click on "Azure Search", as shown in Fig. 3.

as03-SelectAzureSearch
Fig. 3

A blade describing the features of Azure search displays, as shown in Fig. 4.

as03-SelectAzureSearch
Fig. 4

Click the [Create] button at the bottom of this blade.

The "New Search Service" blade displays, as shown in Fig. 5.

as04-CreateAzureSearch
Fig. 5

At the "URL" field, enter a unique name for this service. The service will expose a REST endpoint with the URL: https://xxxx.search.windows.net, where xxxx is the name you enter here.

At the "Subscription" dropdown, select the Subscription in which you want to store this service.

At the "Resource group" dropdown, select the resource group in which to store this service or click the "Create new" link to add a new resource group, as shown in Fig. 6.

as06-NewResourceGroup
Fig. 6

At the "Location" dropdown, select the region in which you want to store this service. The region should be near the users of the service or near the data you intend to index.

At the "Pricing tier" field, select an appropriate pricing tier. Clicking this field expands the "Choose your pricing tier" blade (Fig. 7), which displays the approximately monthly cost and the features of each tier.

as07-PricingTier
Fig. 7

When you have completed all the fields in the "New Search Service" blade, click the [Create] button to create the service.

When the service is created, you can navigate to it, as shown in Fig. 8.

as08-OverviewBlade
Fig. 8

This article showed how to create a new Azure Search Service. In the next article, we will create an Index for this service.


Episode 552

Hilary Weaver-Robb on Front-End and UI Testing

"QA and Testers are the glue that holds teams together." Hilary Weaver-Robb describes how her team approaches software testing, how testers and developers work together toward the same goal, and some of the tools she uses.


InvisibleManThe unnamed African-American narrator of Invisible Man by Ralph Ellison recounts his life, growing up in the south; attending, then being expelled from a traditionally black college; emigrating to Harlem and taking up a group calling themselves "The Brotherhood", from which he ultimately separates. He does his best to assimilate with those he meets, repeatedly ceding his own ideas and identity; but it ends up for naught as he becomes more and more "invisible".

After discovering the narrator rescuing an evicted tenant from an angry mob, The Brotherhood recognizes his talent for persuasive speech and for mobilizing a crowd and he soon becomes the voice of this organization in Harlem. We are never given a clear picture of what The Brotherhood stands for. They support vague statements, such as "equality" and "the woman issue", but we know nothing of their details for achieving these goals. They may represent the Communist party, with which Ellison had a brief relationship. But they consolidate their power by manipulating others, including the black community of Harlem. When it suits their needs, they turn on the narrator and reverse their commitment to the local black community.

The Narrator loses ground every time he tries to assert his own opinions and his own characters. This leads him to label himself "invisible".  He is punished every time he asserts himself. When he acquiesces to those around him, he achieves temporary success, but he cannot maintain this success, as those in power shift their goals and expectations.

The book is filled with bizarre scenes that sometimes give it a surreal feeling. In one scene, a poor black farmer recounts in embarrassing detail how he came to impregnate his own daughter. In another scene, the narrator is forced to fight blindfolded against dozens of other black men to entertain a white audience, as a prerequisite to earning a college scholarship.

But Invisible Man is also filled with a very real, very poignant story about a young man trying to achieve success. He is thwarted because of the color of his skin; but also, because the system is stacked against anyone who tries to follow their own path.

He summarizes his position, as follows:
"I was pulled this way and that for longer than I can remember. And my problem was that I always tried to go in everyone's way but my own. I have also been called one thing and then another while no one really wished to hear what I called myself. So, after years of trying to adopt the opinions of others I finally rebelled. I am an invisible man."

To some extent, we all face a battle between success and invisibility; balancing our own goals with the goals of society. It is hard enough for those born into a position of privilege. But even harder for a black man living in 20th century America.


GCast 36:

Managing Tables with the Azure Storage Explorer

The Azure Storage Explorer is a free resource to manage Azure Storage Accounts.
This video shows how to manage Azure tables with this tool.


Episode 551

Jeremy Miller on Automated Testing in .NET Core

Jeremy Miller describes how testing ASP.NET applications is simpler with ASP.NET Core. He discusses the modularity of .NET, the lack of dependencies on IIS, and his open source testing project Alba.


"Atonement" by Ian McEwan

Comments [0]

AtonementCecilia Tallis and her Robbie Turner were making love in the Tallis family home when Cecilia's 13-year-old sister Briony saw them. Later, Briony witnessed the rape of her cousin in the darkness outside their home.

Despite getting no good look at the rapist, Briony's overactive imagination and her desire for attention lead her to wrongly accuse Robbie, sending him to prison.

This is the setup of Atonement by Ian McEwan.

It is the story of an aristocratic English family torn apart by a scandal and lives ruined by a lie and the lifetime of guilt that comes with the telling of the lie.

The book follows the 3 main characters at various points in their lives, following the initial scandal. World War II breaks out and Robbie enlists in the infantry after he is released from prison, while Briony and Cecilia work as nurses. McEwan gives us a look inside their heads (particularly Robbie and Briony) and how the incident affected them. The images of the war in Europe and the hospitals in England are particularly intense.

A final chapter takes place decades later with an aging Briony returning to the family home. Here we learn that the story is even more tragic than we originally believed.

The atonement itself is less satisfying than most readers will hope for. But Atonement the novel is a very good story of psychology and pain and guilt.



GCast 35:

Customizing Microsoft Teams

Microsoft Teams is a set of tools that help users collaborate with one another. Learn how to create a new Team, add a Channel to an existing team, and add a Tab to an existing Channel.


Episode 550

Cassandra Faris on Personal Branding

Cassandra Faris talks about her involvement with the developer community and how she has managed her personal brand.


GoTellItOnTheMountainSet against the backdrop of black families and churches in Harlem and in the American southeast during the Great Depression, Go Tell It on The Mountain by James Baldwin takes us through the struggles of a family dealing with God, religion, and temptation, sin, guilt, and redemption.

The story begins ends with John Grimes on his 14th birthday. John is troubled by his relationship with God, which is negatively affected by John's poor relationship with his unloving stepfather - an evangelical preacher at a Harlem storefront church.

But most of the book's stories are told in flashbacks: We learn of John's birth father, who was arrested and beaten by police because he was a black man walking around the city at night; We learn of John's aunt, who left home because her mother reserved her love for another child; and we learn of John's stepfather Gabriel.

Gabriel grew up a wild youth in the south. After years of rejecting God, Gabriel is saved and decides to become a preacher. His idealism helps him, but his weaknesses hinder him. Desperately desiring a son, Gabriel is frustrated at his wife's inability to conceive. He meets Esther at church, who flirts with him. A brief extramarital affair with Esther results in a bastard son, which Gabriel tries to cover up by stealing his wife's money and sending Esther out of town, thus compounding his sin. Like nearly all of us, Gabriel falls short of what he seeks to become; but his greatest weakness is his inability to accept personal responsibility for his mistakes. Consistently, he blames others for his own failings. This hypocrisy hinders his desire for forgiveness - from himself, from others, and from God. As he grows older, Gabriel becomes more bitter and unloving.

The most powerful scene of the novel is when Gabriel finally confesses his illegitimate son Royal to his wife Deborah after learning that the teenage boy has been murdered. Royal never knew his father, but Deborah knew all along. Deborah does not chastise Gabriel for his infidelity; instead, she chastises him for not helping Esther when she needed his aid and for not taking in his infant son after Esther's death and for not accepting the gift that God gave him.

The language of Mountain poetic, mixing references from Gospel hymns and the King James Bible. It is a beautiful story that is well told, even though it describes many ugly things.

Hours after finishing it, I was haunted by the characters and their actions and the circumstances that shaped them.


GCast 34:

Exposing Local Web Apps with ngrok

Learn how to speed up development and testing by using ngrok to expose to the public Internet web applications running on your local machine.


StrideTowardFreedomIn 1954, 25-year-old Dr. Martin Luther King, Jr. moved to Montgomery, AL to lead a small Baptist Church. Alabama of the 1950s was known for embracing "Jim Crow Laws" - which enforced racial segregation by bogusly claiming "separate but equal" services.  Among these laws were rules giving preference to white passengers on public buses.

In 1955, King helped organize a boycott of the Montgomery bus system after Rosa Parks was arrested for refusing to give up her seat for a white passenger. The protest lasted for over a year and ultimately resulted in the U.S. Supreme Court ruling that the segregation laws of Montgomery were unconstitutional.

Stride Toward Freedom: The Montgomery Story, Dr. King gives his firsthand account of the historic boycott. It is a moving story of strength and prejudice and perseverance and hatred and solidarity and bigotry.

The white establishment in Montgomery fought to end the boycott and to defend their segregationist laws. The protest was noted for embracing King's philosophy of Non-Violent Resistance, encouraging local blacks not to respond to white violence and threats of violence with violent acts of their own.

In between King's narrative, he describes how he came to his Non-Violent Protest philosophy, what it means, and how it could be effective. King embraced similar philosophies promoted by Jesus Christ and Mahatma Gandhi.

Ultimately, the Montgomery boycott was successful because of the U.S. court system, which took a position based more on fairness and constitionality than on maintaining the status quo.

King concludes this book by taking stock of where the country was regarding race equality following the events in Montgomery. He notes that equality is a national - not a regional - issue and he calls out many who were not doing enough, including the President, Congress, and people in both the North and the South.

I was struck by how little the boycott organizers demanded from the city (they did not ask to end segregation) and how forcefully the local police harassed the protestors (volunteer cab drivers were detained and those waiting for rides were arrested for loitering). It is unlikely that change would have taken place in Montgomery without the intervention of the Supreme Court.

Stride Toward Freedom is an excellent history of one of the most significant events of the U.S. civil rights movement. But it is also an inspirational story of what a small group of very determined people can do to change the world when they know they are right.

The United States has made progress since 1954. But we still see the ugly specters of racism and bigotry today.


Jennifer Wadella on Gatsby

Comments [0]

Episode 548

Jennifer Wadella on Gatsby

Jennifer Wadella describes how to use the Gatsby tool to quickly create static web sites.

Links
https://www.gatsbyjs.org/

January 2019 Gratitudes

Comments [0]

Today I am grateful that United Airlines found and returned my lost Kindle.

2/3
Today I am grateful that the worst of the polar vortex weather is behind us.

2/2
Today I am grateful to see Wanda Sykes in concert last night.

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

1/31
Today I am grateful that United Airlines found and returned my lost Kindle.

1/30
Today I am grateful for my new electric blanket, which arrived just in time for this polar vortex.

1/29
Today I am grateful for a week in London.

1/28
Today I am grateful for sightseeing in London yesterday with Brent, David, and Michael, including:
-a trip to the top of The Shard
-a visit to the Churchill Museum and War Room
-a cruise along the Thames
-a quest for Sunday roast!

1/27
Today I am grateful for a much-need 11 hours of sleep last night.

1/26
Today I am grateful for lunch with Andy yesterday.

1/25
Today I am grateful for everyone who helped make yesterday's meeting a success.

1/24
Today I am grateful:
-to visit St. Paul cathedral yesterday afternoon with Brent, David, and Michael
-to see my first play in London's famous West End theatre district with Jonathan.

1/23
Today I am grateful that the winter storms in Chicago last night did not cancel my transatlantic flight.

1/22
Today I am grateful for an extra blanket last night.

1/21
Today I am grateful to watch football with Tim yesterday.

1/20
Today I am grateful for the excitement of college basketball.

1/19
Today I am grateful for my new Kindle Oasis.

1/18
Today I am grateful for the ability to connect with people through social media when I cannot connect with them in person.

1/17
Today I am grateful for Thai food with Dan yesterday.

1/16
Today I am grateful for dinner last night with Timothy and Sanjeev.

1/15
Today I am grateful to visit Ottawa, ON for the first time in 12 years.

1/14
Today I am grateful for a gym in my building.

1/13
Today I am grateful to watch yesterday's snowstorm through my window from a warm living room.

1/12
Today I am grateful to all the volunteers who continue to make CodeMash a great conference year after year.

1/11
Today I am grateful for the generosity of Brian and Jonathan.

1/10
Today I am grateful to see so many old friends this week.

1/9
Today I am grateful to learn how to play Hanabi last night.

1/8
Today I am grateful for:
-A return to my old user group
-Driving to Sandusky last night with Jonathan and Jennifer

1/7
Today I am grateful to Ondrej and Desislava for their hospitality.


London Calling Me Back

Comments [0]

 IMG_3448_edited-1It took me over half a century to make my first visit to London. It took about two months for me to return.

I scheduled this trip to meet with a partner and help them design software for their educational software and to meet with UK teachers to get their input. After making these plans, I learned that a colleague was hosting a Hackfest for one of his customers; so, I was also able to serve as a mentor at that event while I was in London.

1 trip: 2 projects for 2 customers. Sounds like a win!

IMG_3391_edited-1I arrived at Heathrow Wednesday morning and rode the Heathrow Express high-speed train into London with my friend Michael. Michael invited me to go sightseeing with Brent and David later that afternoon. I accepted, even though it conflicted with my initial plan to sleep most of the day. After a brief nap and email catch-up, the four of us visited the Sky Garden observation deck over central London and St. Paul Anglican Cathedral. St. Paul is a beautiful house of worship and I was nearly wiped out after climbing over 500 steps to the top of the dome.

IMG_3405_edited-1After St. Paul, I said goodbye to Michael, Brent, and David and met my friend Jon for dinner at an excellent Italian Tapas restaurant (I didn't even know Italian Tapas was a thing), where we shared a variety of regional dishes. After dinner, Jon and I walked to the Duchess Theatre to see "The Play That Goes Wrong" - a hilarious farce about an incompetent theater company with very bad luck. It was my first time seeing a show in London's famous West End - an area comparable to New York's Broadway - and I was fortunate to secure front-row tickets.

Thursday was my first client meeting, which lasted most of the day. We did not accomplish everything we intended, but we got a lot done in the 5-hour design session. Thursday evening, I invited Frances, the Partner Manager to join Michael, Brent, David, and I for a dinner of fish and chips.

Friday and Saturday, I attended the Hackfest, where I served as a mentor, assisting customers in building IoT and ML projects. It was a juried event, with prizes awarded to the teams with the best hacks. The Hackfest began on Thursday, so I was a day late getting started, but I was happy to see that, when prizes were announced, the two teams I assisted the most finished in First and Second place.

IMG_3363_edited-1Sunday was a free day and the Brent, Michael, David, and I took advantage by experiencing London as typical foreign tourists. We began at The Shard, a building named for its unique shape. The Shard offers the highest observation deck in London and spectacular views of the city. From the Shard, we walked across Tower Bridge to the Tower of London. We had heard that Sunday Roast was a British tradition, so we set out on a long and ultimately successful quest that led us to 4 different restaurants before we found our goal. After filling our bellies, we visited the Churchill War Rooms. This is where Prime Minister Winston Churchill and his staff planned their World War II military strategy beneath a government building as the Germans bombed London above. The large space included reconstructions of the strategy rooms, an audio tour, and a museum dedicated to the life of Churchill. After sunset, we then took a cruise along the Thames, which offered beautiful - but chilly - views of the city. We finished the long day with a late dinner before I took a train to my hotel and passed out from exhaustion.

IMG_9831My homebound flight was scheduled Monday afternoon, so I took an hour before heading to the airport to visit the Sherlock Holmes Museum, located at 221B Baker Street, the boarding house where Arthur Conan Doyle's fictional detective and his partner Watson lived, while solving cases.

It's rare that I'm able to pack so much into a work trip, but I was assisted by the planning that others did in advance. I feel that I have a much better feel for London than after my first visit. I've already made a list of things to see on visit #3.


I've been posting updates to Facebook for over 10 years now. Sometimes, I want to find one or more old posts. There are several ways to view your posts.

Timeline

The simplest way to view your information is on your profile page. You can access your profile page by clicking on your name to the right of the SEARCH box or below the SEARCH box on the Facebook home page. These 2 buttons are circled in red in Fig. 1.

dfb01-FacebookHome
Fig. 1

The profile page is shown in Fig. 2. By default, this shows the "Timeline" tab in the List view.

dfb02-TimelineListView
Fig. 2

If the "Timeline" tab is not selected, you can select the "Timeline" link near the top of the page. Hover over this link to select either the List View or the Grid View from the dropdown menu, as shown in Fig. 3.

dfb03-TimeLineButton
Fig. 3

The Grid view is shown in Fig. 4.

dfb04-GridView
Fig. 4

View or download data

You can also view or download posts from the Settings page. Access the Settings page by selecting "Settings" from the dropdown menu at the top right of the main Facebook page (Fig. 5) or by selecting "Timeline settings" from the […] button at the top right of your profile page (Fig. 6).

dfb05-Settings1
Fig. 5

dfb06-Settings2
Fig. 6

To view or download your posts, select "Your Facebook Information" from the right menu of the Settings page, as shown in Fig. 7.

dfb07-YourFacebookInfo
Fig. 7

View Posts

To view your information, click the "View" link next to "Access your information", as shown in Fig. 8.

dfb08-AccessView
Fig. 8

The "Access your information" page displays, as shown in Fig. 9.

dfb09-AccessYourInformationPage
Fig. 9

Click "Posts" to expand the "Posts" tab, as shown in Fig. 10.

dfb10-Posts
Fig. 10

The Posts page displays, as shown in Fig. 11.

dfb11-PostsPage
Fig. 11

You can quickly filter these by the criteria on the left or by the year on the right. You can also type in the "Activity Search" box to search for posts containing specific text.

Download Info

To download your Facebook data, return to the "Your Facebook Information" settings page (Fig. 7) and click "Download your information" to display the "Download Your Information" page, as shown in Fig. 12.

dfb12-DownloadYourInformation
Fig. 12

You have the option to download any or all your information by checking and unchecking the checkboxes. You can also use the dropdowns at the top to filter by date range, select an output type, and specify the quality of images you want to download.

If you only want to download your posts, click "Deselect All" and check only the "Posts" checkbox; then click the [Create File] button.

You will receive an email when the file is ready. Click the link in the email, enter your Facebook password and download the file, which is a ZIP archive containing all the data you requested.

Conclusion

The steps above show 3 ways to view or download your Facebook posts. I use  the download option each month when I create a list of all my Gratitude posts, because it makes it easy to find all the month's posts in a single file.


GCast 33:

An Introduction to Power BI

Power BI is a tool that allows you to create visualizations from a variety of data sources. This video shows how to get started with this tool.


ADeathInTheFamilyIt was years ago, but I still remember waking up to the phone, telling me about my sister's collapse. I drove across town to see her, but she was brain-dead by the time I arrived at the hospital, and her heart stopped beating within minutes of taking her off the machines that kept her organs functioning for 24 hours.

I remember the pain and the guilt and the anger and the confusion. I didn't know for what I was feeling guilty or at whom to direct my anger, but I felt it all.

James Agee captures these emotions beautifully in his powerful novel A Death in the Family - the story of a family dealing with the sudden and unexpected death of a father / husband / brother / son, who is killed instantly in an automobile accident, while returning from a visit to his own ill father.

Agee takes us back to the family before the death - showing us both the mundane and the memorable.

He takes us through the painful uncertainty experienced by the family, after they know of the accident, but before they know whether he survived.

He takes us through the heartbreaking trial of telling his children their father will never come home again.

He takes us through the pain and the anger and the guilt and the denial of dealing with unexpected loss.

He takes us along the dynamics of the family as they try to support one another and the helplessness of knowing that, in many ways, they cannot.

He takes us into the minds of all the survivors in the family and it rings very true to those of us who have lost a loved one - either suddenly or slowly over time.

A Death in the Family is light on plot, but heavy on emotions. Events just happen and Agee dives deep into the thoughts and emotions of the survivors. It rang true for me and brought back memories of my own lost family members.


ConfessionsOfNatTurnerSometimes a novel with very few facts can contain a lot of truth.

The Confessions of Nat Turner by William Styron was written in 1967 and was inspired by a slave rebellion 136 years earlier.

In August `1831, Virginia slave Nat Turner led a rebellion that killed 55 white people in southeast Virginia. Turner, was captured, confessed to the crime, and was executed. He claimed that he did what he did because he was directed by God.

Almost nothing is known about Turner, other than the documents pertaining to his arrest and trial. So, Styron attempts to recreate his life - not by researching historic records and biographies - but by hypothesizing how an educated black slave could come to lead such a rebellion. The result is far from accurate in a personal sense, but very real in relating the conditions of slavery and the relationships between slaves and masters in the antebellum U.S. south.

Very little in The Confessions of Nat Turner is true. Styron takes liberties with the day-to-day activities and with Turner's thoughts. But it rings true, because so many of Nat's reactions spring logically from a lifetime of being treated as property.

The hypothetical Nat of the novel is originally owned by a man who treats his slaves better than most slaveowners do. He believes in the potential of blacks, ensures that Nat receives and education, and even makes plans for Nat to serve an apprenticeship in Richmond and ultimately earn his freedom. But these plans of freedom are abandoned when a failing economy forces the owner to sell off some of his slaves, including Nat. This broken promise underscores the unfairness inherent in the institution of slavery. An owner may speak to his slaves with respect and refuse to beat them; but, ultimately, a slave was a possession the owner may do with what he wishes with that possession. Virginia law fully supported this inequity.

Nat passes to several more masters - some more cruel and some less so. Overall, his life is better than most American slaves of the time, but he has lost the hope of freedom that was promised to him, and he is left facing a lifetime of servitude. Nat's strong faith in God helps to sustain him, so he begins to preach to other blacks in the area and soon gains a following. When he is finally inspired to emancipate his fellow slaves, he enlists this following to help him execute his plan.

Some critics claim that Styron's skin color prohibits him from making any assumptions or writing about a black slave - particularly writing in the first person, as he does in this novel. But Styron does a good job of humanizing the mysterious Turner and of shining a light on the dehumanizing institution of slavery.


Jon Skeet on Versioning

Comments [0]

Episode 547

Jon Skeet on Versioning

Versioning is more complex than most people believe. Jon Skeet describes the issues and how we can deal with the complexities to keep software libraries from breaking client applications.


Microsoft Teams is a tool for communication and collaboration that is included in Office 365.

Fig. 1 shows the Microsoft Teams interface (with my organization's Teams, channel's and conversations covered up).

at01-MSTeams
Fig. 1

Fig. 2 shows the list of tabs at the top of a channel.

at02-TabsList
Fig. 2

Click the [+] button to add display the "Add a tab" dialog, as shown in Fig. 3.

at03-AddaTab
Fig. 3

The "Add a Tab" dialog lists templates available on which to base your new tab. Click the "Website" button (Fig. 4) in this dialog. To find this button more easily, you can filter this list by typing "Website" in the "Search" textbox.

aw04-WebsiteButton
Fig. 4

The "Website" dialog displays, as shown in Fig. 5.

aw05-WebsiteDialog
Fig. 5

At the "Tab name" field, enter a name to display in the tab list, identifying this tab.

At the URL field, enter a URL accessible by team members. This can be external or internal; but it must be an SSL site, so it must begin with "https://".

If you check the "Post to the channel about this tab", a message will be added to the "Conversations" tab with a link to the new tab.

Fig. 6 shows a new tab with the https://microsoft.com site displayed.

aw06-WebsiteTab
Fig. 6

Fig. 7 shows the link in the "Conversations" tab. Users can click the link to navigate to the new tab.

aw07-PostedToChannel
Fig. 7

You have now learned to add a new tab pointing to web site. The real power of this is if you create and deploy a custom site that adds functionality useful to your team members and publishing that site on the Internet or your corporate Intranet, where users can access it through Teams.

If your organization uses Office 365, it is likely that you have access to Microsoft teams. If you do not, call your organization's IT department and ask them: "What's the problem?"


Microsoft Teams is a tool for communication and collaboration that is included in Office 365.

Among other features, it allows team members to share and collaborate on files with one another.

Fig. 1 shows the Microsoft Teams interface (with my organization's Teams, channel's and conversations covered up).

at01-MSTeams
Fig. 1

The "Files" tab is a space for Team members to upload, download and share files with other members. If files exist in the Files tab, you can create a tab displaying one of those files for easy access, editing, and collaboration.

Fig. 2 shows the list of tabs at the top of a channel.

at02-TabsList
Fig. 2

Click the [+] button to add display the "Add a tab" dialog, as shown in Fig. 3.

at03-AddaTab
Fig. 3

The "Add a Tab" dialog lists templates available on which to base your new tab. You can filter this list by typing in the "Search" textbox, as shown in Fig. 4.

at04-Filter
Fig. 4

Fig. 5 shows the dialog if you select "Excel" as the template.

at05-Excel
Fig. 5

Excel files in this channel are listed. Select the file you want; then click the [Select] button to create the new tab. If you check the "Post to the channel about this tab", a message will be added to the "Conversations" tab with a link to the new tab.

Fig. 6 shows a new tab pointing to an Excel spreadsheet in the channel's files.

at06-ExcelTab
Fig. 6

Fig. 7 shows the link in the "Conversations" tab. Users can click the link to navigate to the new tab.

at07-PostedToChannel
Fig. 7

Users can click the [Edit] button to quickly make changes to this file. When editing, there is no need to save, as changes are auto-saved.

You have now learned to add a new tab pointing to an Excel file. The process is similar for adding other types of tabs.

If your organization uses Office 365, it is likely that you have access to Microsoft teams. If you do not, call your organization's IT department and ask them: "What's the problem?"


Microsoft Teams is a tool for communication and collaboration that is included in Office 365.

Among other features, it allows team members to share and collaborate on files with one another.

Fig. 1 shows the Microsoft Teams interface (with my organization's Teams, channel's and conversations covered up).

af01-MSTeams
Fig. 1

By default, each channel has a "Files" tab, as shown in Fig. 2.

af02-FilesTab
Fig. 2

The "Files" tab is a space for Team members to upload, download and share files with other members.

You have the ability to upload a file to this tab or to create a new file directly in this interface.

Create a New File

To create a new file, click the [New] button and select the type of file from the dropdown menu, as shown in Fig. 3.

af03-AddFile
Fig. 3

At the next dialog, enter a name for your file, as shown in Fig. 4.

af04-Create
Fig. 4

The file is created and displays within the tab. Fig. 5 shows an Excel file. Note that changes to the file are automatically saved. There is no reason to click a [Save] button.

af05-EditFile
Fig. 5

Upload an Existing File

To upload a file, click  the [Upload] button; then navigate to a file on your local system and select the file you want to upload, as swoon in Fig. 6.

af06-UploadFile
Fig. 6

If your organization uses Office 365, it is likely that you have access to Microsoft teams. If you do not, call your organization's IT department and ask them: "What's the problem?"


GCast 32:

Handwriting OCR with Cognitive Services

See how to perform OCR on images with handwritten text, using Microsoft Cognitive Services. I walk through the API and show sample JavaScript code.


Microsoft Teams is a tool for communication and collaboration that is included in Office 365.

Each team can have multiple channels. See this article to learn how to create a new team. By default, a team contains a "General" channel, but you can add more.

Fig. 1 shows the Microsoft Teams interface (with my organization's Teams, channel's and conversations covered up).

ac01-MSTeams
Fig. 1

To create a new channel, select the team in which you want to create a channel, as shown in Fig. 2.

ac02-TeamMenu
Fig. 2

Then click the […] button and select "Add channel" from the popup menu, as shown in Fig. 3.

ac03-ChannelMenu
Fig. 3

The "Create a channel" dialog displays, as shown in Fig. 4.

ac04-AddChannelDialog
Fig. 4

At the "Channel name" field, enter a name for the channel you wish to create. 

At the "Description", enter a brief description of this channel, if you wish.

If you check the "Automatically favorite this channel for the whole team" checkbox, the new channel will appear in the Favorites list of every member of this team.

Click the [Add] button to add the channel. The Channel will now appear below the Team in the side menu, as shown in Fig. 5, and be available for any member of this team.

ac05-NewChannelDisplays
Fig. 5

Congratulations! You have just added a new channel to an existing team.

If your organization uses Office 365, it is likely that you have access to Microsoft teams. If you do not, call your organization's IT department and ask them: "What's the problem?"


Microsoft Teams is a tool for communication and collaboration that is included in Office 365.

You can create multiple teams in the Microsoft Teams software. My organization creates a team for broad interest groups, like "Social" and for each new project. How you organize your teams is up to you and your organization, but here is how to create a new Team.

Launch the Microsoft Teams client.

Fig. 1 shows the Microsoft Teams interface (with my organization's Teams, channel's and conversations covered up).

nt01-MSTeams
Fig. 1

A menu (Fig. 2) displays along the left side of the screen.

nt01-Menu
Fig. 2

Click the [Teams] button (Fig. 3) on the menu to display a list of all the teams in your Favorites list.

nt02-TeamsButton
Fig. 3

Click the [Join or create a team] button (Fig. 4) at the bottom of the screen to display the "Join or create a team" page, as shown in Fig. 5.

nt03-CreateOrJoinTeamButton
Fig. 4

nt04-JoinOrCreateTeamPage
Fig. 5

Click the [Create a team] button (Fig. 6) to display the "Create your team" dialog, as shown in Fig. 7.

nt05-CreateATeamButon
Fig. 6

nt06-CreateYourTeamDialog
Fig. 7

At the "Team name" field, enter the name of your new team.

At the "Description" field, enter a brief description of your team.

At the "Privacy" dropdown, select "Private" to allow only Team Owners to add new members; or "Public" to allow any member to add new members to the team.

Click the [Next] button to advance to the "Add members to team" dialog, as shown in Fig. 8.

nt07-AddMembers
Fig. 8

Here, you can search for people in your organization and add them to the team by clicking the [Add] button. Click the [Skip] button to defer this until later.

The new Team page displays and is selected on the left, along with a default "General" channel, as shown in Fig. 9.

nt08-TeamAndChannel
Fig. 9

The "General" channel is shown in Fig. 10.

nt09-ChannelPage
Fig. 10

Team members can communicate in threaded conversations on the "Conversations" tab, which is selected by default.

Team members can upload files to share them with others on the "Files" tab.

Team members can enter notes on the "Wiki" tab.

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

If your organization uses Office 365, it is likely that you have access to Microsoft teams. If you do not, call your organization's IT department and ask them: "What's the problem?"


Episode 547

Geisa Faustino on Teaching

Geisa Faustino loves to teach. She developed this love in her previous career as a university professor and continues to teach as a Software Engineer at Microsoft. She explains what she gains from teaching and how she helps others to learn.


"Hi, Bob" by Bob Newhart

Comments [0]

HiBob88-year-old Bob Newhart sits down with other comedians to discuss the art of comedy and their experiences as comedians.

Hi, Bob by Bob Newhart exists only as an audiobook, so it sounds more like a 4-hour podcast than a traditional book.

The audio cuts between conversations with Will Ferrell, Jimmy Kimmel, Lisa Kudrow, Judd Apatow, Conan O'Brien, Sarah Silverman, and Marc Maron - often with Bob repeating the same questions to different comics. We hear the stories of these comedians and of Bob himself (the oldest of the group), who shares what it was like to break into comedy in the days before comedy clubs. You can hear the age in Newhart's voice, but you also can treasure his experience of 60+ years in this field.

Hi, Bob is informal, informative, and very funny.


"Dead men are heavier than broken hearts."

"I sat there and poisoned myself with cigarette smoke and listened to the rain and thought about it."

TheBigSleepPhillip Marlowe was one tough detective. And Raymond Chandler introduced him in his 1939 novel The Big Sleep. Marlowe is cool, hardnosed, and wisecracking. He sometimes breaks the rules; but he has a code of honor that he will not break.

Marlowe is hired by millionaire General Sternwood to investigate a main who is blackmailing his daughter Carmen. The blackmailer is murdered, and Carmen tries to seduce Marlowe and Carmen's sister Vivian tries to seduce Marlowe and the family chauffeur is found dead in the river and then it gets complicated.

It's a gritty novel of crime and betrayal and urban tough guys and femme fatales and all the elements of a noir detective story.

The narration is often poetic - filled with imagery and metaphors. So many writers have copied and parodied this style that it may sound cliché to hear this style of storytelling.

Chandler's similes are remarkable

"I was as empty of life as a scarecrow's pockets."

His description of people gives the reader a taste of the character he is describing and of the one doing the describing

"She lowered her lashes until they almost cuddled her cheeks and slowly raised them again, like a theatre curtain. I was to get to know that trick. That was supposed to make me roll over on my back with all four paws in the air."

"As honest as you can expect a man to be in a world where it's going out of style.”

The author often injects humor into serious situations.

"Neither of the two people in the room paid any attention to the way I came in, although only one of them was dead.”

"She bent over me again. Blood began to move around in me, like a prospective tenant looking over a house.”

Chandler succeeds in providing a view of the world around Marlowe, as well as the effect in has on his hero.

"It seemed like a nice neighborhood to have bad habits in.”

"I went to the kitchen to make coffee - - yards of coffee. Rich, strong, bitter, boiling hot, ruthless, depraved. The lifeblood of tired men."

The Big Sleep a complex story; and it's sometimes hard to keep straight all the characters and all the plot twists. But Chandler wraps it up well in the end and Marlowe has one last chance to philosophize about life and death.

"What did it matter where you lay once you were dead? In a dirty sump or in a marble tower on top of a high hill? You were dead, you were sleeping the big sleep, you were not bothered by things like that...You just slept the big sleep, not caring about the nastiness of how you died or where you fell. Me, I was part of the nastiness now."


<< Older Posts | Newer Posts >>