Christopher Lawson's Blog, page 11

July 7, 2017

God's Smuggler for Young Readers by Brother Andrew

 Brother Andrew























I first read GOD'S SMUGGLER years ago, so it was good to re-read the book.  Even though this edition is the "Young Reader's Edition," I think many adults will also appreciate the concise length.

























It's easy to forget how dangerous it was to go behind the "Iron Curtain."  The book captures the excitement and danger of smuggling Bibles and tracts to various countries in Eastern Europe, as well as to Russia. (See, for example, the chapter, "For Russian with Love.")  Many of the stories involve Andrew's worn out Volkswagen beetle, which one mechanic claimed could only be running through God's miraculous intervention.

I found the book to be a quick, exciting read. The illustrations are well done, and make the stories come alive, by depicting the danger involved. Many of the scenes show soldiers standing close by with guns at hand.
Brother Andrew is ever-optimistic about what God will do in your life.  For instance, in describing how he obtained his driving license, he quotes a friend, "That's the excitement in obedience. . . Finding out later what God had in mind."
Inspiring Book

All in all, I found GOD'S SMUGGLER to be an inspiring book, offering encouragement to Christians interested in spreading the Gospel. I had forgotten that Brother Andrew was actually from the Netherlands. He is an inspiration to all who love the Gospel.











The infamous VW Beetle





The infamous VW Beetle













Advance Review Copy courtesy of the publisher.










God's Smuggler



$9.99



By Brother Andrew, John Sherrill, Elizabeth Sherrill






























God's Smuggler for Young Readers by Brother Andrew
 •  0 comments  •  flag
Share on Twitter
Published on July 07, 2017 19:22

July 3, 2017

Rule #1 Don't Be #2: You Get What You Work For, Not What You Wish For by Daniel Milstein















RULE #1 is a book of life PRECEPTS. Although targeted at business readers, RULE #1 is really applicable to all of life. The book is not a "how to" guide; rather, it is a series of life lessons learned the hard way by Mr. Milstein.

Even though a Kindle version is available, I recommend you stick with the hardcopy. (The audio version might also be helpful.) This is one of those books you will want to have around and browse through sometimes.  I think the actual format and presentation helps tell the story, and drive the points home.

The author explains that he came to the U.S. with pennies in his pocket, then after years of hard work, rocketed to the top of his profession.  Each of the 25 chapters covers a life lesson that the author illustrates.  For example, Chapter 20 suggests, "There's No Room For Complainers."    He notes that "Nobody likes a whiner to a complainer.  They are the first cousins of the critic."  And,

"Feeling sorry for yourself isn't part of the game plan."

Many of the points emphasize hard work, focus, planning--and most of all, ACTION.  You don't need to read the chapters in order, although I did.  You can zip through this little book in about an hour, but I think most people will want to keep the book close at hand, and read over the ideas again.

























Most of the ideas are not outlandish or amazingly original. I've seen similar ideas in many inspirational and success books. Nevertheless, I found the stories and ideas credible, helpful, and inspiring.  Of all the points made, I like this one the best:

"You should have goals so big that you are uncomfortable telling your friends about them."

I love that idea--reach for the stars!

Wait--I think I like this one even more:

"Good luck is what happens when preparation meets opportunity. Bad Luck is what happens when lack of preparation meets a challenge."

The above idea is another variant on the theme of personal responsibility. Don't blame bad luck, don't blame others, get to work!

All in all, I found Rule #1 Don't be #2 to be an outstanding read.  Do not be fooled by the small size. The ideas are outstanding, and worthy of serious consideration.. 

Get the hard copy, read through the ideas, then think about them.  I did.

Advance Review copy courtesy of the publisher.










Rule #1 Don't Be #2



$6.08 $6.08



By Daniel Milstein






Rule #1 Don't Be #2: You Get What You Work For, Not What You Wish For by Daniel Milstein









 •  0 comments  •  flag
