# Tuesday, 05 March 2019

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.

Tuesday, 05 March 2019 09:45:00 (GMT Standard Time, UTC+00:00)
# Monday, 04 March 2019

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.

Monday, 04 March 2019 09:07:00 (GMT Standard Time, UTC+00:00)
# Sunday, 03 March 2019

Today I am grateful that my shower is finally fixed.

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

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

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

Today I am grateful for my personal trainer.

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

Today I am grateful for my new living room furniture.

Today I am grateful to sleep in this morning.

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

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

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

Today I am grateful for cheeseburgers with Tim last night.

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

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.

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

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

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

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

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

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

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

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

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

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

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

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

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

Sunday, 03 March 2019 23:48:00 (GMT Standard Time, UTC+00:00)
# Saturday, 02 March 2019

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.

Saturday, 02 March 2019 09:23:00 (GMT Standard Time, UTC+00:00)
# Friday, 01 March 2019

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.

Fig. 1

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

Fig. 2

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.

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.

Fig. 5

The URL takes the form:


where <servicename> 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.

Fig. 6

Fig. 7

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

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/<indexname>/docs/search?api-version=2017-11-11

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

This is shown in Fig. 9.

Fig. 9

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

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.

Fig. 11

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

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.

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.

Friday, 01 March 2019 09:27:00 (GMT Standard Time, UTC+00:00)
# Thursday, 28 February 2019

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.

Thursday, 28 February 2019 08:55:00 (GMT Standard Time, UTC+00:00)
# Wednesday, 27 February 2019

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.

Fig. 1

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

Fig. 2

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

Fig. 3

Fig. 4

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

Fig. 5

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

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.

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.

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.

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.

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.

Wednesday, 27 February 2019 09:21:00 (GMT Standard Time, UTC+00:00)
# Tuesday, 26 February 2019

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.

Fig. 1

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

Fig. 2

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

Fig. 3

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

Fig. 4

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

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

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.

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.

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.

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.

Tuesday, 26 February 2019 09:08:00 (GMT Standard Time, UTC+00:00)
# Monday, 25 February 2019

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.

Monday, 25 February 2019 09:34:00 (GMT Standard Time, UTC+00:00)
# Saturday, 23 February 2019

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.

Saturday, 23 February 2019 12:28:00 (GMT Standard Time, UTC+00:00)