# Thursday, February 28, 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, February 28, 2019 8:55:00 AM (GMT Standard Time, UTC+00:00)
# Wednesday, February 27, 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, February 27, 2019 9:21:00 AM (GMT Standard Time, UTC+00:00)
# Tuesday, February 26, 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, February 26, 2019 9:08:00 AM (GMT Standard Time, UTC+00:00)
# Monday, February 25, 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, February 25, 2019 9:34:00 AM (GMT Standard Time, UTC+00:00)
# Saturday, February 23, 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, February 23, 2019 12:28:00 PM (GMT Standard Time, UTC+00:00)
# Thursday, February 21, 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, February 21, 2019 9:44:00 AM (GMT Standard Time, UTC+00:00)
# Monday, February 18, 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, February 18, 2019 9:21:00 AM (GMT Standard Time, UTC+00:00)
# Saturday, February 16, 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, February 16, 2019 8:51:00 AM (GMT Standard Time, UTC+00:00)
# Thursday, February 14, 2019

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.

GCast | Screencast | Teams | Video
Thursday, February 14, 2019 9:02:00 AM (GMT Standard Time, UTC+00:00)
# Monday, February 11, 2019

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.

Monday, February 11, 2019 9:05:00 AM (GMT Standard Time, UTC+00:00)
# Saturday, February 9, 2019

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.

Saturday, February 9, 2019 11:24:00 AM (GMT Standard Time, UTC+00:00)
# Thursday, February 7, 2019

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.

GCast | Screencast | Web
Thursday, February 7, 2019 8:08:00 AM (GMT Standard Time, UTC+00:00)
# Tuesday, February 5, 2019

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.

Tuesday, February 5, 2019 8:08:00 AM (GMT Standard Time, UTC+00:00)
# Monday, February 4, 2019

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/
Monday, February 4, 2019 9:07:00 AM (GMT Standard Time, UTC+00:00)
# Sunday, February 3, 2019

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.

Sunday, February 3, 2019 1:41:03 PM (GMT Standard Time, UTC+00:00)
# Saturday, February 2, 2019

 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.

Saturday, February 2, 2019 4:09:02 PM (GMT Standard Time, UTC+00:00)
# Friday, February 1, 2019

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.

Friday, February 1, 2019 9:02:00 AM (GMT Standard Time, UTC+00:00)