Share on Twitter
Published on July 03, 2017 20:48

Oracle Performance: LAST Cause is not the same as ROOT Cause

[image error]





We use the "Cache Hit Ratio" Method













Looking for "What Changed" not so Helpful

When faced with a new problem to troubleshoot, many smart people immediate ask the question, "What Changed?"  This seems logical, but is actually a weak way to solve a performance problem. 

By looking for recent changes, you are making a questionable assumption. You are assuming that everything was indeed fine until the problem was reported. That is a bad assumption--especially in the world of performance tuning. 

Just because something was running pretty well before, that doesn't mean it was well-designed; it could just mean you sometimes "get away" with a poor design.

In philosophy, the most recent cause is called the "Proximate" cause.  The root cause is called the "Ultimate" cause. 

Two examples will clarify:

Example 1: Caching Effect

A poorly designed sql statement requires 100,000 disk reads. The designer is not aware of how poorly the code is written, since the report runs "okay."   Normally, all the blocks are "cached up," so that the performance isn't too bad. The key is, good performance requires all the blocks to be cached.  Even a small reduction in caching will have a disastrous effect.

Then, other jobs are added to the server, and the caching goes down from 99% to 90%. Suddenly, the report takes much longer.  The users mistakenly search for the "proximate" cause, and ask, "What changed?"  They don't realize that the code was poor to begin with, and suggest that some other job is causing their bad performance.

I have personally worked on many cases just like Example 1. It is very common for users to blame another job, when their own design is really the root cause.

Example 2: Unstable Execution Plans

In this case, the sql is overly complicated, with lots of bind variables and awkward joins. The optimizer struggles to figure out a good execution plan. Sometimes it gets it right, sometimes it doesn't. On the current server, given the current statistics and perceived bind variables, the optimizer has a decent plan, the sql runs well.

Now, the same code is run on another database. Stats are re-gathered, and new queries are run.  This time, the code runs horribly. The users again ask, "What changed?" assuming that that question is a good place to start.

Lessons Learned

I am reluctant to begin any investigation with "What changed."  A good DBA normally has far better methods to use.

Lesson #1:  You Don't Really Know What Changed









[image error]





I like to use the "Rule" hint













Folks mean well, but rarely does anyone really know for a fact what has changed and what hasn't. How often do people say, "We haven't changed anything," but really can't guarantee that.

Lesson #2: Some Things Always Change

Even when a database is cloned to another server, many things will soon be different, even when everyone says, "We haven 't changed anything."  For example, the bind variables specified will usually be different. How the optimizer assesses the bind variables can also change.  Here's another: The caching effect will always be different, depending on recent jobs run. When a user claims the the report being run is identical as before, they cannot really know that for a fact.

Lesson #3: Poor Design Can Yield Varying Performance

You can write terrible sql, and sometimes you get away with it; the optimizer happens to get it right in your particular case. The problem is, it's an unstable solution, and can easily shift to a bad solution. The slightest change--such as stats, how bind variables are used, size of objects, or caching can trigger plan changes and miserable results.

It would be easy to get caught up analyzing all the factors that cause plan changes, but they are not relevant to the root cause.
Wrap-up: We can Do Much Better

By looking for "What has changed," you are aiming at the wrong target.

By focusing on recent events, you are actually analyzing the consequence of the bad design, not isolating the bad design itself.

Of course, I must admit, you can sometimes guess the right cause, but the "What's Changed" method is not a consistently good approach. We can do much better.

DBAs have excellent ways to find root cause. Here's one: Become adept at using the Active Session HIstory views.











[image error]





We still prefer the "What changed" method






















Snappy Interviews: 100 Questions to ask Oracle DBAs

By Christopher Lawson






 

 

 •  0 comments  •  flag
Share on Twitter
Published on July 03, 2017 12:56

Oracle Performance: Why LAST Cause is not the same as ROOT Cause

