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

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.

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

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

Today I am grateful for 1 year in my condo.

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

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

Today I am grateful for a week in London.

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!

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

Today I am grateful for lunch with Andy yesterday.

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

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.

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

Today I am grateful for an extra blanket last night.

Today I am grateful to watch football with Tim yesterday.

Today I am grateful for the excitement of college basketball.

Today I am grateful for my new Kindle Oasis.

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

Today I am grateful for Thai food with Dan yesterday.

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

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

Today I am grateful for a gym in my building.

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

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

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

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

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

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

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.


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.

Fig. 1

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

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.

Fig. 3

The Grid view is shown in Fig. 4.

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

Fig. 5

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.

Fig. 7

View Posts

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

Fig. 8

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

Fig. 9

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

Fig. 10

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

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.

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.


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)
# Thursday, January 31, 2019

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.

Thursday, January 31, 2019 8:03:00 AM (GMT Standard Time, UTC+00:00)
# Wednesday, January 30, 2019

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.

Wednesday, January 30, 2019 2:23:00 AM (GMT Standard Time, UTC+00:00)
# Tuesday, January 29, 2019

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.

Tuesday, January 29, 2019 3:20:00 AM (GMT Standard Time, UTC+00:00)
# Monday, January 28, 2019

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.

Monday, January 28, 2019 8:11:00 AM (GMT Standard Time, UTC+00:00)
# Sunday, January 27, 2019

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

Fig. 1

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

Fig. 2

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

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.

Fig. 4

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

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.

Fig. 6

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

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?"

Sunday, January 27, 2019 7:56:00 AM (GMT Standard Time, UTC+00:00)