# 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.

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://<servicename>.search.windows.net

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.

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/<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.

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.

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.

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.

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.

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.

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)
# Thursday, 21 February 2019

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.

Azure | GCast | Screencast | Video
Thursday, 21 February 2019 09:44:00 (GMT Standard Time, UTC+00:00)
# Monday, 18 February 2019

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.

Monday, 18 February 2019 09:21:00 (GMT Standard Time, UTC+00:00)
# Saturday, 16 February 2019

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.

Saturday, 16 February 2019 08:51:00 (GMT Standard Time, UTC+00:00)