Sounds good to me!





Sounds good to me!













A Sneaky Mistake

When faced with a new problem to troubleshoot, many smart people immediate ask the question, "What Changed?"  This seems logical, but is actually a weak way to solve a performance problem. 

By looking for recent changes, you are making a questionable assumption. You are assuming that everything was indeed fine until the problem was reported. That is a bad assumption--especially in the world of performance tuning.  Just because something was running pretty well before, that doesn't mean it was well-designed; it could just mean you "got away" with a poor design.

Two examples will clarify:

Example 1

A poorly designed sql statement requires 100,000 disk reads. The designer is not aware of how poorly the code is written, since the report runs "okay."   Normally, all the blocks are "cached up," so that the performance isn't too bad. The key is, good performance requires all the bloks to be cached.  Even a small reduction in caching will have a disastrous effect.

Then, other jobs are added to the server, and the caching goes down from 99% to 90%. Suddenly, the report takes much longer.  The users ask, "What changed," not realizing that the code was poor to begin with.

I have personally worked on many cases just like Example 1.

Example 2

In this case, the sql is overly complicated, with lots of bind variables and awkward joins. The optimizer struggles to figure out a good execution plan. Sometimes it gets it right, sometimes it doesn't. On the current server, given the current statistics and perceived bind variables, the optimizer has a decent plan, the sql runs well.

Now, the same code is run on another database. Stats are re-gathered, and new queries are run.  This time, the code runs horribly. The users again ask, "What changed?" assuming that that question is a good place to start.

Lessons Learned









Optimizer overload





Optimizer overload













I am reluctant to begin any investigation with "What changed."  A good DBA normally has far better methods to use.

Lession #1:  No One has Perfect Information

Folks mean well, but rarely does anyone really know for a fact what has changed and what hasn't. How often do people say, "We haven't changed anything," but really can't guarantee that.

Lesson #2: Some Things Always Change

Even when a database is cloned to another server, many things will soon be different, even when everyone says, "We haven 't changed anything."  For example, the bind variables specified will usually be different. How the optimizer assesses the bind variables can also change.  Here's another: The caching effect will always be different, depending on recent jobs run. When a user claims the the report being run is identical as before, they cannot really know that for a fact.

Lesson #3: Poor Design Can Yield Varying Performance

You can write terrible sql, and sometimes you get away with it; the optimizer happens to get it right in your particular case. The problem is, it's an unstable solution, and can easily shift to a bad solution. The slightest change--such as stats, how bind variables are used, size of objects, or caching can trigger a miserable execution plan.

Wrap-up

By looking for "What has changed," you are aiming at the wrong target. By focusing on recent events, you are actually analyzing the consequence of the bad design, not isolating the bad design itself.

Of course, I must admit, you can sometimes guess the right cause, but the "What's Changed" method is not a consistently good approach. We can do much better.











[image error]





We still prefer the "What changed" method






















Snappy Interviews: 100 Questions to ask Oracle DBAs

By Christopher Lawson






 

 

 •  0 comments  •  flag
Share on Twitter
Published on July 03, 2017 12:56

June 27, 2017

The Smear: How Shady Political Operatives and Fake News Control What You See, What You Think, and How You Vote by Sharyl Attkisson

In THE SMEAR, Sharyl Attkisson argues that regular folks are easy targets for false information or smear campaigns: “The public has no idea of the extent to which news is influenced by smear merchants.” This situation didn’t just happen—it’s been a long time coming: “The past two decades have served as an ideal incubator for an industry of smears and fake news.”

The author gives the reader lots of reasons to worry. Attkisson documents, in great detail, many of the behind-the-scenes organizations with political agendas. The consumer of news is “pummeled by countless narratives—some based on grains of truth; others wholly invented for the audience.”

Attkisson warns news consumers to be cautious even if all the media outlets are parroting the same line. “Today, if enough pundits, operatives, and media parrot the same narrative, it becomes incorporated into the fabric of the news as an accepted fact.”

And yet, smear campaigns are not new—they are as old as the Republic:

“Our founding fathers knew very well the power of a sharp character assassination . . . Hamilton and Jefferson were planting stuff on each other’s sex lives.”

The author documents many smear campaigns—originating from both the Left and the Right. She cites the Clarence Thomas hearings as an example of smears from both sides, and also, how one might fight a smear:

“The Clarence Thomas Supreme Court nomination showed both sides that the best way to fight a smear might not be to take a defensive posture—but to mount an offensive countersmear.”

Attkisson is careful to define what she means by “smear.” It’s not the dissemination of falsehoods, so much as exaggeration: “Expert smear artists take a sprinkle of truth—in this case Imus’s objectionable comments—and pervert it into a weapon of mass destruction to advance a larger goal, often political or financial.” Smear campaigns take something that is true and "amplify a misdeed out of proportion.”

For me, one of the most fascinating sections was about a variation of smear called “Astroturf.” In this variation, the pros pretend they are ordinary folks: “Paid interests disguised as ordinary people troll assigned topics, news sites, reporters, blogs, and social media for the purpose of posting comments that spin and confuse.” The idea is to “give the impression there’s widespread support for or against an agenda when there’s not.”

Attkisson concludes with this sobering warning:

“One thing you can count on is that most every image that crosses your path has been put there for a reason. Nothing happens by accident. What you need to ask yourself isn’t so much Is it true, but Who wants me to believe it—and why?”

So all in all, I found THE SMEAR to be a solid, and a scary work. The author writes clearly and concisely. Although not a short book, it is reasonably easy to follow. The book explains many detailed cases on both sides of the political spectrum. Of course, I already knew about many of the tragic stories, but I had no idea of the magnitude of the smear machines.

The Smear by Sharyl Attkisson
 •  0 comments  •  flag
Share on Twitter
Published on June 27, 2017 17:25

June 26, 2017

The Swamp: Washington's Murky Pool of Corruption and Cronyism -- and How Trump Can Drain It by Eric Bolling

Feeding time?





Feeding time?













In THE SWAMP: WASHINGTON'S MURKY POOL OF CORRUPTION AND CRONYISM, Eric Bolling presents some simple, common sense proposals to end special interest politics in Washington. 

Both political parties get a beating by the author, but perhaps Liberals get a bigger beating.  Naturally, the main scandals of recent years are each given a few pages. President Clinton gets his own chapter, 12, "Contract with American, Contact with an Intern."  I didn't find anything really new or surprising there.

The GOP takes it licks as well, especially in Chapter 10, "From Great Society to -GATE Society."  The author pulls no punches in exposing the deceit of Nixon, as well as the disgrace of Vice President Spiro Agnew. 

The governor of South Carolina, Mark Sanford gets several pages documenting his bizarre outing to see his mistress in Argentina.  Eric notes that the scandal didn't keep him from being elected to congress:

"One of the most embarrassingly bungled extramarital affairs in history was not a disqualification ... from rejoining the ecosystem of the Swamp."










Lots of places to hide





Lots of places to hide













I thought the most insightful point the author makes is this: The morass in Washington didn't happen quickly, and it didn't happen due to just one party: "Remember that the Swamp is not just something created by the left. Fight the whole "establishment" because it’s just as dangerous as the liberal opposition."  

I thought the final part of the book, "Conclusion," had the meatiest points.  Eric explains how the Founding Fathers foresaw something like a Swamp. They wrote the Constitution in such a way as to reign-in the "Swamp Creatures."  They envisioned limited government because "They saw how many different ways government could go wrong."

Again, not really a new or startling point, but still a good point, I think.

The retelling of all the tawdry affairs was mildly interesting; however, there were also some scandals new to me.  Perhaps the wildest story was of the "Biggest BS artist" during the Eisenhower years.  Eric tells the bizarre story of GOP congressman Douglas Stringfellow of Utah. He pretended to be paraplegic, and exaggerated tales of being a secret agent and of being tortured in a prison. He even made it on "This is Your Life."  His Democratic colleagues ultimately dug up the real facts, leaving him disgraced. (Plus, probably no more TV appearances.)

So all in all, I found THE SWAMP to be an interesting record of the corruption of both parties.  Most of the accounts were familiar to me, as I suspect they will be to most readers. The author's recommendation for the regular folk to rise up and demand change is a nice idea, but methinks a wee bit optimistic.  Eric also recommends term limits and restrictions on lobbyists.  










The Swamp: Washington's Murky Pool of Corruption and Cronyism and How Trump Can Drain It



$17.70



By Eric Bolling
















Member of the Establishment





Member of the Establishment













 The Swamp: Washington's Murky Pool of Corruption and Cronyism by Eric Bolling
 •  0 comments  •  flag
Share on Twitter
Published on June 26, 2017 20:04

June 22, 2017

Oracle Performance Tuning: How Cursor Sharing Can Wreck Performance

Cursor Sharing

It is fairly common to have an application neglect to use bind variables.  This is not a terrible disaster, but creates problems if the application generates a lot of sql. 

A common solution to this (assuming the app can't/won't be changed) is to change the init.ora parameter, Cursor_Sharing.  It is changed to either FORCE or SIMILAR.

Generally, this change works well, but there can be unexpected (and bad) results. Of course, execution plans will likely change on a small percentage of sql, but there are bigger problems.

Function Indexes

Suppose the application performance is dependent on certain indexes. For certain function indexes, switching Cursor_Sharing to force binds makes it impossible to use the indexes!

Here is an actual, real-life example. There is a functional index defined as:

Ltrim (Colx, 1)

The sql has a where clause that of course looks like

where Ltrim (Colx,1) = '123' 

With the cursor sharing change, this code changes to:

where Ltrim (Colx,:BIND) = '123' 

Now, the functional index cannot be used.  That index requires that '1' be explicitly present.

FYI: Our workaround was a login trigger for the user who ran this section of the code.  We changed Cursor_Sharing just for that one user.

 

 

 

 •  0 comments  •  flag
Share on Twitter
Published on June 22, 2017 14:54

June 20, 2017

Squarespace: How to Embed Powerpoint Presentations

The Problem

The problem is that Squarespace does not directly support PowerPoint presentations.  The solution is to use another hosting service, which reads the file, and converts to a presentation. I found it easiest to use Google Drive, but there are other, similar services that do the same thing.

Steps to Embed PresentationUpload your presentation to Google Drive.

First sign-in to Google Drive, and upload your powerpoint presentation. This is simple and takes just a minute or so.

Allow File to be Shared









Be sure to share the file





Be sure to share the file













By default, the file will be private, so you will need to toggle this. Simple click the flie, click right and specify "Share."  In the ensuing window, you will see "Link sharing is On."

Specify that file should be opened with "Google Slides."

Highlight the file, click right, and look for the "Open With" option. Select Google Slides. This will start up the Google Slides application.  At this point, we are just interested in one feature. In Google Slides, select File/Publish to the Web. Then select the Embed tabThe code you want will now be shown.

























 

Create Code Block in Squarespace

In Squarespace, edit the page that you want to show the presentation. Create a "Code" block, and just paste the code in.

Modify the Width and Height

Squarespace will now run your presentation when a user accesses that page. There is some tidying up to do, however. For my blog, the presentation was too large, and overlapped the sidebar.  You will likely need to experiment a bit with the right width/height.











And then I just changed the width and height!





And then I just changed the width and height!













Edit the Code block as shown here.

























For my blog, I found it best to reduce the width from 960 to 750.  Similarly, I reduced the height from 749 to 550. Naturally, save your code block changes.

The Final Product

Here is the actual blog post with the embedded presentation.

With the sizing changes suggested above, the presentation displays nicely, without covering up the sidebar on the right. The user can also change the presentation to Full-Screen. This works well.

























So overall, I found it to be a simple effort to embed my presentation in PowerPoint.  The first time can be a little tricky, but it's easy from then on.

Squarespace: How to Embed Powerpoint Presentations
 •  0 comments  •  flag
Share on Twitter
Published on June 20, 2017 09:43

June 18, 2017

Oracle Performance: How to Use Stored Outlines to Change Execution Plan

Oracle Performance: How to Use Stored Outlines to Change Execution Plan

Here is a powerpoint presentation showing you all the details.

Oracle Performance: How to Use Stored Outlines to Change Execution Plan
 •  0 comments  •  flag
Share on Twitter
Published on June 18, 2017 10:20

June 17, 2017

10 Management Response Examples for Online Customer Reviews: Stay Safe, Save Time and Win Back Upset Customers by Jon Symons















Every once in a while, I am surprised by a book. I admit I had low expectations for 10 MANAGEMENT RESPONSE EXAMPLES. I had never heard of the author, and spotted the title by chance, I when I was looking for books about online reviews.

This book is short, and cheap—in fact, free! I assumed the value of the book would match its price.

Okay, I was wrong.  Happy to eat crow. Reading the first chapter, it became obvious that the author, Jon Symons knows his field.

The book starts with a “Bonus Chapter.”  Once again, I assumed this would be just a bunch of “fluff” just to pad the book. (That is usually what a “bonus chapter” is.)  In this case, the bonus is not fluff at all—it’s a serious business idea.

Jon asks the question, “What's Your Magic Number?”  The point is, consider the “Lifetime Value of a Customer,” or LVC.  When you lose an influential customer, the total value of his influence can be massive.  Jon gives an actual example of a dissatisfied customer of a sushi restaurant.  By not seriously responding to the mad customer, who happened to be a major influencer, the restaurant lost a total of $100,000 in revenue.

Each chapter presents a single idea on the proper way to handle reviews. This idea is summarized by a “Key Point” that gives a quick summary.  For example, when responding to a negative review, the “High Road” means, “Find a way, using humor, creativity or kindness to reach your audience and go beyond taking a review personally. “











Celebrating a good review





Celebrating a good review













Of all the ideas suggested, one really stands out, and surprised me: “Negative reviews offer you, the business owner, opportunities to demonstrate caring, correct facts, and even go viral.” I admit I never thought that a negative review could be turned around to be a positive thing.

Here's a point that management should pay attention to: When responding to a negative review, management needs to put themselves in the position of the customer.  In other words, “Customers Need You to Put Them First.”  

Jon calls the typical (wrong) response to a bad review the “Middle Management” mistake. The firm gives little weight to the customer, and just restates its commitment: “It is all about their hotel and its improvement, rather than acknowledging the upset of the actual person that is complaining.”











[image error]





I like the "Middle Management" response













I have written lots of reviews, and I often see the above mistake.  The worse companies respond to a terrible review with a canned, “We strive to always maintain high standards, and value you, blah, blah blah.”  

All in all, I found 10 MANAGEMENT RESPONSE EXAMPLES to be an outstanding guide, with excellent ideas on responding to both good and bad reviews.  Do not be misled, like I was, by the short length of the book. There is no fluff in this book--it gets right down to the key points. The author uses actual examples of real reviews to make his points. One nit: I would have liked to see some reference information when a research "study" is mentioned. 










10 Management Response Examples for Online Customer Reviews: Stay Safe, Save Time and Win Back Upset Customers







By Jon Symons
















I always take the high road





I always take the high road













10 Management Response Examples for Online Customer Reviews by Jon Symons
 
 •  0 comments  •  flag
Share on Twitter
Published on June 17, 2017 20:18